미식가의 개발 일기

[SQLD] 데이터 정의어(DDL) - CREATE, ALTER, DROP, TRUNCATE, RENAME 본문

SQL

[SQLD] 데이터 정의어(DDL) - CREATE, ALTER, DROP, TRUNCATE, RENAME

대체불가 핫걸 2025. 2. 28. 22:18
데이터 정의어(DDL: Data Definition Language):
데이터베이스의 구조(스키마)를 정의하는 언어

 

 

💡 CREATE

새로운 데이터베이스, 테이블, 인덱스, 뷰 등을 생성
CREATE TABLE 테이블 이름 (
	컬럼명1 데이터타입 [제약조건], 
	컬럼명2 데이터타입 [제약조건], 
	컬럼명3 데이터타입 [제약조건] 
);
CREATE TABLE users(
	id INT PRIMARY KEY,
    	name VARCHAR(50) NOT NULL,
    	order_date DATETIME
);
  • 테이블 이름, 컬럼명 → 반드시 문자로 시작, 중복 X
  • 컬럼 뒤에 데이터 타입은 꼭 지정
  • A-Z, a-z, 0-9, _, $, #만 사용 가능 

 

제약조건

  • `PRIMARY KEY`: 기본키
  • `UNIQUE KEY`: 고유키 
  • `NOT NULL`: NULL 값 금지
  • `CHECK`: 입력 값 범위 제한
  • `FOREIGN KEY`: 외래키

 

테이블명 확인 

// Oracle
DESC 테이블명;

// SQL Server
exec sp_help ‘db0.테이블명’
go

 

💡 ALTER

기존 객체(테이블, 컬럼 등)의 구조변경
// 추가
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입; 

// 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명; 

// 데이터 타입, 제약 조건 변경(Oracle)
ALTER TABLE 테이블명 MODIFY (컬럼명 데이터타입 [DEFAULT] [NOTNULL]) 

// 데이터 타입, 제약 조건 변경(SQL Server)
ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 데이터타입 [DEFAULT] [NOTNULL]

 

💡 DROP

데이터베이스, 테이블, 뷰 등을 삭제
// 테이블 삭제
DROP TABLE 테이블명;
  • `CASCADE CONSTRAINT`: 참조되는 제약조건도 삭제 

 

💡 TRUNCATE

테이블의 모든 데이터 초기화(구조는 유지)
TRUNCATE TABLE 테이블명;

 

 

💡 RENAME

테이블 이름 변경 
// Oracle
RENAME 변경 전 테이블명 TO 변경 후 테이블명; 

// SQL Server
sp_rename 변경 전 테이블명, 변경 후 테이블명
반응형

'SQL' 카테고리의 다른 글

[SQLD] 조인  (0) 2025.03.02
[SQLD] GROUP BY, HAVING, ORDER BY 절  (0) 2025.03.01
[SQLD] SQL 내장 함수  (0) 2025.03.01
[SQLD] WHERE 절  (0) 2025.03.01
[SQLD] 데이터 조작어(DML) - INSERT, UPDATE, DELETE, SELECT  (0) 2025.03.01