데이터 정의어(DDL)란
데이터베이스 또는 테이블을 생성, 삭제, 수정 등을 한다.
명령어 | 내용 |
CREATE | 데이터 베이스 or 테이블 생성 |
DROP | 데이터 베이스 or 테이블 삭제 |
ALTER | 데이터 베이스 or 테이블 수정 |
RENAME | 데이터 베이스 or 테이블 이름 변경 |
TRUNCATE | 데이터 베이스 or 테이블 초기화 |
CREATE 문법
CREATE TABLE (소유 계정.)테이블명
( 열1 이름 열1 자료형,
열2 이름 열2 자료형,
. . .
열N 이름 열N 자료형);
소유 계정은 생략 가능하다.
'열N 이름 DEFAULT 디폴트값' 과 같이 옵션을 추가로 사용할 수 있다.
DROP 문법
DROP TABLE 테이블명;
ALTER 문법
ADD
ALTER TABLE 테이블명
ADD (칼럼이름 칼럼타입);
ex)
alter table dept80
add (job_id VARCHAR2(9));
dept80 테이블에 VARCHAR2(9)타입의 job_id 컬럼을 추가한다.
새롭게 추가된 컬럼은 테이블 구조의 마지막에 생성된다.
ADD - 제약조건의 추가
1. 테이블 레벨의 문법
alter table 테이블명
add constraint 제약조건명 제약조건유형(컬럼명);
2. 컬럼 레벨의 문법
alter table 테이블명
modify 컬럼명 constraint 제약조건명 제약조건유형;
NOT NULL제약조건은 컬럼 레벨의 문법에서만 가능하기 때문에 위의 sql로 추가가 가능하다.
DROP
ALTER TABLE 테이블명
DROP (칼럼이름);
ex)
alter table dept80
drop (job_id);
dept80 테이블의 job_id 칼럼을 삭제한다.
DROP COULUMN 칼럼명; 또는 DROP (칼럼명); 두가지 문법이 있다.
MODIFY
ALTER TABLE 테이블명
MODIFY 칼럼이름 변경칼럼타입;
ex)
alter table dept80
modify (last_name VARCHAR2(30));
dept80 테이블의 last_name 칼럼을 varchar2(30) 타입으로 변경한다.
다만 위 같은 경우 last_name 테이블에 이미 30자를 넘는 데이터가 있으면 칼럼 수정이 되지 않는다.
데이터 조작어(DML)란
데이터를 검색하거나 변경하는데 사용한다.
명령어 | 내용 |
SELECT | 데이터 삽입 |
INSERT | 데이터 수정 |
UPDATE | 데이터 조회 |
DELETE | 데이터 삭제 |
SELECT 문법
SELECT 속성
FROM 테이블명
WHERE 검색조건
[GROUP BY 묶는 기준]
[HAVING 묶는 조건]
[ORDER BY 오름차순/내림차순] [ASE / DESC];
INSERT 문법
모든 칼럼에 데이터를 넣는 경우
INSERT INTO departments
VALUES (값, 값, 값, 값, ... ,값);
//칼럼의 순서에 맞게 데이터를 입력하여야한다.
컬럼을 골라서 데이터를 넣는 경우
INSERT INTO departments (컬럼명, 컬럼명)
VALUES (값, 값);
테이블 속성이 아닌 이미 만들어진 속성에 데이터를 삽입하고자 할 때 사용한다.
문자의 경우 ''(작은 따옴표)를 사용한다.
UPDATE 문법
UPDATE 테이블명
SET 컬럼명1 = 데이터1, 컬럼명2 = 데이터2, ... 컬럼명n = 데이터n
WHERE 수정할 조건;
DELETE 문법
DELETE
FROM 테이블명
[WHERE 조건;]
데이터 제어어(DCL)란
데이터베이스에서 실행한 변경을 확정하거나 취소하는데 사용한다.
명령어 | 내용 |
COMMIT | 데이터 확정 |
ROLLBACK | 데이터 복구 |
GRANT | 사용자 권한 부여 |
REVOKE | 사용자 권한 회수 |
GRANT 문법
: 권한을 부여하는 명령어
GRANT 권한, 권한, 권한, ..., 권한
TO 사용자;
REVOKE 문법
: 부여한 권한을 취소한다.
REVOKE 권한
FROM 사용자;
데이터를 수정한 뒤 그냥 두면 데이터가 최종적으로 변경 되지 않는다.
COMMIT을 해야 데이터 변경이 저장된 것인데,
COMMIT을 하지 않고도 데이터가 변경된 것처럼 보이는 것은 나한테만 보이는 미리보기 같은 것이다.
때문에 데이터를 수정했으면 COMMIT;을 통해 저장을 해야한다.
COMMIT과 반대로 데이터 수정작업을 취소하고 싶을땐 ROLLBACK을 통해 취소할 수 있다.
(단, COMMIT이후 ROLLBACK은 의미가 없다.)
'프로그래밍 > DataBase' 카테고리의 다른 글
[DataBase]AS (0) | 2021.03.22 |
---|---|
[DataBase]DESC (0) | 2021.03.22 |
[DataBase]서브쿼리 (0) | 2021.03.10 |
[DataBase]Join (0) | 2021.03.10 |
[DataBase]제약조건 (1) | 2021.03.08 |