SQL: 두 판 사이의 차이
편집 요약 없음 |
|||
| 46번째 줄: | 46번째 줄: | ||
==Null Values== | ==Null Values== | ||
널('''Null''') 값은 존재하지 않거나 알려지지 않은 값을 나타내는데 사용된다. 이때 널 값은 산술 연산, 비교 연산, 집합 연산을 포함한 릴레이션 연산들에서 특별한 문제를 유발한다. 산술 표현식(+, −, ∗, ∕ 등을 포함하는 표현식)의 결과는, 입력값 중 하나라도 널이면 결과도 널이 된다. | |||
==각주== | ==각주== | ||
[[분류:데이터베이스 시스템]] | [[분류:데이터베이스 시스템]] | ||
2025년 4월 2일 (수) 10:23 판
상위 문서: 데이터베이스 시스템
개요
SQL(Stuctured Query Language)은 가장 널리 자용되는 데이터베이스 질의(query) 언어이다. SQL은 SQL query language라고 많이 불리지만, 단순히 데이터베이스의 질의를 하는 것 이상의 일, 데이터의 구조를 정의하고, 데이터베이스의 데이터를 수정하며, 보안 제약 조건을 명시할 수 있다.
SQL의 구성
SQL은 아래와 같은 여러 부분으로 구성된다:
- DDL(Data Definition Language): SQL DDL은 관계 스키마를 정의하고, 관계를 삭제하며, 관계 스키마를 수정하는 명령어들을 제공한다.
- DML(Data Manipulation Language): SQL DML은 데이터베이스에서 정보를 질의하고, 튜플을 삽입하고, 삭제하고, 수정하는 기능을 제공한다.
- 무결성(Integrity): SQL DDL에는 데이터베이스에 저장된 데이터가 반드시 만족해야 하는 무결성 제약 조건을 명시하는 명령어가 포함되어 있다.
- View definition: SQL DDL에는 뷰를 정의하는 명령어가 포함되어있다.
- Transaction protocol: SQL은 transaction의 시작점과 종료점을 지정하는 명령어들을 포함한다.
- Embedded SQL and dynamic SQL: 임베디드 SQL과 동적 SQL은 SQL 문장이 C, C++, Java와 같은 범용 프로그래밍 언어 안에 어떻게 포함되는지를 정의한다.
- 권한 부여(Authorization): SQL DDL은 관계와 뷰에 대한 접근 권한을 명시하는 명령어들을 포함한다.
SQL data definition
자세한 내용은 SQL data definition 문서를 참조하십시오.
Structure of SQL Queries
자세한 내용은 Structure of SQL Queries 문서를 참조하십시오.
Additional Operation
자세한 내용은 Additional Operation 문서를 참조하십시오.
Set Operation
SQL은 union, intersect, 그리고 except 연산자는 릴레이션에 대해 동작하며, 수학적인 집합 연산인 ∪(합집합), ∩(교집합), −(차집합)과 대응된다. 이 세 연산자는 아래와 같이 사용된다.
-- Fall 2017 또는 Spring 2018에 운영되었던 course를 찾기
(select course_id from section where sem = 'Fall' and year = 2017)
union
(select course_id from section where sem = 'Spring' and year = 2018)
-- Fall 2017와 Spring 2018에 모두 운영되었던 course를 찾기
(select course_id from section where sem = 'Fall' and year = 2017)
intersect
(select course_id from section where sem = 'Spring' and year = 2018)
-- Fall 2017에 운영되었지만 Spring 2018에는 운영되지 않았던 course를 찾기
(select course_id from section where sem = 'Fall' and year = 2017)
except
(select course_id from section where sem = 'Spring' and year = 2018)
이때 union, intersect, 그리고 except 연산자는 모두 그 결과 테이블에서 중복되는 튜플을 허용하지 않는다. 중복되는 튜플을 허용하기 위해서는, union all, intersect all, 그리고 except all 연산자를 사용해야 한다.
Null Values
널(Null) 값은 존재하지 않거나 알려지지 않은 값을 나타내는데 사용된다. 이때 널 값은 산술 연산, 비교 연산, 집합 연산을 포함한 릴레이션 연산들에서 특별한 문제를 유발한다. 산술 표현식(+, −, ∗, ∕ 등을 포함하는 표현식)의 결과는, 입력값 중 하나라도 널이면 결과도 널이 된다.