오라클 SQL 정리

Ruinak·2021년 11월 3일
0

Database

목록 보기
4/6
post-thumbnail

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);
  • ID가 test, ask인 2개의 행 생성

DELETE

  • 행 데이터 삭제
  • 원하는 행을 삭제 시 WHERE 절을 이용

DELETE 형식

전체 데이터 삭제

  • DELETE FROM Table명;

원하는 행 삭제

  • 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

  • 원하는 Table, Column 조회

SELECT 형식

전체 Column 조회

  • SELECT * FROM Table 명;

원하는 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);
profile
Nil Desperandum <절대 절망하지 마라>

0개의 댓글