DDL(Data Define Language)

m_ngyeong·2024년 4월 17일
0

Database(DB)

목록 보기
2/4
post-thumbnail

SQL


DDL(Data Define Language)

DDL은 데이터 정의어로 DB 구조, 데이터 형식, 접근 방식 등DB를 구축하거나 수정할 목적으로 사용하는 언어이다.

💚 CREATE : SCHEMA, DOMAIN, TABLE, INDEX...를 정의

CREATE TABLE ~ ;

  • 기본 테블에 포함될 모든 소송에 대하여 속성명과 그 속서으이 데이터 타입, 기본값, NOT NULL 여부를 지정
  • PRIMARY KEY : 기본키로 사용할 속성을 지정
  • UNIQUE : 대체키로 사용할 속성을 지정하며, 중복된 값을 가질 수 없음
  • FOREIGN KEY ~ REFERENCES ~ : 외래키로 사용할 속성을 지정
    • ON DELETE 옵션 : 참조 테이블의 튜플이 삭제되었을 때 기본 테이블에 취해야 할 사항을 지정
    • ON UPDATE 옵션 : 참조 테이블의 참조 속성 값이 변경되었을 때 기본 테이블에 취해야 할 사항을 지정
  • CONSTRAINT : 제약 조건의 이름을 지정
  • CHECK : 속성 값에 대한 제약 조건을 정의

📍ex)
• '근무지번호'는 <근무지>테이블에서 '근무지번호'를 참조하는 외래키
• <근무지> 테이블에서 '근무지번호'가 삭제되면 <사원> 테이블의 '근무지번호'도 삭제됨

① CRATE TABLE 사원
②	(사원번호 NUMBER(4) PRIMARY KEY,
③    사원명 VARCHAR(10),
④    근무지번호 NUMBER(2) FOREIGN KEY REFERENCES 근무지 
⑤    ON DELETE CASCADE);

① 생성한 테이블의 이름은 사원
② '사원번호' 속성은 숫자 4자리 이며, 기본키
③ '사원명' 속성은 문자 10자리
④ '근무지번호'는 숫자 2자리이며, <근무지> 테이블의 '근무지번호'를 참조하는 외래키
⑤ <근무지> 테이블에서 '근무지번호'가 삭제되면 <사원> 테이블의 '근무지번호'도 삭제됨

CREATE VIEW ~ AS SELECT ~ ;

📍ex) <CC> 뷰를 정의하는 SQL문 작성

CREATE VIEW CC(ccid, ccname, instname)AS SELECT Course.id, Course.name, Instructor.name
③ FROM Course, Instructor
④ WHERE Course.instructor = Instructor.id;

<CC> 뷰는 'ccid', 'ccname', 'instname' 속성을 가짐
<Course> 테이블의 'id', 'name'과 <Instructor> 테이블의 'name'속성을 사용
<Course><Instructor> 릴레이션을 이용
<Course>의 'instructor' 속성 값과 <Instructor>의 'id' 속성이 같은 자료에 대한 view를 정의

CREATE [] INDEX ~ ON ~ ;

  • 정렬 여부
    • ASC : 오름차순 정렬
    • DESC : 내림차순 정렬
    • 생략하면 오름차순으로 정렬
  • CLUSTER : 사용하면 인덱스가 클러스터드 인덱스로 설정됨

📍ex) <student> 테이블을 참고하여 'name'속성으로 'idx_name' 이라는 인덱스를 생성하는 SQL 작성

CREATE INDEX idx_name ON student(name);

💚 ALTER : TABLE에 대한 정의를 '변경'하는 데 사용

  • ADD : 새로운 속성(열)을 추가할 때 사용
  • ALTER : 특정 속성의 Default 값을 변경할 때 사용
  • DROP COLUMN : 특정 속성를 삭제할 때 사용
    📍ex) <학생> 테이블에 20자의 가변길이를 가진 '주소' 속성을 추가하는 SQL 작성
ALTER TABLE 학생 [ADD:ALTER|DROP COLUM] 주소 VARCHAR(20);

💚 DROP : SCHEMA, DOMAIN, TABLE, INDEX...를 삭제

  • CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거함
  • RESTRICT : 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소함
    📍ex) 뷰를 제거하는 SQL 작성
DROP VIEW 학생 [CASECADE:RESTRICT];


참고,
길벗알앤디. 『정보처리기사 실기 단기완성』. 길벗. 2023.

profile
사용자 경험 향상과 지속적인 성장을 추구하는 프론트엔드 개발자 ʚȉɞ

0개의 댓글