SQL 명령어 (DDL-데이터 정의어, Data Definition Laguage)

2023. 4. 4. 14:32·웹 프로그래밍/DB
반응형

DDL (데이터 정의어, Data Definition Laguage)

데이터를 정의하는 언어

테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어

 

테이블 관련 DDL

🍳 CREATE TABLE

테이블을 생성하는 명령

CREATE TABLE 테이블명(
    컬럼명 데이터타입 [제약조건],
    ...
);

예시

CREATE TABLE 사원
(
	사번 VARCHAR(10) PRIMARY KEY, --테이블의 기본 키 정의
    업무 VARCHAR(10) FOREIGN KEY REFERENCES 부서(부서코드),	--외래 키 정의, 테이블(컬럼명)으로 참조대상 명시
    이름 VARCHAR(10) UNIQUE,	--유일한 값
    생년월일 VARCHAR(8) NOT NULL,	--NULL을 포함하지 않도록 한다.
    성별 CHAR(1) CHECK (성별 = 'M' OR 성별 = 'F'),	--개발자가 정의하는 제약조건
    입사일 DATE DEFAULT SYSDATE --컬럼의 값을 넣지 않는 경우 기본값 설정, SYSDATE는 현재시간/날짜
);

 

🥧 ALTER TABLE

테이블을 수정하는 명령

 

1. 컬럼 추가

테이블에 필요한 컬럼을 추가하는 문법

ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 [제약조건];

예시

ALTER TABLE 사원 ADD 전화번호 VARCHAR(11) UNIQUE;

2. 컬럼 수정

  • 테이블에 필요한 컬럼을 수정하는 문법
  • CREATE문에 제약조건을 명시 해 테이블을 생성한 후, ALTER을 통해 테이블 제약조건의 변경이 가능하다.
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 [제약조건];

예시

ALTER TABLE 사원 MODIFY 이름 VARCHAR(30) NOT NULL;

3. 컬럼 삭제

테이블의 컬럼을 삭제하는 문법

ALTER TABLE 테이블명 DROP 컬럼명;

예시

ALTER TABLE 사원 DROP 생년월일; --사원테이블에서 생년월일이라는 컬럼 삭제

 

🍵 DROP TABLE

테이블을 삭제하는 명령

DROP TABLE 테이블명 [CASCADE | RESTRICT];

예시

DROP TABLE 사원;
CASCADE: 참조하는 테이블까지 연쇄적으로 제거하는 옵션
RESTRICT: 다른 테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 옵션

 

🍿 TRUNCATE TABLE

테이블 내의 데이터들을 삭제하는 명령어

TRUNCATE TABLE 테이블명;

예시

TRUNCATE TABLE 사원;	--사원 테이블 내의 모든 데이터를 삭제

 

 

VIEW 관련 DDL

🍳 CREATE VIEW

뷰를 생성하는 명령

CREATE VIEW 뷰이름 AS
조회쿼리;

예시

CREATE VIEW 사원뷰 AS
SELECT 사번, 이름
	FROM 사원
    WHERER 성별 = 'M';

👉사원 테이블에서 성별 값이 'M'인 사번, 이름으로 생성된 사원뷰라는 이름의 뷰 생성

 

🛑
- VIEW 테이블의 SELECT 문에는 UNION이나 ORDER BY절을 사용할 수 없다.
- 컬럼명을 기술하지 않으면 SELECT 문의 컬럼명이 자동으로 사용된다.

* UNION: 집합연산자, 중복행이 제거된 쿼리 결과 집합
* ORDER BY절: 속성값을 정렬하고자 할 때 사용
    - 기본: 오름차순
    - ASC: 오름차순
    - DESC: 내림차순

 

🥧 CREATE OR REPLACE VIEW

뷰를 교체하는 명령

CREATE OR REPLACE VIEW 뷰이름 AS
조회쿼리;

 

🍵 DROP VIEW

뷰를 삭제하는 명령

DROP VIEW 뷰이름;

 

 

