반응형
CHECK
https://www.w3schools.com/sql/sql_check.asp
CHECK Constraint는 값의 범위를 지정해 줄 수 있다.
MySQL:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);
위와같이 쿼리문을 작성하면 Age가 18이상인 값만 항상 DB에 저장됨이 보장된다.
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
);
여러 CHECK 조건을 함께 넣기 위해서는 위와같이 설정한다.
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Age >= 18);
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age >= 18 AND City='Sandnes');
를 하면 테이블 수정시 CHECK를 넣을 수 있고
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;
를 하면 테이블에서 CHECK 부분을 DROP 할 수 있다.
DEFAULT
https://www.w3schools.com/sql/sql_default.asp
DEFAULT Constraint를 설정하면 각 열에 default 값을 설정 할 수 있다.
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);
를 한 후
INSERT INTO Persons (ID, LastName, FirstName, Age)
VALUES (1, 'A', 'B', 4);
를 작성해보면 City에 아무값도 넣지 않았지만 Sandnes가 들어가있음을 볼 수 있다.
CREATE TABLE Orders (
ID int NOT NULL,
OrderNumber int NOT NULL,
OrderDate date DEFAULT GETDATE()
);
GETDATE 함수를 이용하여 현재 생성 날자도 표현이 가능하다.
MySQL:
ALTER TABLE Persons
ALTER City SET DEFAULT 'Sandnes';
SQL Server / MS Access:
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'Sandnes';
Oracle:
ALTER TABLE Persons
MODIFY City DEFAULT 'Sandnes';
를 이용하여 필드의 DEFAULT 값을 설정 할 수 있고
MySQL:
ALTER TABLE Persons
ALTER City DROP DEFAULT;
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT;
를 이용하여 필드의 DEFAULT 값을 DROP 할 수 있다
반응형
'Applied > Database' 카테고리의 다른 글
[178번] Rank Scores (0) | 2019.05.09 |
---|---|
[175번] Combine Two Tables (0) | 2019.04.27 |
데이터베이스 키 개념, 기본키, 외래키 (0) | 2018.08.22 |
데이터베이스 CREATE / DROP / ALTER DB, TABLE (0) | 2018.08.20 |
데이터베이스 SELECT INTO, INSERT INTO SELECT, ISNULL, PROCEDURES (0) | 2018.08.18 |