SQL(Structured Query Language)은 데이터베이스에서 데이터를 관리하고 조작하기 위한 언어입니다. SQL 구문은 여러 가지 명령어로 구성되며, 주로 데이터베이스에 대한 질의, 삽입, 수정, 삭제 등의 작업을 처리합니다.
1. 데이터 정의 언어(DDL: Data Definition Language)
데이터베이스의 구조(테이블, 인덱스, 뷰 등)를 정의하고 관리하는 명령어입니다.
주요 DDL 구문:
CREATE: 데이터베이스 객체(테이블, 인덱스, 뷰 등)를 생성합니다.
CREATE TABLE 학생 (
학번 INT PRIMARY KEY,
이름 VARCHAR(50),
학과 VARCHAR(50)
);
ALTER: 테이블의 구조를 변경합니다 (열 추가, 삭제, 데이터 타입 변경 등).
ALTER TABLE 학생 ADD COLUMN 생년월일 DATE;
DROP: 데이터베이스 객체(테이블, 인덱스, 뷰 등)를 삭제합니다.
DROP TABLE 학생;
TRUNCATE: 테이블의 모든 데이터를 삭제하지만, 테이블의 구조는 유지합니다.
TRUNCATE TABLE 학생;
2. 데이터 조작 언어(DML: Data Manipulation Language)
데이터베이스 내 데이터를 조작(삽입, 수정, 삭제)하는 명령어입니다.
주요 DML 구문:
INSERT: 테이블에 데이터를 삽입합니다.
INSERT INTO 학생 (학번, 이름, 학과) VALUES (1, '홍길동', '컴퓨터공학');
UPDATE: 테이블의 데이터를 수정합니다.
UPDATE 학생 SET 학과 = '전자공학' WHERE 학번 = 1;
DELETE: 테이블에서 데이터를 삭제합니다.
DELETE FROM 학생 WHERE 학번 = 1;
3. 데이터 질의 언어(DQL: Data Query Language)
데이터베이스에서 데이터를 검색하는 데 사용되는 명령어입니다. 주로 SELECT 명령어가 사용됩니다.
주요 DQL 구문:
SELECT: 테이블에서 데이터를 조회합니다.
SELECT * FROM 학생;
WHERE: 특정 조건을 만족하는 데이터만 조회합니다.
SELECT * FROM 학생 WHERE 학과 = '컴퓨터공학';
GROUP BY: 특정 속성 값에 따라 데이터를 그룹화하여 조회합니다.
SELECT 학과, COUNT(*) AS 학생수 FROM 학생 GROUP BY 학과;
ORDER BY: 데이터를 정렬합니다.
SELECT * FROM 학생 ORDER BY 학번 DESC;
JOIN: 두 개 이상의 테이블을 결합하여 데이터를 조회합니다.
SELECT 학생.이름, 교수.이름
FROM 학생 JOIN 교수
ON 학생.학과 = 교수.학과;
4. 데이터 제어 언어(DCL: Data Control Language)
데이터베이스에 대한 사용자의 권한을 제어하는 명령어입니다.
주요 DCL 구문:
GRANT: 특정 사용자에게 권한을 부여합니다.
GRANT SELECT, INSERT ON 학생 TO 사용자1;
REVOKE: 특정 사용자에게 부여한 권한을 취소합니다.
REVOKE SELECT ON 학생 FROM 사용자1;
5. 트랜잭션 제어 언어(TCL: Transaction Control Language)
트랜잭션의 처리 상태를 제어하는 명령어입니다.
주요 TCL 구문:
COMMIT: 트랜잭션이 성공적으로 완료되었음을 명시하고, 데이터베이스에 변경 사항을 저장합니다.
COMMIT;
ROLLBACK: 트랜잭션에서 발생한 변경 사항을 취소하고, 데이터베이스를 이전 상태로 되돌립니다.
ROLLBACK;
SAVEPOINT: 트랜잭션 내에서 특정 지점을 저장합니다. ROLLBACK 시 특정 지점까지 되돌릴 수 있습니다.
SAVEPOINT 저장점1;
6. 집계 함수와 연산자
SQL에서 데이터를 분석하고 요약하는 데 사용되는 함수입니다.
주요 집계 함수:
COUNT(): 특정 컬럼의 값을 카운트합니다.
SELECT COUNT(*) FROM 학생;
SUM(): 특정 컬럼의 값을 모두 더합니다.
SELECT SUM(학점) FROM 성적;
AVG(): 특정 컬럼 값의 평균을 구합니다.
SELECT AVG(점수) FROM 성적;
MAX(): 특정 컬럼의 최대값을 구합니다.
SELECT MAX(점수) FROM 성적;
MIN(): 특정 컬럼의 최소값을 구합니다.
SELECT MIN(점수) FROM 성적;
SQL 구문에서 주의해야 할 점:
- 대소문자: SQL 구문은 대소문자를 구분하지 않지만, 데이터베이스의 컬럼 이름이나 데이터 값은 대소문자를 구분할 수 있습니다.
- 세미콜론(;): SQL 구문은 ;으로 종료하는 것이 일반적입니다. MySQL과 같은 몇몇 시스템에서는 세미콜론을 생략할 수 있지만, SQL 표준에 따르면 구문 끝에 세미콜론을 붙이는 것이 좋습니다.
SQL 구문은 데이터베이스를 관리하는 데 매우 중요하며, 주어진 데이터를 효율적으로 처리할 수 있도록 다양한 명령어와 연산자가 제공됩니다.
'Category > 정보처리기사' 카테고리의 다른 글
| SOAP, RESTful 설명과 비교 정리 (1) | 2024.10.15 |
|---|---|
| IPSec (Internet Protocol Security)이란? (0) | 2024.10.15 |
| 데이터베이스 회복(Recovery) 기법 정리 (2) | 2024.10.14 |
| 데이터베이스 이상 현상(Anomalies) 정리 (2) | 2024.10.14 |
| 프로세스 주요 상태 정리 (0) | 2024.10.14 |