mjeongriver
article thumbnail
Published 2022. 11. 18. 18:50
day35-DB: sql TIL/SQL

1. 롤

-- 롤을 이용한 생성 (여기)
create user com02 identified by com02;
-- 롤
grant connect, resource to com02;
-- 테이블 스페이스 연결
alter user com02 default tablespace users quota unlimited on users;

 

2. 데이터 베이스 모델링

 

- draw.io - 새로운 다이어그램 만들기

 

- M:N 관계(암기) * 테이블로 만들 수 없어서 1:N으로 만들어주고 N에다 fk를 넣음

 

비식별 관계: 의사컬럼을 하나 넣음. 먼저 데이터가 들어가고 나중에 변경 가능

-fk는 null값을 가질 수 있으니까, 첫번째 그림처럼 비식별은 신청번호를 넣어주기 때문에 null값이 들어갈 수 있다는 것! (보통 많이 사용함-비회원도 받아줄 수 있음)

 

식별 관계: 강의번호 pk, 회원 pk를 두개를 한번에 슈퍼키로 이용하고, 슈퍼키로 묶으려면 반드시 회원이랑, 강의 데이터가 반드시 들어가야 함 그래야 insert가 들어갈 수 있음 (즉, 먼저 insert 값이 꽂힌 후 맵핑 테이블로 들어갈 수 있음, pk는 null값이 들어가지 못하니까)

 

- erd 클라우드

논리적으로는 fk 관계를 가지고 있지만, fk관계는 많이 넣지 않음(비식별로 잡고)

왜? fk제약이 들어갔으면 저기에 있는 데이터만 들어갈 수 있고 즉, 삭제가 되지 않음.

 

- 코드블럭

CREATE TABLE "user" (
	"ID"	VARCHAR2(50)		NOT NULL,
	"INFO"	VARCHAR2(50)		NULL,
	"REGDATE"	DATE		NULL
);

CREATE TABLE "BOARD" (
	"BNO"	NUMBER(10)		NOT NULL,
	"TITLE"	VARCHAR2(100)		NULL,
	"CONTENTS"	VARCHAR2(500)		NULL,
	"REGDATE"	DATE		NULL,
	"ID"	VARCHAR2(50)		NOT NULL
);

CREATE TABLE "REPLY" (
	"RNO"	NUMBER(10)		NOT NULL,
	"TITLE"	VARCHAR2(100)		NULL,
	"CONTENTS"	VARCHAR2(500)		NULL,
	"REGDATE"	DATE		NULL,
	"ID"	VARCHAR2(50)		NOT NULL,
	"BNO"	NUMBER(10)		NOT NULL
);

CREATE TABLE "ADMIN" (
	"ID"	VARCHAR2(50)		NOT NULL,
	"Field"	VARCHAR(255)		NULL
);

CREATE TABLE "COURSE" (
	"CNO"	NUMBER(10)		NOT NULL,
	"TEACHER"	VARCHAR2(50)		NULL
);

CREATE TABLE "COURSELIST" (
	"ID"	VARCHAR2(50)		NOT NULL,
	"ID2"	VARCHAR2(50)		NOT NULL,
	"CNO2"	NUMBER(10)		NOT NULL
);

ALTER TABLE "user" ADD CONSTRAINT "PK_USER" PRIMARY KEY (
	"ID"
);

ALTER TABLE "BOARD" ADD CONSTRAINT "PK_BOARD" PRIMARY KEY (
	"BNO"
);

ALTER TABLE "REPLY" ADD CONSTRAINT "PK_REPLY" PRIMARY KEY (
	"RNO"
);

ALTER TABLE "ADMIN" ADD CONSTRAINT "PK_ADMIN" PRIMARY KEY (
	"ID"
);

ALTER TABLE "COURSE" ADD CONSTRAINT "PK_COURSE" PRIMARY KEY (
	"CNO"
);

ALTER TABLE "COURSELIST" ADD CONSTRAINT "PK_COURSELIST" PRIMARY KEY (
	"ID"
);

ALTER TABLE "ADMIN" ADD CONSTRAINT "FK_user_TO_ADMIN_1" FOREIGN KEY (
	"ID"
)
REFERENCES "user" (
	"ID"
);

 

'TIL > SQL' 카테고리의 다른 글

day37-DB: sql  (0) 2022.11.22
day36-DB: sql  (0) 2022.11.21
day34-DB: sql  (0) 2022.11.17
day33-DB: sql  (3) 2022.11.16
day32-DB: sql  (0) 2022.11.15
profile

mjeongriver

@mjeongriver

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그