관리 구문
•
•
•
•
DDL
데이터 정의어; 데이터베이스의 객체를 생성, 수정, 삭제하는 언어
명령어 | 설명 |
CREATE | 데이터베이스 객체를 생성합니다. 테이블, 뷰, 인덱스 등을 생성하는 데 사용됩니다. |
ALTER | 데이터베이스 객체를 수정합니다. 테이블에 열을 추가하거나 삭제하는 데 사용됩니다. |
DROP | 데이터베이스 객체를 삭제합니다. 테이블, 뷰, 인덱스 등을 삭제하는 데 사용됩니다. |
TRUNCATE | 테이블의 모든 데이터를 삭제합니다. 테이블 구조는 그대로 유지됩니다. |
CREATE TABLE - 테이블 생성
테이블 생성
CREATE TABLE 계정.테이블명 (
컬럼명1 데이터타입 [NULL/NOT NULL] [DEFAULT 기본값] [PRIMARY KEY | UNIQUE] ,
컬럼명2 데이터타입 [NULL/NOT NULL] [DEFAULT 기본값] [PRIMARY KEY | UNIQUE] ,
컬럼명3 데이터타입 [NULL/NOT NULL] [DEFAULT 기본값] [PRIMARY KEY | UNIQUE]
);
SQL
복사
기존 테이블을 조회(복사)하여 테이블 생성
CREATE TABLE 테이블명
AS SELECT * FROM 기존 테이블명
[WHERE 조건];
SQL
복사
•
[WHERE 조건] 은 필요 시 사용!
•
일반적으로 백업 테이블을 만들 때 사용!
ALTER TABLE - 테이블 변경
테이블에 컬럼 추가
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입;
SQL
복사
테이블의 컬럼명을 변경
ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 변경할컬럼명;
SQL
복사
테이블의 컬럼 데이터타입을 변경
ALTER TABLE 테이블명 MODIFY 컬럼명 변경할데이터타입;
SQL
복사
테이블의 컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
SQL
복사
테이블 삭제
테이블 삭제
DROP TABLE 테이블명 ;
SQL
복사
•
옵션
◦
CASCADE CONSTRAINTS : 테이블 삭제 시, 정의한 제약조건도 자동으로 삭제
테이블 데이터 삭제
TRUNCATE TABLE 테이블명;
SQL
복사
테이블명 변경
RENAME 테이블명 TO 변경할테이블명;
SQL
복사
제약조건
: 테이블에 저장할 데이터를 제약하는 조건
•
데이터 무결성
: 데이터 정확성 + 데이터 일관성을 보장하는 성질
오라클 제약조건 종류
•
NOT NULL : NULL 을 저장할 수 없도록 하는 제약조건
•
UNIQUE : 유일한 값을 갖도록 하는 제약조건 (중복불가), NULL 은 허용
•
PRIMARY KEY : 기본키로 지정. UNIQUE + NOT NULL
•
FOREIGN KEY : 참조 테이블의 열에 존재하는 값만 저장할 수 있도록 지정하는 제약조건
•
CHECK : 설정한 조건에 해당하는 데이터만 저장할 수 있도록 하는 제약조건
데이터 무결성 종류
•
개체 무결성 : 기본키는 반드시 유일한 값, NULL 불가, 중복 불가
•
참조 무결성 : 외래키의 값이 참조 테이블에 기본키의 값으로만 존재. NULL 가능
•
도메인 무결성 : 지정된 값의 범위 안에서만 데이터를 저장
제약조건 추가
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건;
SQL
복사
제약조건 삭제
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
SQL
복사
제약조건 이름 변경
ALTER TABLE 테이블명 RENAME CONSTRAINT 기존이름 TO 변경이름;
SQL
복사
NOT NULL
NOT NULL - 테이블 생성 시, NOT NULL 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 NOT NULL,
컬럼2 데이터타입 NOT NULL,
...
);
SQL
복사
NOT NULL - 테이블 생성 시, 제약조건으로 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 CONSTRAINT 제약조건명1,
컬럼2 데이터타입 CONSTRAINT 제약조건명2,
...
);
SQL
복사
NOT NULL - 테이블 생성 후, NOT NULL 로 수정
ALTER TABLE 테이블명 MODIFY (컬럼 NOT NULL);
SQL
복사
NOT NULL - 테이블 생성 후, 제약조건 추가
ALTER TABLE 테이블명 MODIFY (컬럼 CONSTRAINT 제약조건명);
SQL
복사
UNIQUE
UNIQUE - 테이블 생성 시, UNIQUE 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 UNIQUE,
컬럼2 데이터타입 UNIQUE,
...
);
SQL
복사
CREATE TABLE 테이블명 (
컬럼1 데이터타입,
컬럼2 데이터타입,
...
UNIQUE( 컬럼1, 컬럼2, ... )
);
SQL
복사
UNIQUE - 테이블 생성 시, 제약조건으로 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 CONSTRAINT 제약조건명1,
컬럼2 데이터타입 CONSTRAINT 제약조건명2,
...
);
SQL
복사
UNIQUE - 테이블 생성 후, UNIQUE 로 수정
ALTER TABLE 테이블명 MODIFY (컬럼 UNIQUE);
SQL
복사
UNIQUE - 테이블 생성 후, 제약조건으로 추가
ALTER TABLE 테이블명 MODIFY (컬럼 CONSTRAINT 제약조건명);
SQL
복사
PRIMARY KEY
PRIMARY KEY - 테이블 생성 시, PRIMARY 키로 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 PRIMARY KEY,
컬럼2 데이터타입 PRIMARY KEY,
...
);
SQL
복사
CREATE TABLE 테이블명 (
컬럼1 데이터타입,
컬럼2 데이터타입,
...
PRIMARY KEY( 컬럼1, 컬럼2, ... )
);
SQL
복사
PRIMARY KEY - 테이블 생성 시, 제약조건으로 추가
CREATE TABLE 테이블명 (
컬럼1 데이터타입 CONSTRAINT 제약조건명1,
컬럼2 데이터타입 CONSTRAINT 제약조건명2,
...
);
SQL
복사
PRIMARY KEY - 테이블 생성 후, PRIMARY KEY 로 지정
ALTER TABLE 테이블명 MODIFY (컬럼 PRIMARY KEY);
SQL
복사
PRIMARY KEY - 테이블 생성 후, 제약조건으로 추가
ALTER TABLE 테이블명 MODIFY (컬럼 CONSTRAINT 제약조건명);
SQL
복사
FOREIGN KEY
FOREIGN KEY - 테이블 생성 시, FOREIGN KEY 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 REFERENCES 참조테이블(참조 컬럼),
컬럼2 데이터타입,
...
);
SQL
복사
CREATE TABLE 테이블명 (
컬럼1 데이터타입,
컬럼2 데이터타입,
...
CONSTRAINT 제약조건 FOREIGN KEY (외래키 컬럼)
REFERENCES 참조테이블(참조 컬럼)
);
SQL
복사
FOREIGN KEY - 테이블 생성 시, 제약조건으로 지정
CREATE TABLE 테이블명 (
컬럼1 데이터타입 CONSTRAINT 제약조건명1,
컬럼2 데이터타입 CONSTRAINT 제약조건명2,
...
);
SQL
복사
FOREIGN KEY - 테이블 생성 후, 제약조건으로 지정
ALTER TABLE 테이블명 MODIFY (컬럼 CONSTRAINT 제약조건명);
SQL
복사
CHECK
CHECK - 테이블 생성 시, 제약조건으로 지정
CREATE TABLE 테이블명 (
컬럼명1 데이터타입 CONSTRAINT 제약조건명 CHECK (조건),
컬럼명2 데이터타입 ,
...
);
SQL
복사
CHECK - 테이블 생성 후, CHECK 지정
ALTER TABLE 테이블명 MODIFY (컬럼 CHECK 조건);
SQL
복사
CHECK - 테이블 생성 후, 제약조건으로 지정
ALTER TABLE 테이블명 MODIFY CONSTRAINT 제약조건명 CHECK 조건;
SQL
복사
DEFAULT
DEFAULT - 테이블 생성 시, DEFAULT 지정
CREATE TABLE 테이블명 (
컬럼명1 데이터타입 DEFAULT 기본값,
컬럼명2 데이터타입 DEFAULT 기본값,
...
);
SQL
복사
DML
데이터 조작어; 데이터를 추가, 조회, 수정, 삭제하는 언어
명령어 | 설명 |
SELECT | 데이터베이스에서 데이터를 조회합니다. 특정 테이블 또는 뷰에서 데이터를 선택하여 가져옵니다. |
INSERT | 데이터베이스에 새로운 데이터를 추가합니다. |
UPDATE | 데이터베이스에 있는 기존 데이터를 수정합니다. |
DELETE | 데이터베이스에서 특정 데이터를 삭제합니다. |
SELECT
•
데이터 조회
SELECT 컬럼명1, 컬럼명2, ... (전체 * )
FROM 테이블명
WHERE 조건
GROUP BY 그룹기준 컬럼 HAVING 그룹 조건 (그룹기준은 여러 개 지정 가능)
ORDER BY 정렬기준 컬럼 [ASC | DESC] (정렬기준은 여러 개 지정 가능)
SQL
복사
•
필수 키워드 : SELECT, FROM
•
옵션 키워드 : WHERE, GROUP BY, ORDER BY
위에서 작성한 순서대로 키워드를 작성하지 않으면 오류가 발생한다.
실행순서
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
WHERE
▪
SELECT, UPDATE, DELETE 시 특정 조건에 부합하는 데이터만 명령을 적용하는 키워드
GROUP BY 그룹컬럼 HAVING 조건
▪
그룹컬럼을 기준으로 그룹함수를 사용하기 위해 쓰이는 키워드
▪
GROUP BY 는 반드시 그룹함수와 함께 사용해야한다.
▪
그룹컬럼 - 그룹함수의 결과를 구별짓는 기준
▪
HAVING 은 그룹컬럼을 기준으로 그룹지어진 데이터들에 대해서 조건을 주는 키워드이다.
ORDER BY 정렬컬럼1 [ASC | DESC], 정렬컬럼2 [ASC | DESC]
▪
데이터의 순서를 정렬하는 키워드
▪
지정한 정렬컬럼을 기준으로 오름차순( ABC순, 가나다순, 123순) 정렬한다
▪
ASC, DESC 은 옵션 키워드로 생략가능하다.
▪
ASC (Asccend) - 오름차순
▪
DESC (Descend) - 내림차순
INSERT
•
데이터 추가
기본 구문
INSERT INTO 테이블 ( 컬럼1, 컬럼2, 컬럼3, ... )
VALUES ( 값1, 값2, 값3, ...)
SQL
복사
컬럼 작성 순서와, 값 작성 순서를 짝을 이루어 작성해야한다.
컬럼명 생략
INSERT INTO 테이블
VALUES ( 값1, 값2, 값3, ... )
SQL
복사
컬럼명들을 생략하고 작성하면, 컬럼 정의 순서대로 모든 값을 지정해주어야한다.
데이터를 조회하여 추가하기
INSERT INTO 테이블 ( 컬럼1, 컬럼2, 컬럼,3, ... )
SELECT 컬럼1, 컬럼2, 컬럼3, ...
FROM 테이블
[WHERE 조건];
SQL
복사
UPDATE
•
데이터 수정
기본 구문
UPDATE 테이블명
SET 컬럼1 = 변경할값,
컬럼2 = 변경할값,
...
[WHERE 조건];
SQL
복사
데이터를 조회하여 수정하기
UPDATE 테이블명
SET (컬럼1, 컬럼2, ... ) = (SELECT 컬럼1, 컬럼2, ...
FROM 테이블명2
WHERE 조건)
[WHERE 조건];
SQL
복사
지정한 수정 컬럼의 개수와 조회한 컬럼의 개수가 일치해야한다.DELETE
•
데이터 삭제
기본 구문
DELETE FROM 테이블
[WHERE 조건];
SQL
복사
DCL
데이터 제어어; 사용자(계정)에 권한을 부여, 해제 하는 언어
명령어 | 설명 |
GRANT | 데이터베이스 객체에 대한 권한을 부여합니다. 다른 사용자가 특정 객체를 조작할 수 있도록 합니다. |
REVOKE | 데이터베이스 객체에 대한 권한을 해제합니다. |
권한 부여
GRANT 권한1, 권한2, ... TO 사용자명;
SQL
복사
권한
: 사용자 생성 및 관리, 데이터베이스 자원을 생성 및 관리하는 권한
권한 종류
•
USER : CREATE USER, ALTER USER, DROP USER
•
SESSION : CREATE SESSION, ALTER SESSION
•
TABLE : CREATE TABLE, ALTER TABLE, DROP ANY TABLE
SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
•
INDEX : CREATE ANY INDEX, ALTER ANY INDEX, DROP ANY INDEX
•
VIEW : ...
•
SEQUENCE : ...
•
SYNONYM : ...
롤 (ROLE): 여러 권한을 하나로 묶어놓은 그룹권한
•
롤을 이용하면, 여러 권한을 한 번에 부여하고, 해제할 수 있다.
사전 정의 롤•
CONNECT
: ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE VIEW
•
RESOURCE
: CREATE TRIGGER, CREATE SEQUENCE, CREATE TYPE, CREATE PROCEDURE, CREATE CLUSTER,
CREATE OPERATOR, CREATE INDEXTYPE, CREATE TABLE
•
DBA
: 데이터베이스를 관리하는 시스템 권한의 대부분
권한 부여 - GRANT
GRANT 권한 TO 사용자명 [WITH ADMIN OPTION];
SQL
복사
GRANT 권한 ON 스키마.객체 TO 사용자명 [WITH GRANT OPTION];
SQL
복사
•
WITH ADMIN OPTION, WITH GRANT OPTION
: 부여받은 권한을 다른 사용자에게 재부여할 수 있는 권한까지 부여
•
ALL PRIVILEGES
: 모든 권한을 부여하는 키워드
권한 해제 - REVOKE
REVOKE 권한 FROM 사용자명;
SQL
복사
REVOKE 권한 ON 스키마.객체 FROM 사용자명 [CASCADE | FORCE | RESTRICT];
SQL
복사
•
CASCADE : 종속된 사용자 권한이 있다면 같이 해제
•
RESTRICT : 종속된 사용자 권한이 있다면 권한 해제를 방지
•
FORCE : 사용자 정의에 대한 실행 권한을 취소
TCL
트랜잭션 제어어; 변경한 데이터에 대하여 적용, 복원하는 언어
명령어 | 설명 |
COMMIT | 현재까지의 트랜잭션 작업을 영구적으로 반영하여 데이터베이스에 변경 사항을 저장합니다. |
ROLLBACK | 현재까지의 트랜잭션 작업을 취소하고 이전 상태로 되돌립니다. 변경 사항을 취소하여 롤백합니다. |
SAVEPOINT | 트랜잭션 내에서 저장점을 설정합니다. 설정된 저장점까지의 작업을 롤백할 수 있습니다. |






