mysql을 기준으로 한다. 다른 SQL에서는 일부 차이점이 존재할 수 있다.
데이터베이스 및 테이블의 생성 및 제거
- 생성 : CREATE 명령어 사용
- 제거 : DROP 명령어 제거
데이터베이스 생성
CREATE DATABASE [IF NOT EXISTS] db_name;
데이터베이스 제거
DROP DATABASE db_name;
테이블 생성
테이블은 CREATE 명령어를 사용한다. 이때 각 컬럼은 컴마( , )를 기준으로 구분되며 컬럼 이름, 컬럼의 타입, 해당 컬럼에 대한 제한조건을 설정하게 된다.
CREATE TABLE [IF NOT EXISTS] tb_name
(
column1 type constraint_info,
column2 type constraint_info,
column3 type constraint_info,
column4 type constraint_info
...
)
컬럼에 사용될 수 있는 타입은 다음과 같다.
- 문자형 : CHAR(n), VARCHAR(n), TEXT, BLOB ( 크기 다양 )
- 정수형 : TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT ( 통상적인 타입과 대응, MEDIUMINT만 short-int 사이 )
- 실수형 : DECIMAL, FLOAT, DOUBLE (M,D)
- 날짜형 : DATE, DATETIME (시간 포함), TIME (시간만), YEAR
정수 및 실수형의 경우 UNSIGNED을 추가하여, 0 이상의 영역만 지정할 수 있다.
사용될 수 있는 제한조건 (constraint) 는 다음과 같다.
https://www.w3schools.com/sql/sql_constraints.asp
- NOT NULL : 해당 컬럼은 반드시 값이 존재해야 함. 없으면 에러 발생.
- UNIQUE : 컬럼의 값이 중복되지 않음.
- PRIMARY KEY : 테이블의 행을 구분하는 조건.
- FOREIGN KEY : 다른 테이블과 연결관계를 가지는 키.
- CHECK : 특정 조건을 만족하는지 검사.
- DEFAULT : 값을 넣지 않았을 때 기본값 지정.
제약조건을 생성할 때 이름을 따로 지정하지 않으면 자체적으로 이름을 지정한다.
테이블 생성 시 제약조건 생성
각 컬럼과 제약조건을 함께 기술하는 대신, 따로 작성할 수도 있다.
CREATE TABLE [IF NOT EXISTS] tb_name
(
column1 type constraint_info,
column2 type constraint_info,
column3 type constraint_info,
column4 type constraint_info,
-- (1) 제한조건을 따로 분리
PRIMARY KEY(column1)
-- (2) CONSTRAINT 명령어를 함께 사용하여 정의
CONSTRAINT CHECK (column2 > 10)
-- (3) CONSTRAINT 객체에 이름 붙이기
CONSTRRAINT con_name CHECK (column3 LIKE "S%")
)
테이블 생성 후 제약조건 생성/삭제
이미 생성된 테이블에 특정 컬럼이나 제약조건 등을 추가하기 위해서는 ALTER TABLE 명령을 이용한다.
-- (1) 제약조건 추가
ALTER TABLE tb_name
ADD CONSTRAINT constraint_name ~ ;
-- (2) 제약조건 제거
ALTER TABLE tb_name
DROP CONSTRAINT constraint_name;
-- 제약조건 이름을 모르는 경우, 다음 명령을 통해 이름을 알아본다.
SHOW CREATE TABLE tb_name;
테이블 제거
DROP TABLE tb_name;
데이터베이스 / 테이블 열람
SHOW DATABASES;
SHOW TABLES;
특정 데이터베이스 선택
USE db_name;
특정 테이블 관련 정보 보기
테이블의 컬럼 정보 등을 열람할 때 사용한다.
(DESCRIBE|DESC) tb_name;
'잡다 > SQL' 카테고리의 다른 글
[SQL] Entity Relationship Model (0) | 2022.01.17 |
---|---|
[SQL] SELECT 문 (0) | 2022.01.15 |
sql 데이터 형 (0) | 2022.01.07 |