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)
기본 문법
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
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를 변경하는 것이라면, 변경 작업 때문에 서비스의 백엔드에 영향이 있을 지 검토 후에 변경하는 것이 중요함.
'DB' 카테고리의 다른 글
6. MySQL 데이터 조회 - 2 (subquery) (0) | 2023.04.29 |
---|---|
5. MySQL 데이터 조회 - 1 (SELECT) (0) | 2023.04.27 |
4. SQL 데이터 추가, 수정, 삭제 (0) | 2023.04.27 |
2. relational data model의 기본개념과 ralational database의 의미 (1) | 2023.04.26 |
1. 데이터베이스 기본개념 (0) | 2023.04.26 |
댓글