Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 싸피셜
- git
- 머신러닝종류
- 싸피10기
- db
- js
- sqld
- 알고리즘
- SSAFY
- Python
- 싸피
- 14658
- vitepwa
- VITE
- queryset
- react
- 셀프넘버
- TypeScript
- 리액트
- pwa적용하기
- 플로이드워셜
- QuerySetAPI
- PWA
- SSAFYcial
- 백준
- SQL
- Django
- Javascript
- 데코레이터
- unionfind
Archives
- Today
- Total
Meme's IT
[SQLD] DDL(Data Definition Language) 본문
# 데이터 유형
- CHAR(s): 고정 길이 문자열 정보, 할당 된 변수 값의 길이가 더 길다면, 공백으로 채워짐('AA' = 'AA ')
- VARCHAR2(s): 가변 길이 문자열 정보, 할당된 변수의 값의 바이트만 적용('AA' ≠ 'AA ')
- NUMBER(L,D): 정수, 실수 등의 숫자 정보
- DATE: 날짜와 시각 정보, 크기 지정이 필요하지 않음
# 규칙
- 테이블명은 다른 테이블의 이름과 중복되면 안된다
- 테이블 내의 칼럼명은 중복이 불가능
- 각 칼럼들은 , 로 구분되고 ; 로 끝난다
- 칼럼에는 꼭 데이터 유형을 지정해줘야 한다
- 테이블명과 칼럼명은 반드시 문자로 시작
- 대소문자 구분하지 않음, (알파벳, 숫자, _, $, #) 사용
# CREATE TABLE
= 테이블 생성
CREATE TABLE 테이블명 (칼럼명 데이터타입 제약조건 등등)
여기서, 테이블명은 단수형이 권고된다
// 테이블 생성의 예
CREATE TABLE PLAYER (
PLAYER_ID CHAR(7) NOT NULL.
PLAYER_NAME VARCHAR2(20) NOT NULL);
제약 조건
: 데이터 무결성 유지가 목적, 복제 테이블에는 기존 테이블 제약조건 중 NOT NULL만 적용
- PRIMARY KEY
테이블 당 한개의 기본키만 가능
기본키 생성시 DBMS가 자동으로 인덱스를 설정함
NULL 불가 - FOREIGN KEY
다른 테이블의 기본키를 외래키로 지정
참조 무결성 제약조건
ALTER TABLE 테이블명 ADD CONSTRAINT 칼럼명 FOREIGN KEY (칼럼명) REFERENCES 테이블명;
- UNIQUE KEY
행 데이터를 식별하기 위해 생성
NULL 가능 - DEFAULT: 'DEFAULT 값'으로 기본값 설정
- NULL: 아직 정의되지 않은 값, 현재 데이터를 입력하지 못하는 값(제약조건으로는 NOT NULL이 들어간다)
- CHECK: 입력값의 종류 및 범위 제한
테이블의 구조를 확인하고 싶다면? → DESCRIBE
DESCRIBE 테이블명
# ALTER TABLE
= 테이블의 칼럼 변경
- 칼럼 추가: 마지막 칼럼으로 추가됨 (위치 지정 불가능)
ALTER TABLE 테이블명 ADD (칼럼명 데이터타입);
- 칼럼 삭제: 삭제 후 복구 불가능
ALTER TABLE 테이블명 DROP COLUMN 칼럼명;
- 칼럼 설정 변경: NULL만 있거나, 행이 없는 경우에만 축소 가능
ALTER TABLE 테이블명 MODIFY (칼럼명 데이터타입 제약조건);
- 칼럼명 변경
ALTER TABLE 테이블명 RENAME COLUMN 칼럼명;
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건;
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건;
# RENAME TABLE
RENAME 테이블명 TO 테이블명;
ALTER TABLE 테이블명 RENAME TO 테이블명;
# DROP TABLE
테이블의 데이터와 구조 삭제, 복구 불가
CASCADE CONSTRAINT 옵션: 관련 테이블의 참조 제약 조건도 삭제하여 무결성 준수 가능
DROP TABLE 테이블명;
# TRUNCATE TABLE
테이블의 전체 데이터 삭제, DROP은 테이블 자체를 삭제, TRUNCATE는 데이터만 삭제
로그를 기록하지 않음 → ROLLBACK 불가능
TRUNCATE TABLE 테이블명;
'공부 > SQLD' 카테고리의 다른 글
[SQLD] TCL(Transaction Control Language) (0) | 2023.10.30 |
---|---|
[SQLD] DML(Data Manipulation Language) (0) | 2023.10.30 |
[SQLD] 관계형 DB (0) | 2023.10.30 |
[SQLD] 분산 DB 데이터에 따른 성능 (0) | 2023.10.26 |
[SQLD] DB의 구조와 성능 (0) | 2023.10.23 |