본문 바로가기

Database

[Database] MySQL : PART1

✏️SQL 종류

SQL 종류

- DDL ( Data Definition Language) : 데이터 정의어, 테이블을 생성/변경/제거하는 기능 제공

- DML ( Data Manipulation Language) : 데이터 조작어, 테이블에 저장된 데이터를 수정/삭제/검색하는 기능 제공

- DCL ( Data Control Language) : 데이터 제어어, 보안을 위해 데이터 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능 제공

 

SQL 관련 규칙

SQL 질의문은 대소문자를 구분하지 않는다.
[]의 내용은 생략이 가능하다.
SQL 질의문은 세미클론(;)으로 문장의 끝을 표시한다.
문자열이나 날짜 데이터는 작은 따옴표로 묶으며, 이는 대소문자를 구분한다.

 

 

✏️ DDL 

테이블 생성 > CREATE문
테이블 수정 > ALTER문
테이블 삭제 > DROP문

 

CREATE문

CREATE TABLE 테이블_이름(
⓵ 속성_이름 데이터_타입 [NOT NULL] [DEFAULT 기본_값]
⓶ [PRIMARY KEY (속성_리스트)]
⓷ [UNIQUE (속성_리스트)]
⓸ [FOREIGN KEY (속성_리스트) REFERENCES 테이블_이름(속성_리스트)] [ON_DELETE 옵션] [ON_UPDATE 옵션]
)

테이블 속성 정의

- 데이터 타입 : ex ) INT / VARCHAR(n) / DATETIME

- NOT NULL : 속성이 NULL값을 허용하지 않음을 의미하는 키워드

- DEFAULT 기본값 : 속성의 기본 값을 지정하는 키워드

 

 

키 정의

- FOREIGN KEY(외래키) REFERENCES 참조테이블(참조키) : 외래키를 지정하는 키워드

- 참조할때는 생성된 테이블을 참조해야 하므로, 순서를 조심해야 한다.

- 참조 무결성 제약조건 유지를 위해 참조되는 테이블에서 Tuple 변경 시 처리 방법을 지정하는 옵션

  • ON UPDATE NO ACTION : Tuple을 변경하지 못하게 한다.
  • ON UPDATE CASCADE : 관련 Tuple에서 FK값을 함께 변경한다.
  • ON UPDATE SET NULL : 관련 Tuple에서 FK값을 NULL로 변경한다.
  • ON UPDATE SET DEFAULT : 관련 Tuple의 FK값을 미리 지정한 PK로 변경한다.

ex ) FOREIGN KEY (소속부서) REFERENCES 부서(부서번호) ON DELETE CASCADE ON UPDATE CASCADE

: 부서 테이블에서 부서 번호가 삭제되거나 값이 바뀌면 지금 만들어지는 테이블에서 이에 대응되는 소속 부서 속성의 값을 자동으로 삭제하거나 같은 값으로 수정한다.

 

 

ALTER문

새로운 속성 추가

ALTER TABLE 테이블_이름 ADD 속성_이름 데이터_타입 [NOT NULL] [DEFAULT값];

 

기존 속성 삭제

ALTER TABLE 테이블_이름 DROP 속성_이름 CASCADE|RESTRICT;

- CASCADE : 삭제할 속성과 관련된 제약조건이나 참조하는 다른 속성을 함께 삭제한다.

- RESTRICT : 삭제할 속성과 관련된 제약조건이나 참조하는 다른 속성이 있다면 삭제를 거부한다.

 

 

DROP문

테이블 삭제

DROP TABLE 테이블_이름 CASCADE|RESTRICT;

 

✏️ DML

데이터 검색 > SELECT
데이터 삽입 > INSERT
데이터 수정 > UPDATE
데이터 삭제 > DELETE

SELECT문

SELECT [ALL |DISTINCT] 속성_리스트 FROM 테이블_리스트;

- 검색 결과는 테이블 형태로 반환된다.

SELECT문과 관련되어서는 내용이 방대하니 게시물을 별도로 작성하였다.

 

 

INSERT문

INSERT INTO 테이블_이름[(속성_리스트)] VALUES[(속성값_리스트)];

- 속성명과 속성값은 순서대로 일대일 대응되어야 한다.

- 여러값을 한번에 입력이 가능하다.

 

 

UPDATE문

UPDATE 테이블_이름 SET 속성_이름1=값1, 속성_이름2=값2 [WHERE 조건];

 

 

DELETE문

DELETE FROM 테이블_이름[WHERE 조건];