본문 바로가기
Category/정보처리기사

SQL(Structured Query Language) 정리

by Corinee 2024. 10. 14.
728x90
반응형

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 구문은 데이터베이스를 관리하는 데 매우 중요하며, 주어진 데이터를 효율적으로 처리할 수 있도록 다양한 명령어와 연산자가 제공됩니다.