GiantStepDEV
article thumbnail

์ œ์•ฝ ์กฐ๊ฑด

  • ํ…Œ์ด๋ธ”์— ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์•ฝํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๊ทœ์น™์„ ์˜๋ฏธ
  • ์กฐ๊ฑด์— ๋งž์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ €์žฅ ๋ถˆ๊ฐ€

NOT NULL

  • ๋นˆ ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ
  • ์—ด ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ์—ฌ๋ถ€๋Š” ์ƒ๊ด€์—†์Œ
  • โญ NULL ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ๊ฐ’์ด ์ž…๋ ฅ๋˜์•ผ ํ•จ
CREATE TABLE TABLE_NOTNULL (
	LOGIN_ID	VARCHAR2(20) NOT NULL,
	LOGIN_PW	VARCHAR2(20) NOT NULL,
	TEL		VARCHAR2(20)
);

UNIQUE

  • ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๊ฐ’
  • ์—ด์— ์ €์žฅํ•  ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ
CREATE TABLE TABLE_UNIQUE (
	LOGIN_ID	VARCHAR2(20) UNIQUE,
	LOGIN_PW	VARCHAR2(20) NOT NULL,
	TEL 		VARCHAR2(20)
);

PRIMARY KEY

  • UNIQUE, NOT NULL ํŠน์„ฑ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
CREATE TABLE TABLE_PK (
	LOGIN_ID	VARCHAR2(20) PRIMARY KEY,
	LOGIN_PW	VARCHAR2(20) NOT NULL,
	TEL		VARCHAR2(20)
);

FOREIGN KEY(์™ธ๋ž˜ ํ‚ค) ์ง€์ •

  • ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ฐ„ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ œ์•ฝ ์กฐ๊ฑด
CREATE TABLE DEPT_FK(
	DEPTNO		NUMBER(2) PRIMARY KEY,
	DNAME		VARCHAR2(14),
	LOC		VARCHAR2(13)
);
CREATE TABLE EMP_FK(
	EMPNO 		NUMBER(4) PRIMARY KEY,
	ENAME 		VARCHAR2(20) NOT NULL,
	JOB 		VARCHAR2(9),
	MGR 		NUMBER(4),
	HIREDATE 	DATE,
	SAL 		NUMBER(7,2),
	COMM 		NUMBER(7,2),
	DEPTNO 		NUMBER(2) REFERENCES DEPT_FK (DEPTNO)
);
INSERT INTO EMP_FK VALUES(9999, '๊น€์ง์›', 'BACKEND', 0000, '2020/02/01', 3000, NULL, 10);

๐Ÿ“Œ DEPT ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์ƒํƒœ์—์„œ ์ฐธ์กฐํ•˜๋ ค๋ฉด ๊ฐ’์ด ์•ˆ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์™ธ๋ž˜ ์ œ์•ฝ!

๐Ÿ“Œ ๋ฐ˜๋Œ€๋กœ ์‚ญ์ œํ•  ๋•Œ๋„ ํ•ด๋‹น ๋ถ€์„œ์™€ ์ฐธ์กฐ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ ์ง€์›Œ์ง‘๋‹ˆ๋‹ค.

CHECK

  • ๋ฐ์ดํ„ฐ ํ˜•ํƒœ์™€ ๋ฒ”์œ„๋ฅผ ์ •ํ•จ(CHECK๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ํ•˜๋Š” ๊ฒƒ ๊ถŒ์žฅ)
CREATE TABLE TABLE_CHECK(
	LOGIN_ID	VARCHAR2(20) PRIMARY KEY,
	LOGIN_PW	VARCHAR2(20) CHECK (LENGTH(LOGIN_PW) > 3),
	TEL		CHAR(13)
);
INSERT INTO TABLE_CHECK VALUES('DFDF', '13', '010-2353-2321'); -- ์˜ค๋ฅ˜

DEFAULT

  • ๊ธฐ๋ณธ๊ฐ’ ์ง€์ •
CREATE TABLE TABLE_DEFAULT(
	LOGIN_ID	VARCHAR2(20) PRIMARY KEY,
	LOGIN_PW	VARCHAR2(20) DEFAULT '1234',
	TEL		CHAR(13)
);

INSERT INTO TABLE_DEFAULT VALUES('ygm815', NULL, '010-2321-2232');
INSERT INTO TABLE_DEFAULT(LOGIN_ID, TEL) VALUES('ygm8155', '010-2321-2232');

profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!