오라클 SQL 정리
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);
Author And Source
이 문제에 관하여(오라클 SQL 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ruinak_4127/오라클-SQL-정리
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
CREATE TABLE USERTBL(
ID VARCHAR2(30) PRIMARY KEY,
PASSWORD VARCHAR2(200),
NAME VARCHAR2(30),
AGE NUMBER,
PHONE VARCHAR2(30),
DAY DATE
);
- 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);
Author And Source
이 문제에 관하여(오라클 SQL 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ruinak_4127/오라클-SQL-정리
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
CREATE SEQUENCE SEQENCE명 START WITH 시작 번호 INCREAMENT BY 증가량 NOCACHE NOMAXVALUE;
// 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);
Author And Source
이 문제에 관하여(오라클 SQL 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ruinak_4127/오라클-SQL-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)