일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 혼자 공부하는 SQL
- Django
- 컴퓨터 과학이 여는 세계
- mysql
- 2023
- 퓨처셀프
- Til
- 문제풀이
- SQL
- PCA
- 선형대수
- FastAPI
- Stored Procedure
- CS
- 덴드로그램
- 백준
- WIL
- 프로그래머스
- computer science
- 한 권으로 읽는 컴퓨터 구조와 프로그래밍
- 멀티스레딩
- 미래혁신대전
- MVT
- 다시 왔다!
- Recommender system
- 엘런 튜링
- stored function
- JP Study
- 1463
- Programmers
- Today
- Total
Growth Hoon
20230831_TIL_SQLD 2과목{DDL : CREATE, ALTER, RENAME, DROP} 본문
SQL (Structured Query Language )
- 관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어
데이터 조작, 정의, 제어어의 정의 및 SQL 문법
데이터 조작어 (DML : Data Manipulation Language)
- SELECT, INSERT, UPDATE, DELETE
데이터 정의어 (DDL : Data Definition Language)
- CREATE, ALTER, DROP, RENAME
데이터 제어어 (DCL : Data Control Language)
- GRANT, REVOKE
트랙잭션 제어어 (TCL : Transaction Cotrol Language)
- COMMIT, ROLLBACK
Table이란?
- 데이터를 저장하는 객체
- 하나의 공간을 필드(Field)라고 한다.
Table의 정규화
- 데이터의 불필요한 중복을 줄이는 것이 정규화 (Nomalization)
- 다른 Table의 기본키로 사용되고 있는 관계를 연결하는 Column을 Foreign Key라고 한다.
DDL ( Data Definition Language ) - 데이터 정의 언어
- CREATE, ALTER, DROP, RENAME
데이터의 유형
- CHARACTER : 고정길이 문자열 정보 ( 오라클, sql_server : CHAR 표현 )
- VARCHAR : 가변길이 문자열 정보 (오라클 : VARCHAR2, sql_server :VARCHAR 표현 )
- NUMERIC : 숫자 정보 ( 오라클 : NUMBER , sql_server : 10가지의 다양한 표현 )
- DATETIME : 날짜와 시각 정보 (오라클 : DATE, sql_server : DATETIME 표현)
CREATE (TABLE)
CREATE TABLE 테이블 이름(
칼럼명 DATATYPE [DEFAULT 형식],
칼럼명 DATATYPE [DEFAULT 형식],
칼럼명 DATATYPE [DEFAULT 형식],
);
- 테이블 이름은 가능하면 단수명으로 지정
- 다른 테이블과 중복 x
- 각 칼럼들은 ()로 묶어서 지정하고 구분은 ,(콤마)로 한다
- 테이블 생성문의 마지막은 세미콜론
- 칼럼 뒤에 데이터 유형(DATATYPE)은 꼭 지정되어야 한다.
- 문자 유형은 반드시 가질 수 있는 최대 길이를 지정 ( VARCHAR(30) )
- 마지막 칼럼은 ,(콤마)를 찍지 않는다.
- 칼럼에 대한 조건은 CONSTRAINT를 이용하여 추가
CONSTRAINT
- 데이터 무결성을 유지하기 위한 데이터베이스의 보편적인 방법
- [PRIMARY KEY, UNIQUE KEY, NOT NULL, CHECK, FOREIGN KEY] 가 있음
생성된 테이블 구조를 확인하는 방법 = DESCRIBE
# Oracle
DESCRIBE 테이블명
# Sql Server
sp_help 'dbo.데이블명'
ALTER (TABLE)
- 테이블을 사용하는 도중에 변경할 때 사용
- 주로 칼럼을 추가/삭제 혹은 제약조건을 추가/삭제 하는 작업을 진행
ADD COLUMN - 컬럼 추가
- 마지막 컬럼으로 추가됨.
ALTER TABLE 테이블명
ADD 추가할컬럼명 데이터유형;
DROP COLUMN - 컬럼 제거
- 한번에 하나만 삭제됨.
- 삭제 후 최소 하나 이상의 컬럼 남아야함.
- 삭제된 컬럼 복구 불가
ALTER TABLE 테이블명
DROP COLUMN 삭제할 컬럼명;
MODIFY COLUMN - 데이터 유형, 티폴트 값, 제약조건 변경
# Oracle
ALTER TABLE 테이블명
MODIFY (칼럼명1 데이터유형 [DEFAULT 식] [제약조건],
...);
# Sql server
ALTER TABLE 테이블명
ALTER (칼럼명1 데이터유형 [DEFAULT 식] [제약조건],
...);
RENAME COLUMN
- Oracle등 일부 DBMS에서만 사용 가능
# oracle
ALTER TABLE 테이블명
RENAME COLUMN 변경해야 할 컬럼명 TO 새로운 컬럼명;
# sql server
sp_rename 변경해야 할 컬럼명, 새로운 컬럼멸, 'COLUMN';
DROP CONSTRAINT - 부여했던 제약조건 삭제
# Oracle & sql server
ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명;
ADD CONSTRAINT - 제약조건 추가
# Oracle & sql server
ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명 제약조건 (칼럼명);
RENAME TABLE
# oracle
RENAME 변경전 데이블명 TO 변경 후 테이블명;
# sql server
sp_rename 변경전 테이블명, 변경 후 테이블명;
DROP TABLE
DROP TABLE 테이블명 [CASCADE CONSTRAINT];
- 불필요한 테이블 삭제
- CASCADE CONSTRAINT 옵션은 해당 테이블과 관계가 있던 참조하는 제약조건도 삭제
- SQL서버에는 CASCADE 옵션이 존재하지 않음, 그래서 FK 혹은 참조 테이블을 먼저 삭제해야함
TRUNCATE TABLE
TRUNCATE TABLE 테이블명;
- 테이블을 제거하는 건 아님
- 테이블 정보는 남기고, 행을 모두 제거하여 테이블 재사용성 가능
- DML로 분류될 수 있지만 내부 처리방식이나 AUTO commit 특성으로 DDL로 분류함.
reference site
1. 사용한 이미지 주소
2. SQLD관련 책