반응형
무결성 제약조건
제약조건은 데이터의 무결성을 보장받기 위해서 사용
무결성
데이터베이스에 데이터의 정확성(일관성)
제약조건(Constraint)
NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK
NOT NULL은 데이터삽입(INSERT)시 값을 꼭 넣어줘야 한다.
사용하면 좋을 때: 없어서는 안되는 중요한 값일 경우
- NOT NULL 제약이 걸린경우
데이터를 넣어주지않아 오류가 발생

- NOT NULL 컬럼에 값을 넣어준 경우
제대로 작동한다.

그리고 위와같이 INSERT시에 값을 넣지 않게되면 NULL로서 표기된다. (데이터 값이 존재하지 않음)
** 소스코드 **
--DROP TABLE PRODUCT;
CREATE TABLE PRODUCT (
PRODUCTNO INT,
PRODUCTNAME VARCHAR(10) NOT NULL, -- 꼭 데이터 값이 들어가야함
MAKEDAY DATETIME,
PRICE FLOAT,
PRODUCTINFO VARCHAR(MAX)
PRIMARY KEY(PRODUCTNO)
);
-- not null은 데이터 삽입시 꼭 값을 넣어줘야한다.
INSERT INTO PRODUCT
(
PRODUCTNO,
PRODUCTNAME,
PRICE,
PRODUCTINFO
)
VALUES
(
1,
'ABCD',
500,
'AAA'
)
SELECT * FROM PRODUCT WHERE MAKEDAY IS NULL; -- 값이 안들어간것만 찾는다.
--SELECT * FROM PRODUCT WHERE MAKEDAY IS NOT NULL; -- 조건을 걸기, 날짜에 데이터가 있는거만 조회
- PRIMARY KEY 적용하기
형식: PRIMARY KEY(컬럼명1, 컬럼명2, 컬럼명3,.....)
PRIMARY KEY, 기본키는 하나의 테이블에 있는 데이터들을 고유하게 식별하는 제약조건
기본키는 한 개의 테이블에 하나만 생성가능, 설정된 열에 중복된 값을 가질 수 없으며 NULL또한 가질 수 없다.
ps. 하나만 생성이 PRIMARY(컬럼명1개)가아니라 1번을 말함

열에 보면 PRODUCTNO에 key모양으로 적용된것을 볼 수 있다.
PRIMARY KEY(적용할 열)로 작성하면 된다.
**소스코드**
--DROP TABLE PRODUCT;
CREATE TABLE PRODUCT (
PRODUCTNO INT,
PRODUCTNAME VARCHAR(10) NOT NULL, -- 꼭 데이터 값이 들어가야함
MAKEDAY DATETIME,
PRICE FLOAT,
PRODUCTINFO VARCHAR(MAX)
PRIMARY KEY(PRODUCTNO) --PRIMARY KEY 적용해보기
);
INSERT INTO PRODUCT
--아무것도 안적어주면 컬럼값 모두를 사용하겠다는 뜻
VALUES
(
3,
'AAA',
GETDATE(),
15300,
'AAAAAAA'
)
SELECT * FROM PRODUCT
ps. INSERT INTO 사용할 때 컬럼 안지정해주면 모두 사용하겠다는 뜻
- Primary key값 여러개지정하기
1)Primary key값 여러개 지정할 수있다.
2)근데 모든 키값이 다르지않아도됨, 하나만 달라도 새로 데이터 생성이 가능하다.
--DROP TABLE PRODUCT;
CREATE TABLE PRODUCT (
PRODUCTNO INT,
PRODUCTNAME NVARCHAR(10) NOT NULL,
MAKEDAY DATETIME,
PRICE FLOAT,
PRODUCTINFO VARCHAR(MAX)
PRIMARY KEY(PRODUCTNO,PRODUCTNAME) --1개뿐만아니라 2개도 넣을 수 있다.
);
INSERT INTO PRODUCT
(
PRODUCTNO,
PRODUCTNAME,
MAKEDAY,
PRICE,
PRODUCTINFO
)
VALUES
(
3,
N'한글凸', --다국어는 앞에 N을적어준다.
GETDATE(),
1500,
'AAA123'
)
SELECT * FROM PRODUCT


ps. SELECT문에 위와같이 선택한 열만 나오게 정할 수 도 있다.
- PRIMARY KEY의 오류
한줄에 걸쳐 설정해야한다!
CREATE TABLE PRODUCT (
PRODUCTNO INT,
PRODUCTNAME NVARCHAR(10) NOT NULL,
MAKEDAY DATETIME,
PRICE FLOAT,
PRODUCTINFO VARCHAR(MAX)
PRIMARY KEY(PRODUCTNO,PRODUCTNAME) --1개뿐만아니라 2개도 넣을 수 있다.
PRIMARY KEY(MAKEDAY) -- 한번만 선언이 가능, 두개에 걸쳐 선언하면 오류발생
);
반응형
'SQL' 카테고리의 다른 글
MSSQL 4. ORDER BY (0) | 2022.08.12 |
---|---|
MSSQL 3. Identity, SEQUENCE (0) | 2022.08.11 |
MSSQL 2.DROP TABLE, ALTER TABLE (0) | 2022.08.04 |
MSSQL 1.무결성 제약조건 - FOREIGN KEY, CHECK, UNIQUE (0) | 2022.08.04 |
MSSQL 0.데이터 타입 (0) | 2022.08.03 |