데이터베이스의 테이블에 들어있는 데이터에 변형을 가하는 종류의 명령어들을 말한다.
예를 들어 데이터를 테이블에 새로운 행을 집어넣거나, 원하지 않는 데이터를 삭제하거나 수정하는 것들의 명령어르 DML이라고 한다.
테이블에 행을 삽입할 때 사용하며 한번에 한 행만 입력가능하다.
컬럼별 데이터의 타입과 사이즈에 맞게 삽입해야 한다.
작성하지 않은 컬럼엔 NULL이 입력되며 NOT NULL의 조건이 걸린 컬럼의 경우에는 오류가 발생한다.
INSERT INTO 테이블 (속성1, 속성2) VALUES(속성1, 속성2)
데이터를 수정할 때 사용하며 컬럼 단위로 수행한다.
WHERE절이 없으면 테이블 내 모든 레코드의 속성 값이 바뀌기 때문에 주의가 필요하다.
UPDATE 테이블이름 SET 속성=값 WHERE 조건
UPDATE 테이블이름 SET 속성1=값1, 속성2=값2 WHERE 조건
데이터를 삭제할 때 사용하며 행 단위로 실행한다.
WHERE절이 없으면 테이블의 모든 레코드가 삭제된다.
이때 값이 삭제되는 것이지 테이블의 저장공간은 그대로 남는다.
DELETE FROM 테이블이름 WHERE 조건
데이터를 병합할 때 사용한다. INSERT와 UPDATE, DELETE 작업을 동시에 수행한다.
MERGE INTO 테이블이름
USING 참조테이블
ON(연결조건)
WHEN MATCHED THEN
UPDATE
SET 수정내용
WHEN NOT MATCHED THEN
INSERT VALUES(삽입할 내용)
테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 그러한 구조를 생성하거나 변경하거나 삭제하거나 이름을 바꾸는 데이터 구조와 관련된 명령어들을 말한다.
테이블이나 인덱스와 같은 객체를 생성하는 명령어로 테이블 생성 시 테이블명, 컬럼명, 컬럼순서, 컬럼크기, 컬럼의 데이터타입 정의가 필수이다.
테이블 생성 시 주의사항
( ) 로 묶어 지정,으로 구분되고 테이블 생성문은 ;로 끝남CREATE DATABASE 데이터베이스이름
CREATE TABLE 테이블이름(
컬럼이름 자료형 NOT NULL,
컬럼이름 자료형 NULL
)
테이블 구조를 변경할 때 생성한다.
SQL SERVER는 여러개의 칼럼을 동시에 수정하는 방식을 지원하지 않는다.
ALTER TABLE 테이블이름 ALTER COLUMN 컬럼명 데이터타입
ALTER TABLE 테이블이름 ADD 컬럼명 데이터타입
ALTER TABLE 테이블이름 DROP COLUMN 컬럼명 데이터타입
테이블, 인덱스 등을 삭제할 때 사용하며 DELETE와 다르게 객체의 값과 저장공간이 사라지기에 DROP이후에는 조회가 불가능하다.
DROP TABLE 테이블/데이터베이스이름
논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 트랜잭션 별로 제어하는 명령어를 말한다.
데이터베이스의 논리적 연산 단위를 말하며 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다.
입력, 수정, 삭제한 데이터에 이상이 없을 경우 데이터를 저장하는 명령어이다.
한번 COMMIT하면 COMMIT 이전에 수행된 DML은 모두 저장되며 되돌릴 수 없다.
오라클은 DDL시 AUTO COMMIT이 가능하지만 SQL SERVER는 지원하지 않는다.
테이블 내 입력한 데이터나 수정한 데이터, 삭제한 데이터에 대해 변경을 취소하는 명령어이다.
트랜잭션 실행 도중 문제가 생기면 특정 세이브포인트로 ROLLBACK 한다.
데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어를 말한다.
권한 부여시 반드시 테이블 소유자나 관리자 계정으로 접속해 권한을 부여해야한다.
동시에 여러 유저에 대한 권한을 부여할 수 있지만 동시에 여러 객체에 권한을 부여할 순 없다.
GRANT 권한 ON 테이블명 TO 유저;
동시에 여러 권한을 회수할 수 있다.
이때 회수된 권한은 재회수 불가능하다.
REVOKE 권한 ON 테이블명 FROM 유저;