dongdorodongdong
SQL(DDL/DML/DCL) 본문
DDL (Data Definition Language)
- 정의
- 데이터베이스 구조, 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어
- 번역한 결과가 데이터 사전에 여러 개의 테이블로 저장 - 종류
- CREATE
- ALTER
- DROP
- RENAME
- 정의
- 사용자로 하여금 데이터를 처리할 수 있게 하는 도구
- 사용자(응용 프로그램)와 DBMS 간의 인터페이스를 제공 - 종류
- SELECT
- INSERT
- UPDATE
- DELETE
- 정의
- 무결성, 보안, 권한제어, 무결성 유지, 회복 등을 하기 위한 언어
- 데이터를 보호하고 관리하는 목적으로 사용 - 종류
- GRANT
- REVOKE
- COMMIT
- ROLLBACK
CREATE
- 코드
제약조건
- NOT NULL : NULL 값은 허용하지 않는다.
- PRIMARY KEY : 주키
- UNIQUE : 해당 속성은 유일해야 한다.
- FOREIGN KEY : 외래키
- REFERENCES : 외래키를 참조하는 참조 릴레이션
- CHECK : 입력할 수 있는 값의 범위 등을 제한VIEW 생성 코드
- 학생 테이블에서 성별이 '여'인 데이터만 뷰로 생성하여 시스템 성능을 향상
생성된 테이블 구조 확인
- Oracle
DESC 테이블명;
- SQL Server
exec s_hepl '테이블명' goSELECT 문장을 통한 테이블 생성
- 주의 점 : not null 제약조건만 적용되고, 다른 제약 조건은 없어진다. 따라서 ALTER TABLE 기능을 사용
- Oracle
CREATE TABLE 테이블명 AS SELECT * FROM 테이블명;
- SQL Server
SELECT * INTO 테이블명 FROM 테이블명;
ALTER
코드
- 학과 테이블에 연락처 속성을 추가
- 학과 테이블에 학과명 속성을 제거고려사항
- 컬럼의 크기를 늘릴 수는 있지만 줄이지는 못한다.
- 컬럼의 NULL값만을 가지고 있으면 데이터 유형을 변경할 수 있다.
- 컬럼의 DEFAULT 값을 바꾸면 변경 작업 이후에만 적용이 된다.
- 컬럼의 NULL값이 없을 경우에만 NOT NULL 제약 조건을 추가할 수 있다.RENAME COLUMN
- Oracle
ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 변경컬럼명;
- SQL Server
sp_rename 기존컬럼명, 변경컬럼명, 'COLUMN';DROP CONSTRAINT
- Oracle
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
- SQL Server
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;ADD CONSTRAINT
- Oracle
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);
- SQL Server
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);
DROP
- 학과 테이블을 삭제
- CASCADE : 참조하는 테이블을 연쇄적으로 제거
- RESTRICT : 참조하는 테이블이 있을 경우 제거 안 됨
SELECT
- DISTINCT : 검색 결과에서 중복 배제
- GROUP BY : 그룹별 검색
- COUNT( ) : 그룹별 튜플 수
- AVG( ) : 그룹별 평균
- SUM( ) : 그룹별 합계
- MAX( ) : 그룹별 최대
- MIN( ) : 그룹별 최소 - ORDER BY : 정렬 검색
- ASC : 오름차순
- DESC : 내림차순
INSERT
DELETE
- 튜플 삭제
UPDATE
GRANT / REVOKE
- WITH GRANT OPTION : 다른 사람에게 권한을 부여할 수 있음
- CASCADE : 연쇄적으로 권한을 취소
NoSQL
- Not Only SQL의 약자
- 초고용량 데이터 처리 등 성능에 특화된 목적을 위해 분산저장 시스템
- 비정형 데이터의 저장을 위해 유연한 데이터 모델을 지원
- 전통적인 관계형 DBMS와는 다른 비관계형 DBMS
내장 SQL(Embedded SQL)
- 응용 프로그램이 실행될 때 함께 실행되도록 호스트 프로그램 언어로 만든 프로그램에 삽입된 SQL
- 내장 SQL 실행문은 호스트 언어에서 실행문이 나타날 수 있는 곳이면 어느곳에서나 사용 가능
- 내장 SQL은 단 하나의 튜플만을 반환
- 반환되는 튜플은 일반 변수를 사용하여 저장 가능
DELETE vs TRUNCATE vs DROP
- DELETE : 데이터는 지워지지만 테이블 용량은 줄어 들지 않음
- TRUNCATE : 테이블 용량이 줄어 들고, 인덱스 등 모든 데이터 삭제 (테이블이 없어지진 않음)
- DROP : 테이블에 대한 흔적 자체를 없앰