INDEX 관련 DDL

🍳 CREATE INDEX

  • 인덱스를 생성하는 명령
  • UNIQUE는 생략가능
  • 인덱스가 걸린 컬럼에 중복 값을 허용하지 않는다.
  • 복수 컬럼을 인덱스로 걸 수 있다.
CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명1, 컬럼명2, ...);

예시

CREATE INDEX 사번인덱스 ON 사원(사번);
--사원 테이블의 사번 컬럼에 대해 사번인덱스라는 인덱스명으로 인덱스 생성

 

🥧 ALTER INDEX

  • 인덱스를 수정하는 명령
  • 일부 DBMS에서는 지원하지 않는 기능
  • 기존 인덱스 삭제 후 신규 인덱스를 생성하는 방법을 권고
ALTER [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명1, 컬럼명2, ...);

예시

ALTER INDEX 사번인덱스 ON 사원(사번);
--사원 테이블의 사번 컬럼에 대해 사번인덱스라는 인덱스명으로 인덱스 수정

 

🍵 DROP INDEX

인덱스를 삭제하는 명령

DROP INDEX 인덱스명;

예시

DROP INDEX 사번인덱스;
--사번인덱스라는 인덱스명을 가지고 있는 인덱스를 삭제

 

 

 

 

자료 출처: 수제비 2022 정보처리기사 실기 CH.7 SQL응용

반응형

'웹 프로그래밍 > DB' 카테고리의 다른 글

[벨로퍼트]모던 리액트 강의(투두리스트 제작)  (0) 2022.05.29
SQL 강의 정리 노트1(이수안 컴퓨터연구소 MySQL 데이터베이스 한번에 끝내기 SQL Full Tutorial Course using MySQL Database)  (0) 2021.08.18
자바 Oracle DB연동 오류: The Network Adapter could not establish the connectionException in thread "main" java.lang.NullPointerException 해결방법  (0) 2021.08.16
'웹 프로그래밍/DB' 카테고리의 다른 글
  • [벨로퍼트]모던 리액트 강의(투두리스트 제작)
  • SQL 강의 정리 노트1(이수안 컴퓨터연구소 MySQL 데이터베이스 한번에 끝내기 SQL Full Tutorial Course using MySQL Database)
  • 자바 Oracle DB연동 오류: The Network Adapter could not establish the connectionException in thread "main" java.lang.NullPointerException 해결방법
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로그래밍
        • Programming
        • C | C++
        • Java
        • Python
      • 웹 프로그래밍
        • HTML | CSS
        • JavaScript | TypeScript
        • React
        • Vue.js
        • Next.js
        • Spring & Spring Boot
        • JSP & Servlet
        • DB
      • 웹 프로젝트
        • 웹 프로젝트
        • 🥨스낵몰
        • 👨‍👨‍👧‍👧소셜 가계부
        • 🌜꿈 일기장
        • 🔮포트폴리오 사이트
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼
        • 😺Just Meow It: 고양이의 조언
      • 앱 프로그래밍
        • Flutter
        • Kotlin
      • Problem Solving
        • 백준
        • 프로그래머스
        • SWEA
      • Computer Science
        • 알고리즘
        • 컴퓨터 네트워크
        • 이산수학
      • Developer
        • 후기
        • 자료정리
        • 취업 | 취준
        • 웹개발 교육 프로그램
        • TIL
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    d3
    프로젝트
    프로그래머스
    React
    자바
    Jiraynor Programming
    ZeroCho
    플러터
    AWS
    리액트
    mysql
    구현
    뉴렉처
    공식문서
    백준
    자바스크립트
    Til
    Next.js
    클론 프로젝트
    spring boot
    블로그 제작
    알고리즘
    웹사이트
    파이썬
    SWEA
    포트폴리오
    강의내용정리
    타입스크립트
    bfs
    컴퓨터네트워크
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
SQL 명령어 (DDL-데이터 정의어, Data Definition Laguage)
상단으로

티스토리툴바