데이터베이스의 언어는 크게 3가지로 나뉜다.
데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)
데이터베이스 스키마 정의
CREATE, ALTER, DROP
테이블 생성
CREATE TABLE TABLE_NAME(
COL1 VARCHAR(10) +@,//+@ : CONSTRAINT
COL2 INT +@,
...
)
NOT NULL : NULL을 허용하지 않음
UNIQUE : 중복 값 비허용
PRIMARY KEY : 기본키 지정
FOREIGN KEY : 외래키 지정
CHECK : 특정 조건에 맞는 데이터만 입력
DEFAULT : 값이 입력되지 않을 때 기본값
INDEX : 인덱스 지정
테이블 수정
ALTER TABLE TABLE_NAME DROP COLUMN COL1
ALTER TABLE TABLE_NAME ADD COL1 VARCHAR(10) NULL
ALTER TABLE TABLE_NAME ALTER COLUMN COL1 VARCHAR(20) NOT NULL
데이터베이스/테이블 삭제
DROP DATABASE DATABASE1
DROP TABLE TABLE1
저장된 데이터 처리
SELECT, INSERT, DELETE, UPDATE
조건에 맞는 튜플 검색
SELECT COL1 [AS COL] FROM TABLE_NAME [WHERE ###][ORDER BY ###]
새로운 튜플 삽입
INSERT INTO TABLE_NAME (COL1, COL2, COL3) VALUES ("A", "B", "1")
조건에 맞는 튜플 삭제
DELETE FROM TABLE_NAME WHERE COL1 = "B"
조건에 맞는 튜플 내용 변경
UPDATE TABLE_NAME SET COL1 = "C" [WHERE ###][ORDER BY ###][LIMIT ###]
데이터베이스 트랜잭션 명시, 권한 부여 및 취소
주요 데이터의 보안, 무결성, 데이터 회복, 병행 수행 제어 등 정의
COMMIT, ROLLBACK, GRANT, REVOKE
작업한 결과를 물리적 디스크로 저장하고, 조작 작업이 완료됨을 사용자에게 알려줌
ROLLBACK으로 복구 불가
COMMIT;
작업했던 내용을 원래의 상태로 복구하기 위한 명령어
COMMIT 하기 이전의 상태만 가능
ROLLBACK;
사용자에 대한 권한 부여
GRANT 권한 종류 ON 대상 TO 계정명 IDENTIFIED BY 암호 [GRANT OPTION]
FLUSH privileges
EX) 모든 권한을 가진 계정 생성
GRANT ALL ON *.* TO test@localhost IDENTIFIED BY "pwpw"
FLUSH privileges
EX) 특정 데이터베이스 조회 권한을 가진 계정 생성
GRANT SELECT ON database_name.* TO test@localhost IDENTIFIED BY "pwpw"
FLUSH privileges
적용한 권한 해제
REVOKE insert, update, create ON database_name.table_name TO test@localhost
EX) 전체 권한 해제
REVOKE ALL ON database_name.table_name TO test@localhost
출처
https://jhnyang.tistory.com/307
https://121202.tistory.com/27
https://121202.tistory.com/37