DDL 정의어
새로운 Table 생성
Table 정보
- Table 명 : USERTBL
- Column명 : ID, PASSWORD, NAME, AGE, PHONE, DAY
- ID는 PRIMARY KEY로 지정
Table 생성 형식
CREATE TABLE USERTBL(
ID VARCHAR2(30) PRIMARY KEY,
PASSWORD VARCHAR2(200),
NAME VARCHAR2(30),
AGE NUMBER,
PHONE VARCHAR2(30),
DAY DATE
);
DML 조작어
- INSERT, UPDATE, DELETE, SELECT
INSERT
INSERT 형식
- INSERT INTO Table 명(Column 명) VALUES(값들);
USERTBL에 INSERT로 데이터 추가
INSERT INTO usertbl(ID, PASSWORD, NAME, AGE, PHONE, DAY)
VALUES('test', '1234', '테스터', '20', '010-1234-5678', CURRENT_DATE);
INSERT INTO usertbl(ID, PASSWORD, NAME, AGE, PHONE, DAY)
VALUES('ask', '1234', '질문자', '20', '010-2344-6788', CURRENT_DATE);
DELETE
- 행 데이터 삭제
- 원하는 행을 삭제 시 WHERE 절을 이용
DELETE 형식
전체 데이터 삭제
원하는 행 삭제
- DELETE FROM Table명 WHERE Column명 = 'VALUE';
USERTBL에서 DELETE
// 테이블 내 데이터 전체 삭제
DELETE FROM USERTBL;
// ID가 ask인 행 삭제 = 1개 삭제
DELETE FROM usertbl WHERE ID = 'ask';
// NAME이 테스터인 행 삭제 = 1개 삭제
DELETE FROM usertbl WHERE NAME = '테스터';
// AGE가 20인 행 삭제 = 2개 삭제
DELETE FROM usertbl WHERE AGE = '20';
UPDATE
- 행 데이터 수정
- SET을 이용해서 수정할 데이터 값 지정
- WHERE 절 사용해서 수정할 위치 지정
- PRIMARY KEY도 수정 가능
UPDATE 형식
한 개의 데이터 수정
- UPDATE Table명 SET Column명 = '수정할 VALUE' WHERE Column명 = 'VALUE';
여러 개의 데이터 수정
- UPDATE Table명 SET Column명1 = '수정할 VALUE1', Column명2 = '수정할 VALUE2' WHERE Column명 = 'VALUE';
USERTBL의 값 UPDATE
// 하나의 값 수정
UPDATE USERTBL SET NAME = '기자' WHERE ID = 'ASK';
// 여러 값 수정
UPDATE USERTBLE SET AGE = 25, PHONE = '010-9876-5432' WHERE ID = 'test';
// PRIMARY KEY 수정
UPDATE USERTBL SET ID = 'TEST' WHERE ID = 'test';
SELECT
SELECT 형식
전체 Column 조회
원하는 Column 조회
- SELECT Column명 FROM Table 명;
USERTBL에서 SELECT
// 전체 조회
SELECT * FROM USERTBL;
// ID만 조회
SELECT ID FROM USERTBL;
// PASSWORD만 조회
SELECT PASSWORD FROM USERTBL;
// NAME만 조회
SELECT NAME FROM USERTBL;
// AGE만 조회
SELECT AGE FROM USERTBL;
// PHONE만 조회
SELECT PHONE FROM USERTBL;
// DAY만 조회
SELECT DAY FROM USERTBL;
SEQUENCE
- SEQUENCE : 자동으로 숫자가 증가되는 변수
- SEQUENCE명 : SEQ_Table명_Column명
- NOCACHE: 메모리에 시퀀스 값 할당 안함
- NOMAXVALUE 디폴트 값은 1028-1
SEQUENCE 생성 및 사용
SEQUENCE 생성 형식
CREATE SEQUENCE SEQENCE명 START WITH 시작 번호 INCREAMENT BY 증가량 NOCACHE NOMAXVALUE;
ITEM에서 SEQUENCE 생성 및 사용
// SQUENCE 생성
CREATE SEQUENCE SEQ_ITEM_NO START WITH 1 INCREMENT BY 1 NOCACHE NOMAXVALUE;
// SEQUENCE 사용해서 데이터 입력
INSERT INTO ITEM(NO, NAME, CONTENT, PRICE, COUNT, DAY)
VALUES(SEQ_ITEM_NO.NEXTVAL, '맥주', '보리로 만든 술', 3500, 20, CURRENT_DATE);
INSERT INTO ITEM(NO, NAME, CONTENT, PRICE, COUNT, DAY)
VALUES(SEQ_ITEM_NO.NEXTVAL, '소주', '한국 증류주', 4000, 30, CURRENT_DATE);
INSERT INTO ITEM(NO, NAME, CONTENT, PRICE, COUNT, DAY)
VALUES(SEQ_ITEM_NO.NEXTVAL, '와인', '포도로 만든 발효주', 4900, 12, CURRENT_DATE);
INSERT INTO ITEM(NO, NAME, CONTENT, PRICE, COUNT, DAY)
VALUES(SEQ_ITEM_NO.NEXTVAL, '럼', '용설과로 만든 비싼 술', 24900, 1, CURRENT_DATE);
INSERT INTO ITEM(NO, NAME, CONTENT, PRICE, COUNT, DAY)
VALUES(SEQ_ITEM_NO.NEXTVAL, '보드카', '감자로 만든 독한 술', 18900, 1, CURRENT_DATE);
외래키 설정
- 테이블의 Column을 다른 테이블의 Column과 연결
외래키 생성 형식
- ALTER TABLE 테이블명 ADD FOREIGN KEY(컬럼명) REFERENCES 연결할 테이블명(연결할 컬럼명);
-- 외래키 제약조건
-- 주문자 정보
ALTER TABLE REQUEST ADD FOREIGN KEY(R_ID) REFERENCES USERTBL(ID);
-- 물품 정보
ALTER TABLE REQUEST ADD FOREIGN KEY(R_ITEM) REFERENCES ITEM(NO);