SQL : 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어.
RDBMS에서 자료의 검색과 달리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다.
DDL은 SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어로 논리적 데이터 구조와 물리적 데이터 구조의 사상을 정의한다.
데이터베이스 관리자나 설계자가 사용한다.
CREATE : SCHEMA, DOMAIN, TABLE, VIEW, INDEX 정의
ALTER : TABLE에 대한 정의를 변경
DROP : SCHEMA, DOMAIN, TABLE, VIEW, INDEX 삭제
DML은 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용하는 언어이다.
데이터베이스 사용자와 관리 시스템 간의 인터페이스를 제공한다.
SELECT : 테이블에서 조건에 맞는 튜플 검색
INSERT : 테이블에 새로운 튜플 삽입
DELETE : 테이블에서 조건에 맞는 튜플 삭제
UPDATE : 테이블에서 조건에 맞는 튜플의 내용을 변경
DCL은 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는데 사용되는 언어이다.
데이터베이스 관리자가 데이터 관리를 목적으로 사용한다.
COMMIT : 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알림
ROLLBACK : 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래 상태로 복구
GRANT : 데이터베이스 사용자의 사용 권한 부여
REVOKE : 데이터베이스 사용자의 사용 권한 취소
SELECT 컬럼명 FROM 테이블명
테이블명에 해당하는 테이블의 컬럼명에 데이터를 부러오는 구문이다.
SELECT 컬럼명 FROM 테이블명 WHERE 조건
WHERE 구문을 추가해서 WHERE절 뒤에 오는 조건이 참인 데이터만 불러온다.
[컬럼명 = 값]으로 적을 경우 컬럼 명의 값이 지정한 값인 데이터행의 데이터만 불러온다.
SELECT 컬럼명 FROM 테이블명 WHERE 조건 ORDER BY 컬럼명 ASC or DESC
ORDER BY 뒤에 오는 컬럼명을 기준으로 불러오는 데이터를 정렬한다.
ASC는 오름차순, DESC는 내림차순이다. 기본값은 ASC로 정렬된다.
SELECT 컬럼명 FROM 테이블명 WHERE 조건 ORDER BY 컬럼명 ASC or DESC LIMIT 개수
LIMIT 구문을 추가해서 데이터행이 많을 때에 LIMIT절의 개수만큼 데이터를 불러온다.
데이터를 삽입하는 쿼리문
INSERT INTO 테이블명 (컬럼명1, 컬럼명2, 컬럼명3) VALUES (값1, 값2, 값3)
테이블명에 있는 컬럼명에 순서에 맞게 값을 입력한다. 컬럼명과 값의 개수는 동일해야 한다.
만약 문자열을 값으로 입력하는 경우 작은따옴표로 문자열을 감싸줘야 한다.
INSERT INTO 테이블명 VALUES (값1, 값2, 값3)
테이블명 다음에 칼럼명을 입력하지 않은 경우는 모든 컬럼에 값을 입력한다는 의미로 모든 컬럼의 수에 맞게 값을 줘야 한다.
ex) 컬럼이 3개인 테이블에서
INSERT INTO TABLE VALUES(값1, 값2); -> 실패
INSERT INTO TABLE VALUES(값, 값2, 값3); -> 성공
데이터를 수정하는 쿼리문
UPDATE 테이블명 SET 컬럼명 = 변경할 값
테이블에 있는 모든 데이터의 컬럼 값을 변경한다.
UPDATE 테이블병 SET 컬럼명 = 변경할 값 WHERE 조건
WHERE절의 조건에 해당하는 데이터만 변경한다.
UPDATE 테이블명 SET 컬럼명1 = 변경할 값1, 컬럼명2 = 변경할 값2 WHERE 조건
변경할 컬럼이 여러 개일 때 ,를 사용해서 여러 개의 값을 변경할 수 있다.
테이블에 데이터를 삭제하는 쿼리문
DELETE FROM 테이블명
테이블에 있는 모든 데이터를 삭제한다.
DELETE FROM 테이블명 WHERE 조건
WHERE절의 조건에 부합하는 데이터만 삭제한다.