본문 바로가기
DB

3. SQL 기본개념과 기본문법

by 유니개발 2023. 4. 27.

SQL (Structured Query Language)

- 현업에서 쓰이는 relational DBMS의 표준 언어

 

SQL 주요용어

relation -> table

attribute -> column

tuple -> row

domain -> domain

 

SQL에서 relation이란

- multiset(= bag) of tuples @ SQL

- 중복된 tuple을 허용

 

IT 회사 관련 RDB 만들기 (MySQL)

schema 설정

기본 문법

SHOW DATABASE;  database 보여줌

CREATE DATABASE company;  만들고싶은 database 이름(company)을 끝에 적어줌

SELECT database(); 지금 선택된 database를 알려줌

USE company;  사용할 database 이름을 적어주면 그 database를 선택함

DROP DATABASE company; 지우고 싶은 database 이름을 끝에 적어줌

 

MySQL에서는 DATABASE와 SCHEMA가 같은 뜻을 의미함

CREATE DATABASE company = CREATE SCHEMA company

EMPLOYEE table을 만들 때

PRIMARY KEY, UNIQUE 를 정할 때, attribute가 한개라면 선언할 때 바로 옆에 적으면 되고, attribute가 두개 이상이라면 table 아랫쪽에 적는 방법밖에 없음. (attribute가 한개일 때도 table 아랫쪽에 적어도 됨.)

 

NOT NULL

- 보통 NOT NULL과 UNIQUE를 같이 사용하는 경우가 많음.

(UNIQUE로 지정된 attribute는 중복된 값을 가질 수 없지만, 값이 NULL의 경우 중복을 허용할 수 있기 때문에)

 

attribute DEFAULT

- attribute의 default 값을 정의할 때 사용

- 새로운 tuple을 저장할 때 해당 attribute에 대한 값이 없다면 default 값으로 저장

 

CHECK constraint

- attribute의 값을 제한하고 싶을 때 사용 ( CHECK (salary >= 50000000) )

 

MySQL에서 지원하는 서로다른 종류의 reference_option은 CASCADE, SET NULL, RESTRICT 가 있음.

(SET DEFAULT는 제대로 지원하지 않음.)

 

 

ALTER TABLE

- 이미 서비스 중인 table의 schema를 변경하는 것이라면, 변경 작업 때문에 서비스의 백엔드에 영향이 있을 지 검토 후에 변경하는 것이 중요함.

댓글