- sql cmd52021년 04월 16일 09시 39분 44초에 업로드 된 글입니다.작성자: 원2728x90반응형
TABLE 을 건들이면 자동 COMMIT이 된다. 주의필요.
위의 세션이 COMMIT을 하지 않으면 아래의 세션이 대기 상태에 걸린다 : 이유 DEPTNO 의 30번 부서를 수정하고 있기 때문에, 이것으 HANG이라고 한다. COMMIT 을 하자마자 아래 세션은 작업을 수행한다. 트랜잭션이 끝나지 않았기 때문, ALTER : 테이블을 변경 :: COMMIT 기능이다. 테이블을 생성 ALTER 명령어로 HP 열 추가 ALTER 명령어로 HP 열 이름을 TEL로 변경 ALTER 명령어로 EMPNO 열 길이 변경하기 ALTER 명령어로 TEL 열 DROP TABLE 이름을 변경하는 RENAME ★TRUNCATE TABLE EMP_RENAME; :: 테이블의 데이터를 삭제함 :: ALTER이라서 커밋되기 때문에 위험★
USER_ 접두어를 가진 데이터 사전
USER_ 접두어로 시작하는 이름의 데이터 사전에는 현재 오라클에 접속해 있는 사용자가 객체 정보가 보관되어 있다.
SCOTT 계정이 가지고 있는 객체 정보 ALL_ 접두어를 가진 데이터 사전
오라클 데이터베이스 접속해 있는 사용자가 소유한 객체 및 다른 사용자가 소유한 객체 중
사용이 허락되어 있는 개체 정보를 가짐.
복수형이 붙는다 DBA_USER 로 사용자 정보 살펴보기 : SYSTEM 계정으로 해야 볼수 있다. SCOTT 계정의 USERNAME, USER_ID, PASSWORD만 출력 INDEX : 목차만들기
레코드가 작으면 INDEX 만들면 비효율적 : 레코드가 많아야 효율적이다 .
WHERE 절에 쓰는것이 INDEX
2진트리까지 쓰면 용량이 많아져서 프로그램이 무거워지기때문.
SCOTT 계정이 소유한 인덱스 정보 알아보기 (SCOTT 계정으로 실행) SCOTT 계정이 소유한 인데스 컬럼 정보 (SCOTT 계정으로 실행) 생성된 INDEX 확인 (USER_IND_COLUMNS) INDEX 를 생성하고 생성된 INDEX 확인 (USER_IND_COLUMNS) 생성된 INDEX를 삭제 후 확인 https://ratsgo.github.io/data%20structure&algorithm/2017/10/22/bst/ :: 2진트리 검색 : 검색속도가 최강이다. SET TIMING ON : 검색한 시간을 표기해줌 시간 끄기 VIEW : 가상테이블 // 하나 이상의 테이블을 조회하는 SELECT 문을 저장한 객체.
뷰의 사용목적 : 편리성
SCOTT 계정으로 뷰를 생성하려면 SYSTEM 계정으로 SCOTT에 뷰 권한을 줘야한다. VIEW SPRING을 생성하여 확인. VIEW 는 EMP테이블의 수정 내용을 그대로 반영한다. VIEW 가상테이블을 건들여서 수정을 해도 EMP 원본 테이블에 반영된다. // 그치만 뷰에서 조작하지마라... 뷰 삭제 : DROP VIEW SPRING;
인라인 뷰를 사용한 TOP-N SQL문 // 실제 테이블에 존재하지는 않지만 특정 목적을 위해 순서를 메기는 열 서브쿼리 사용한 인라인 뷰 // 서브쿼리를 먼저 실행하고 정렬한 다음 , 그걸 E 로 설정하고 그 E를 인라인 뷰로 만들어라. WITH 절을 사용한 인라인 뷰 // 말 그대로 IN LINE 인라인 뷰로 TOP-N 추출하기 (서브쿼리 사용) // 3보다 작거나 같은 것을 출력 //TOP (1) - N (3) WITH 절을 사용한 TOP-N 시퀀스 : ex) 은행 대기번호 발급기
오라클 데이터베이스에서 특정 규칙에 맞는 연속 숫자를 생성하는 객체
DEPT 테이블을 이용하여 DEPT_SEQUENSE 테이블 생성 SEQUENCE 생성 // 이름은 DEPT_SEQUENCE 다 호출시 USER_SEQUENCS; 를 사용해야한다. 시퀀스에서 생성한 순번을 사용해서 INSERT 문 실행 가장 마지막으로 생성한 시퀀스 확인 증가 값이 10이며 9번 반복하고 MAX값이 90이기때문에 10번째는 오류가 나는 모습 나머지는 제대로 입력됨 동의어 SYSNONYM
테이블`뷰`시퀀스 등 객체 이름 대신 사용할 수있는 다른 이름을 부여하는 객체.
주로 테이블 이름이 너무 길어 사용이 불편할 때 좀 더 간단하고 짧은 일므을 하나 더 만들어 주기위해 사용
SYSTEM계정으로 SCOTT에게 권한 부여 제약조건
테이블의 특정 열에 지정, 제약 조건을 지정한 열에 제약 조건에 부합하지 않는 데이터를 저장할 수 없다.
ex)
C :: NOT NULL : NULL을 허용하지 않는다
U :: UNIQUE : 유일한 값을 가져야 한다. 중복 불가 . NULL은 예외
P :: PRIMARY KEY : 유일한 값, NULL 허용안함 // PRIMARY KEY 테이블에 하나만 가능
F :: FOREIGN KEY : 다른 테이블의 열을 참조
C :: CHECK : 조건식을 만족하는 데이터만 입력 가능
NOT NULL : NULL을 허용하지 않는다 NOTNULL을 설정해서 만든 테이블을 출력 제약 조건이 없는 TEL 열에 NULL 값 넣기 제약 조건 SCOTT 계정 // TABLE_NOTNULL은 제약 조건에 이름 따로 지정해 주지 않아서 오라클데이터 베이스에서 자동으로 이름을 입력 해 준것. 테이블을 생성할 때 제약조건에 이름 지정하기 CONSTRAINT를 입력하고 사용할 이름을 지정한다. CONSTRAINT를 사용하지 않고 그냥 제약조건을 추가 했을 때. SYS_C007025처럼 오라클 데이터 베이스가 알아서 이름을 정해준다. BUT!! !! 제약조건 삭제!! CONSTRAINT를 사용하지 않으면 지울때 이렇게 해야하는 문제가 생긴다. 따라서 CONSTRAINT를 사용하여 제약조건에 이름을 달아 줘야 한다. 외래키를 지정하지 않아서 50번의 DEPTNO를 넣으니까 키를 지정할 수 없다. NULL 값을 넣을 순 있지만 없는걸 생성시키지는 않는다. 40,NULL은 들어가는데 50은 안들어가는 이유 ,/// 외래키를 입력 안해도 넣을 수 있다. SELECT OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME FROM USER_CONSTRAINTS;
728x90반응형'DB > Mysql' 카테고리의 다른 글
DB 테이블 갯수 조회 (0) 2021.12.21 [Mysql] 난수 생성 (0) 2021.08.15 Mysql 관계도 생성 (0) 2021.08.09 sql cmd4 (0) 2021.04.15 sql cmd3 (0) 2021.04.14 sql 비번 까먹었을 때 (0) 2021.04.13 다음글이 없습니다.이전글이 없습니다.댓글