SQL(Structured Query Language) 기초

Last edited at 2024-11-08
97 Views

정보처리기능사 준비하는 겸 SQL 문법 정리해서 올려봅니다

데이터베이스 개념은 이전 글을 참조하세요



SQL 개념


SQL(Structured Query Language)은 현재 널리 사용되는 데이터베이스를 조작하는 데 사용할 수 있는 언어이다.

SQL의 분류

  • DDL(Data Define Language): SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 조작할 때 사용하는 언어로, 이에 해당하는 명령어로는 CREATE(정의), ALTER(정의 변경), DROP(삭제)이 있다.
  • DML(Data Manipulation Language): 테이블에서 튜플을 실질적으로 처리하는 데 사용되는 언어로, 해당하는 명령어로는 SELECT(검색), INSERT(삽입), DELETE(삭제), UPDATE(내용 변경)이 있다.
  • DCL(Data Control Language): 데이터의 보안, 무결성, 회복, 권한 제어 등을 정의하는 데 사용되는 언어로, 해당하는 명령어로는 COMMIT, ROLLBACK, GRANT(사용자에게 사용 권한 부여), REVOKE(권한 취소) 등이 있다.



DDL(Data Define Language)


DDL은 DB의 전체적인 구조를 구축하거나 수정하는 데 사용하는 언어이다. 대표적 명령문의 사용법은 다음과 같다.



CREATE


CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;


CREATE DOMAIN 도메인명 [AS] 데이터타입
       [DEFAULT 기본값]
       [CONSTRAINT 제약조건명 CHECK (조건)]


CREATE TABLE 테이블명[AS]
       (속성명 데이터_타입 [DEFAULT 기본값] [NOT NULL], ...
       [, PRIMARY KEY(기본키_속성명, ...)]
       [, UNIQUE(대체키_속성명, ...)]
       [, FOREIGN KEY(외래키_속성명, ...) REFERENCES 참조테이블(기본키_속성명, ...)]
       [, CONSTRAINT 제약조건명 CHECK (조건식)];


CREATE VIEW 뷰명[(속성명, ...)]
AS SELECT ... ;


CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명(속성명[ASC/DESC], ...)
[CLUSTER];



ALTER


ALTER TABLE 테이블명 ADD 속성명 데이터_타입;
ALTER TABLE 테이블명 ALTER 속성명 데이터_타입;
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];



DROP


DROP SCHEMA 스키마명 [CASCADE/RESTRICT];
DROP DOMAIN 도메인명 [CASCADE/RESTRICT];
DROP TABLE 테이블명 [CASCADE/RESTRICT];
DROP VIEW 뷰명 [CASCADE/RESTRICT];
DROP INDEX 인덱스명 [CASCADE/RESTRICT];
DROP CONSTRAINT 제약조건명;


*CASCADE: 제거할 요소를 참조하는 다른 모든 개체를 함께 제거.

*RESTRICT: 다른 개체가 제거할 요소를 참조 중일 때는 제거를 취소.



DCL(Data Control Language)


DCL은 데이터베이스 관리자(DBA)가 데이터 및 권한 관리를 목적으로 사용하는 언어이다.



GRANT / REVOKE


GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];
REVOKE 사용자등급 FROM 사용자_ID_리스트;


GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];
*WITH GRANT OPTION: 부여받은 권한을 다른 사용자에게 다시 부여할 권한을 부여함

*CASCADE: 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소함

*권한 종류에는 ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등이 있음



COMMIT / ROLLBACK / SAVEPOINT


COMMIT;


ROLLBACK;


SAVEPOINT [세이브포인트명];
ROLLBACK TO [세이브포인트명];



DML(Data Manipulation Language)


DML은 데이터베이스 사용자가 저장된 데이터를 실질적으로 관리하는 데 사용하는 언어이다.



INSERT INTO~


INSERT INTO 테이블명([속성명1, 속성명2, ...])
VALUES (데이터1, 데이터2, ...);



DELETE FROM~


DELETE FROM 테이블명 [WHERE 조건];



UPDATE~ SET~


UPDATE 테이블명
SET 속성명 = 데이터, ...
[WHERE 조건];



SELECT


SELECT [PREDICATE] [테이블명.]속성명1 [AS 별칭], ...
FROM 테이블명1, 테이블명2, ...
[WHERE 조건]
[GROUP BY 속성명1, 속성명2, ...]
[HAVING 조건]
[ORDER BY 속성명 [ASC/DESC]];

*PREDICATE: 검색할 튜플의 제한 조건. ALL(기본), DISTINCT, DISTINCTROW가 있음.




주요 연산자 및 함수

  • = 연산자: 같다
  • NOT, AND, OR 연산자: 논리 연산 수행
  • LIKE 연산자: '대표 문자'를 이용해 문자열의 문자 패턴이 일치하는 튜플을 검색하기 위해 사용함. %(모든 문자 대표), _(문자 하나를 대표), #(숫자 하나를 대표)
  • NOW(), DATE(): 각각 현재 날짜와 시간, 현재 날짜를 표시
  • LEFT(문자열, 자릿수), MID(문자열, 시작값, 자릿수), RIGHT(문자열, 자릿수): 각각 시작 위치에서 주어진 자릿수만큼 추출
  • TRIM(문자열): 문자열의 좌우 공백 제거
  • LEN(문자열): 문자열의 길이 반환
  • UPPER(문자열), LOWER(문자열): 각각 대문자, 소문자로 변환해 반환
  • AVG(필드명), SUM(필드명), COUNT(필드명), MIN(필드명), MAX(필드명), 각각 평균, 합, 레코드 수, 최소값, 최대값 구함
  • UNION, UNION ALL, INTERSECT, EXCEPT 연산자: 두 SELECT문의 통합 질의에서 사용되는 집합 연산자로 각각 합집합, 중복을 포함한 합집합, 교집합, 차집합을 구함


(SELECT문 예시)


SELECT 기본급+10 AS 월급
FROM 사원
WHERE 부서='기획' aND 기본급 > 150;


SELECT TOP 2 *
FROM 사원
WHERE 이름 LIKE '김%'
ORDER BY 주소 DESC;


SELECT 부서, COUNT(*) AS 사원수
FROM 사원
GROUP BY 부서;


SELECT *
FROM 사원1
WHERE 이름 NOT IN (SELECT 이름 FROM 여가활동 WHERE 취미='테니스')
UNION
SELECT *
FROM 사원2
WHERE 이름 NOT IN (SELECT 이름 FROM 여가활동 WHERE 취미='테니스');



SELECT - JOIN


Join이란 2개에 테이블에 대해 연관된 튜플들을 결합하여 하나의 새로운 릴레이션을 얻는 것을 말한다.


INNER JOIN - 조인된 필드가 일치하는 행들만 표시

SELECT [테이블명1].속성명, [테이블명2.]속성명
FROM 테이블명1, 테이블명2, ...
WHERE 테이블명1.속성명 = 테이블명2.속성명;


OUTER JOIN - 조인된 필드가 일치하지 않는 행들도 필드 값 대신 NULL을 넣어 결과로 출력

SELECT [테이블명1].속성명, [테이블명2.]속성명
FROM 테이블명1 RIGHT OUTER JOIN 테이블명2
ON 테이블명1.속성명 = 테이블명2.속성명;


SELECT [테이블명1].속성명, [테이블명2.]속성명
FROM 테이블명1 LEFT OUTER JOIN 테이블명2
ON 테이블명1.속성명 = 테이블명2.속성명;




Reference

  • 2024 시나공 정보처리기능사 실기 기본서. 길벗