반응형
1) Script 생성
1. 스크립트 우클릭 후 Ctrl+] 클릭하여 새로운 SQL 에디터 생성
2. 최상단 Oracle-XE, WEB 연결상태 확인
2) 테이블 생성
--한줄 주석
/*
여러줄
주석
*/
--테이블 생성
CREATE TABLE TEST( --TEST 는 테이블명
INTDATA NUMBER(4),
STRDATA VARCHAR2(100)
);
3) 테이블 삭제
--테이블 삭제
DROP TABLE TEST;
4) 테이블 수정
--컬럼추가
ALTER TABLE TEST ADD(
DOUBLEDATA NUMBER(6,2) --추가할컬럼명 자료형
);
--컬럼수정
ALTER TABLE TEST MODIFY(
STRDATA VARCHAR2(300) --바꿀컬럼명 자료형
);
--테이블 이름변경
ALTER TABLE TEST RENAME TO TEST2;
ALTER TABLE TEST2 RENAME TO TEST;
--컬럼 이름변경
ALTER TABLE TEST RENAME COLUMN DOUBLEDATA TO DOBDATA;
--컬럼삭제
ALTER TABLE TEST DROP COLUMN DOBDATA;
5) PK,FK 부여하기
1. PRIMARY KEY
- NOT NULL과 UNIQUE 조건을 모두 만족함
- 한 테이블 내에 반드시 한 개의 KEY만 존재해야하며, 여러 행들과의 구분을 위해 있는 것이 좋음
- PK를 설정한 컬럼은 값이 반드시 존재해야하며 유일해야 함
2. FOREIGN KEY
- 다른 테이블에서 가져온 값을 추가해야 하는 경우에는 외래키로 설정을 해준다.
값 추가하는 경우 OR 테이블 생성
부모 먼저 그 다음 자식
값 삭제하는 경우 OR 테이블 삭제
자식 먼저 그 다음 부모
--아래처럼 하면 PK의 이름이 임의로 부여됨
CREATE TABLE "USER"(
ID VARCHAR2(100) PRIMARY KEY,
PW VARCHAR2(100),
NAME VARCHAR2(100)
);
--PK이름 부여하면서 주는 방법
CREATE TABLE "USER"(
ID VARCHAR2(100),
PW VARCHAR2(100),
NAME VARCHAR2(100),
CONSTRAINT USER_PK PRIMARY KEY(ID)
--우리가 원하는 이름(USER_PK)으로 ID에 PK가 부여됨
);
--FK 부여하기
CREATE TABLE PRODUCT(
NUM NUMBER(7),
NAME VARCHAR2(100),
INFO VARCHAR2(2999),
ID VARCHAR2(100),
CONSTRAINT PRODUCT_USER_FK FOREIGN KEY(ID) REFERENCES "USER"(ID)
);
6) 제약조건 추가
1. UNIQUE
- 중복 데이터를 허용하지 않음 but, NULL의 중복은 방지하지 못함
2. NOT NULL
- 해당 컬럼 NULL값을 허용하지 않음
- 중복은 허용되지만 반드시 데이터가 있어야함
3. CHECK
- 해당 컬럼에 정해진 데이터 조건을 지정하여 그 특정 범위 내의 데이터만 입력
CHECK(컬럼명 IN (데이터1, 데이터2 , ...))
CHECK(조건식)
7) 실습으로 통한 제약조건 알아보기
--제약조건 추가
/*
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 PRIMARY KEY(컬럼);
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 FOREIGN KEY(컬럼) REFERENCES 참조테이블(참조컬럼)
ALTER TABLE 테이블명 MODIFY 컬럼명 CONTRAINT 제약조건명 NOT NULL;
*/
---수강신청 프로그램
CREATE TABLE STUDENT(
STUDNUM VARCHAR2(10),
IDNUM VARCHAR2(100) UNIQUE,
STUDNAME VARCHAR2(100) NOT NULL,
STUDCLASS VARCHAR2(100),
GENDER CHAR(1) CHECK(GENDER IN ('M','W')),
STUDGRADE NUMBER(1),
CONSTRAINT STUDENT_PK PRIMARY KEY(STUDNUM) --중복되지않는 고유한 값
);
CREATE TABLE SUBLIST(
LISTNUM VARCHAR2(100),
STUDNUM VARCHAR2(10),
SUBCODE VARCHAR2(100),
CONSTRAINT SUBLIST_PK PRIMARY KEY(LISTNUM),
CONSTRAINT SUBLIST_STUDENT_FK FOREIGN KEY(STUDNUM) REFERENCES STUDENT(STUDNUM),
CONSTRAINT SUBLIST_SUBJECT_FK FOREIGN KEY(SUBCODE) REFERENCES SUBJECT(SUBCODE)
);
반응형
'Back-End > DBMS(Oracle)' 카테고리의 다른 글
[Oracle] LIKE, 와일드카드 (0) | 2021.04.18 |
---|---|
[Oracle] DML(INSERT, UPDATE, DELETE, SELECT) (0) | 2021.04.18 |
[Oracle] SQL문(Structured Query Language) (0) | 2021.04.18 |
Oracle / DBeaver 설치 (0) | 2021.04.18 |
DB(Database, 데이터 베이스) / DBMS (0) | 2021.04.18 |