SQLD 문제 오답체크 및 기억할 포인트 정리
- 집합 연산
- 관계 연산
- 기본키
- 유일성(unique)와 최소성(not null)
- 외래키 foreign key
- SQL 종류
- DDL은 create, alter, drop, rename 테이블의 구조 definition
- DML은 insert, update, delete, select 데이터관한 manipulate
- DCL은 grant, revoke 사용자에게 권한 control
- TCL은 commit, rollback 트랜젝션 관련 transaction
- 트랜젝션의 특성
- 원자성 atomicity
- all or nothing 중간 없어. 트랜젝션이 끝나지 않았다면 전혀 이루어지지 않는 것과 동일
- 일관성 consistency
- 트랜젝션 실행 결과로 데이터베이스 상태가 모순되면 안된다.
- 고립성 isolation
- 트랜젝션 실행중에 생성하는 연산의 중간결과는 다른 트랜젝션이 접근 못한다.
- 연속성 durability
- 트랜잭션이 실행을 완료하면 그 결과는 영구적 보장이 되어야한다.
- SQL 실행 순서
- 파싱 Parsing: 문법체크
- 실행 Executiuon: 옵티마이저가 수립한 실행 계획에 따라 sql을 실행
- 인출 fetch: 데이터를 읽어서 전송한다.
- constraint emppk primary key(empno)
- sal number(10,2)
- constraint deptfk foreign key(deptno) references dept(deptno);
- alter table emp rename to new_emp;
- alter table emp add constraint foreign key(deptno) references dept(deptno);
- alter table emp modify (ename number(40) not null);
- alter table emp drop column age;
- alter table rename column age to new_age;
- drop table emp cascade constraint;
- create view t_emp as select * from emp;
- drop view t_emp;
- alter table nologging; insert에 효과
- update emp set ename=’조조' where empno=100;
- delete from emp where empno=100;
- truncate table emp;
- distinct
- null은 모르는값, 값의 부재, null과의 비교와 연산은 알수없음을 반환, null 과 비교연산자로 비교는 false 반환
- count(*) null 포함 <-> count(column_name) 해당 열의 not null count
- NULL 함수
- NVL(empno,0) null 이면 다른 값으로 바꾼다
- NVL2(empno,1,0) null이면 0 아니면 1
- NULLIF(exp1,exp2) 둘이 같으면 null 아니면 exp1 치환
- coalesce(empno,1) null이 아닌 첫 값 반환
- rownum 여러개 불러올때는 인라인 뷰 사용