- 데이터의
구조를 정의
하기 위한 테이블 생성, 삭제 같은 명령어
- CREATE : 테이블 생성
EX1) CREATE TABLE EMPLOYEES2( employee_id number(10), name varchar2(20), salary number(7,2) );
EX2) CREATE TABLE EMPLOYEES3 AS SELECT * FROM EMPLOYEES2 e ;
- DROP : 테이블(의 구조를) 삭제
EX) DROP TABLE EMPLOYEES3 ;
- ALTER : 테이블 수정
EX1) 컬럼 추가 ALTER TABLE EMPLOYEES2 add( manager_id varchar2(10) );
EX2) 컬럼 수정 ALTER TABLE EMPLOYEES2 modify( manager_id varchar2(20) );
EX3) 컬럼 삭제 ALTER TABLE EMPLOYEES2 DROP COLUMN manager_id;
- TRUNCATE : 테이블에 있는 모든 데이터 삭제 (데이터 비워내기)
EX) TRUNCATE TABLE EMPLOYEES2 ;
데이터 조작어
- 데이터 조회 및 변형을 위한 명령어
- INSERT
📌 열 이름을 지정하지 않고 삽입하는 방법은 코딩을 짧게 해도 된다는 장점이 있지만 값의 순서가 변경될 경우 테이블이 망가질 수 있는 위험이 있다.
📌 열 이름을 지정한 후 행 전체를 삽입하는 방법은 순서에 따라 값 매칭(matching)이 잘 되었는지 확인할 수 있고 오류가 적다.
📌 열 이름을 지정하면 삽입하는 열의 순서가 바뀌어도 열 이름과 입력된 값이 대응하면 결과에 영향이 없다.
insert into 테이블명 values (값1, 값2, ...) OR insert into 테이블명 (컬럼1, 컬럼2, ...) values (값1, 값2, ...)
EX) SELECT * FROM EMPLOYEES2 e ; INSERT INTO EMPLOYEES2 e VALUES(1, '테스트', 3000); INSERT INTO EMPLOYEES2 e VALUES(2, '홍길동', 5000);
UPDATE
update 테이블명 set 컬럼1 = 값1, 컬럼2 = 값2, ... where 조건
EX1) UPDATE SAMPLE SET DEPTNO = 50 WHERE DEPTNO = 30 ;
EX2) UPDATE SAMPLE SET DEPTLOC = '인천' WHERE DEPTNAME = '영업부' ;
- DELETE
📌 DELETE절을 사용할 때 WHERE 조건절을 사용하지 않으면 데이터 전체가 삭제될 수 있기때문에 주의해야 한다.
delete (from) 테이블명 where 조건;
EX) DELETE FROM SAMPLE s WHERE DEPTNAME = '영업부' ;
📌 Drop : 테이블
존재 자체
가 삭제
📌 Truncate : 데이터만 통으로 삭제
✔️ 테이블이 삭제되는 명령어 X, 테이블 안에 들어있던 모든
레코드들을 제거
하는 명령어✔️ 테이블을 Drop 했다가 Create
✔️ 모든 행을 삭제하는 가장빠르고 효율적인 방법
📌 Delete : 데이터 골라서 삭제
✔️ Delete는 truncate처럼 테이블 구조는 남기고
안의 데이터만
삭제✔️ Delete는
부분삭제 가능
✔️ 내부 방식이 다르다 (한줄 한줄 삭제)
Drop Truncate Delete DDL DDL DML Rollback 불가능 Rollback 불가능 Commit 이전에 가능 Auto Commit Auto Commit Auto Commit 테이블 자체를 완전히 삭제 테이블을 최초 생성된 초기 상태로 만들기 데이터만 삭제 로그 안 남음 로그 안 남음 로그 남음
데이터 제어어
- 사용자에게 권한 생성 혹은 권한 삭제 같은 명령어
- grant : 권한 생성
- revoke : 권한 삭제
🔎 SQL에서는 수행한 내용을 취소할 수 있는 기능이 없다.