DDL, 데이터 정의어.
테이블의 구조 자체를 생성, 수정, 제거하도록 하는 명령문 집합.
테이블을 생성하기 위해서는 테이블명을 정의하고, 테이블을 구성하는 컬럼의 데이터 타입과 제약 조건을 정의해야함.
문자로 시작해야하며 30자 이내
문자, 숫자, 특수문자(_$#)만 사용가능
대소문자 구별X 소문자로 저장하려면 작은따옴표로 묶어주어야 함
동일 사용자가 소유한 다른 객체의 이름과 중복되지 않아야 함
CREATE TABLE 이름(COLUMN_NAME 성격 규정)
CREATE TABLE DEPT01(
DEPTNO NUMBER(4),
DNAME VARCHAR2(10),
LOC VARCHAR2(9)
);
💡 테이블이 생성되었는지 확인할 때,
desc[ribe]명령어 실행
기존의 테이블을 변경할 때 사용한다.
1) 컬럼이 추가해야 할 때
2) 컬럼의 타입/길이를 변경해야 할 때
3) 컬럼을 제거애야하여 테이블의 구조를 변경해야 할 경우
ALTER TABLE DEPT01
ADD(DNAME VARCHAR2(10))
ALTER TABLE DEPT01
MODIFY(DNAME VARCHAR2(30))
ALTER TABLE DEPT01
DROP COLUMN (column_name);
시스템의 요구가 적을 때 컬럼을 제거할 수 있도록 하나 이상의 컬럼을 UNUSED로 표시. 실제로 테이블에서 해당 컬럼이 제거되지는 않는다.
실제 DROP 명령을 실행하는 데 걸리는 시간보다 응답 시간이 빨라짐.
SELECT, DESCRIBE 문으로는 액세스/표시가 안 된다!
테이블의 이름을 변경할 때 사용한다.
A에서 B로 바꿀 수 있다.
RENAME A TO B;
RENAME DEPT01 TO DEPT02;
테이블의 모든 내용을 제거
TRUNCATE TABLE DEPT02;
기존의 테이블을 삭제
DROP TABLE A
DROP TABLE DEPT02;
데이터 조작어(Data Manipulation Language).
주로 질의어. 저장된 데이터를 조작하는데에 쓴다.
행과 열, 레코드를 조회하거나 수정/삭제 함.
테이블에 새로운 데이터를 삽입하거나, 기존의 데이터를 수정, 삭제하기 위한 명령어의 집합이다.
테이블에 데이터를 입력하기 위한 명령어.
INSERT INTO table_name
(column_name, ... ... )
VALUES(column_value, ... ...);
이 때, 기술된 목록의 수와 VALUES 다음에 나오는 괄호에 기술한 값의 개수가 같아야 함.
문자나 날짜 타입에 대해서는 공백 문자열('') 지정이 가능하다.
INSERT INTO절에서 컬럼명과 값 지정을 생략하면 생략된 컬럼에 대해서는 null 값이 입력된다.
-- column: deptno, dname, loc
INSERT INTO dept01
(deptno, dname)
VALUES(30, '영업부');
날짜 같은 경우에는 `'YYYY/MM/DD'와 같은 형식으로 입력해야함.
원하는 집합(결과)를 정의(묘사)하는 언어.
검색, 조회, 질의, 데이터를 가져오는 것.
SELECT
테이블에 저장된 데이터를 수정하기 위한 DML. WHERE 절을 생략하면 테이블에 있는 모든 행이 수정된다.
UPDATE table_name
SET column_name1 = value 1, column_name2 = value2, ...
WHERE conditions;
DELETE \[FROM] table_name
WHERE conditions;
데이터 제어어.
데이터베이스에 접근, 객체 권한 부여 등의 역할을 하는 언어
데이터의 보안, 무결성, 회복 등을 맡음.
GRANT 권한
ON 테이블
TO 유저
-- 부모를 회수하면, 자식도 회수 됨.
WITH GRANT OPTION
-- 테이블에 대한 모든 권한 부여.
WITH ADMIN OPTION
GRANT CREATE SESSION TO ORAUSER01;
REVOKE 권한
ON 테이블
FROM 유저
ROVOKE CREATE SESSION FROM ORAUSER01;
DML 작업이 성공적으로 처리되도록.
COMMIT;
작업을 취소
ROLLBACK;