• DML (Data Manipulation Language)
: INSERT(입력) , UPDATE(변경) , DELETE(삭제) , MERGE(병합)
•DDL (Data Definition Language)
: CREATE (생성) , ALTER (수정) , TRUNCATE (잘라내기) , DROP (삭제)
•DCL (Data Control Language)
: GRANT (권한 주기) , REVOKE (권한 뺏기)
•TCL ( Transaction Control Language)
: COMMIT (확정) , ROLLBACK (취소)
CREATE : 테이블 생성
CREATE TABLE tt02
(num NUMBER(3,1) DEFAULT 0,
name VARCHAR2(10) DEFAULT 'NO Name',
hiredate DATE DEFAULT SYSDATE) ;
-- 1. 형식과 데이터 전부
CREATE TABLE new_emp2
AS
SELECT no, name, hiredate FROM new_emp;
-- 2. 형식만 (WHERE 절에 false값 넣어주기)
CREATE TABLE new_emp3
AS
SELECT no, name, hiredate FROM new_emp WHERE 1=2;
ALTER TABLE 테이블명
ADD (컬럼명 데이터타입 [DEFAULT값]);
ALTER TABLE 테이블명 RENAME COLUMN COLUMN명 TO 바꿀COLUMN명
ALTER TABLE 테이블명 MODIFY (컬럼명 데이터타입(크기))
ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명;
INSERT INTO 테이블명 [(column1, column2,……)]
VALUES (value 1 , value 2,….);
INSERT INTO 테이블명
VALUES (value 1 , value 2,…);
UPDATE 테이블명
SET 컬럼명 = value
WHERE 조건;
ex. Professor 테이블에서 'Sharon Stone' 교수의 직급과 동일한 직급을 가진 교수들 중 현재 급여가 250 만원이 안 되는 교수들의 급여를 15% 인상
UPDATE professor
SET pay = pay * 1.15
WHERE position = (SELECT position
FROM professor
WHERE name = 'Sharon Stone')
AND pay < 250;
DELETE FROM 테이블명
WHERE 조건
: SELECT로 조건문으로 어떤 데이터가 걸러지는 지 확인한 후에 지우는 것이 좋음 (한번 지우면 돌이킬 수 XXX!!)
MERGE INTO 테이블명
USING 테이블명2
ON (조건) -- 조건
WHEN MATCHED THEN -- 참일 경우
UPDATE SET 업테이트 내용
WHEN NOT MATCHED THEN -- 거짓일 경우
INSERT VALUES (컬럼이름, 컬럼이름1, [...])
;
ex.
두 개의 테이블 날짜를 비교해서 새로운 테이블에 업데이트
테이블 1
테이블 2
MERGE INTO table_colc tc -- 병합할 테이블
USING table_data_1 td -- 테이블1을 이용
ON (tc.std_date = td.create_date) -- 병합할 테이블에 테이블1의 데이터가 있는지
WHEN MATCHED THEN -- 있으면 업데이트
UPDATE
SET tc.check_data1 = 'Y'
WHEN NOT MATCHED THEN -- 없으면 삽입
INSERT
VALUES (td.create_date, 'Y', 'N');
MERGE INTO table_colc tc -- 병합할 테이블
USING table_data_2 td -- 테이블2를 이용
ON (tc.std_date = td.create_date) -- 병합할 테이블에 테이블2의 데이터가 있는지
WHEN MATCHED THEN -- 있으면 업데이트
UPDATE
SET tc.check_data2 = 'Y'
WHEN NOT MATCHED THEN -- 없으면 삽입
INSERT
VALUES (td.create_date, 'N', 'Y');
: 논리적인 작업 단위 (DML 작업들을 하나의 단위로 묶어둔 것)
: 해당 트랜잭션에 있는 모든 DML이 성공해야 해당 트랜잭션이 성공, 아니면 실패
: DML 작업을 한 후에는 반드시 COMMIT(확정)이나 ROLLBACK(취소) 명령을 수행해야 작업이 마무리 됨!
커밋 버튼과 롤백 버튼
: 커밋이나 롤백을 하지 않은 상태면 다른 세션에서 조작할 수 없는 lock 상태가 됨
(출처 : https://isstory83.tistory.com/138)
현재 사용자가 볼 수 있는 데이터베이스의 모든 사용자들 나열
SELECT *
FROM ALL_USERS;
사용자의 INDEX 사전 조회
SELECT *
FROM USER_INDEXES;
모든 제약 조건 확인
SELECT *
FROM ALL_CONSTRAINTS;