1970년대 후반 IBM이 SEQUEL이라는 이름으로 개발한 관계형 데이터베이스 언어이다. 이후 1986년 ANSI에 의해 관계형 데이터베이스 표준 언어로 승인되었다. 완전한 프로그래밍 언어는 아니며, DB의 데이터와 메타 데이터를 생성하고 처리하는 문법만 갖고 있다.
<차이>
SQL문은 실행 순서가 없는 비절차적인 언어이다.
즉 찾는 데이터만 기술하고 어떻게 찾는지 그 절차(실행순서)를 기술하지 않는다.
-> SQL문 내에서는 ①FROM에서 쓰여진 테이블을 가져와서 ②WHERE 조건에 의해 투플(행)을 선택한 후 ③SELECT에 있는 속성(열)들을 결과로 출력하게 된다.
자세한 언어의 문법은 아래에서 다루도록 하겠습니다.
데이터 정의어(DDL) -> CREATE, ALTER, DROP 등
데이터 조작어(DML) -> SELECT, INSERT, DELETE, UPDATE 등
데이터 제어어(DCL) -> COMMIT, GRANT, ROLLBACK, REVOKE 등
SELECT (속성 이름)
FROM (테이블 이름)
WHERE (검색 조건) ;
밑의 표는 WHERE 절에 조건으로 사용할 수 있는 술어이다.
(ex)
2개의 테이블을 합쳐서 SQL문으로 데이터를 조회하는 연산이다.
SQL문 안에 또 다른 SQL문을 작성하는 질의문이다.
EXISTS -> 원래 단어에서 의미하는 것과 같이 조건에 맞는 튜플(행)이 존재하면 결과에 포함시킨다. 즉 부속 질의문이 어떤 행이 조건에 만족하면 True
NOT EXISTS -> 부속 질의문의 모든 행이 조건에 만족하지 않을 때만 True이다.
INSERT INTO 테이블이름[(속성리스트)]
VALUES (값리스트);
UPDATE 테이블이름
SET 속성이름1=값1[, 속성이름2=값2, ...]
[WHERE <검색조건>];
DELETE FROM 테이블이름
[WHERE 검색조건];
CREATE TABLE 테이블이름
( { 속성이름 데이터타입
[NOT NULL | UNIQUE | DEFAULT 기본값 | CHECK 체크조건]
}
[PRIMARY KEY 속성이름(들)]
{[FOREIGN KEY 속성이름 REFERENCES 테이블이름(속성이름)]
[ON DELETE [CASCADE┃SET NULL]
}
)
ALTER TABLE 테이블이름
[ADD 속성이름 데이터타입]
[DROP COLUMN 속성이름]
[MODIFY 속성이름 데이터타입]
[MODIFY 속성이름 [NULL┃NOT NULL]]
[ADD PRIMARY KEY(속성이름)]
[[ADD┃DROP] 제약이름]
DROP TABLE 테이블이름
This viewpoint throws new wordle junior insight on the subject and invites further investigation and discussion.
In a fast-paced world filled with screens and distractions, Connections NYT offers a refreshing escape into the realm of creativity and intellect.
This viewpoint throws new wordle insight on the subject and invites further investigation and discussion.