DBMS에서 데이터를 실제로 입력하고 삭제하고 조회하는 SQL에 대해 학습
SQL은 데이터베이스를 관리하기 위한 일종의 언어
절차적 언어가 아닌 선언적 언어이기 떄문에 다른 언어에 비해 매우 수월하게 배울 수 있음
table(relation) row(tuple), column(attribute) 각 논리 관계 모델에서는 ()로 불림
schema name, authorization identifier, descriptors
table, constrains, views, domains, and other construct + semicolon
Jsmith가 권할을 가질 company라는 schema를 가짐 (mySQL에서는 CREATE DATABASE를 사용)
위에 생성된 schema를 기반으로 테이블을 생성, 내부에는 constraint에 대한 내용이 들어감
test schema가 없으면 character set을 utf8로 하여 만들어라
이후 test schema에 abcTBL 테이블을 만든다
각 attribute에 대한 constraints로
keys는 int이며 null에 될 수 없다.
attr1은 varchar(45)이며 null이 될 수 있다.
primary key는 key이다.
프로젝트라는 테이블은 pname, pnumber, plocation, dnum과 같은 attribute가 존재
프라이버리 키는 pnumber, pname은 unique해야함(primary key가 되지 못한 cadidate key)
dnum은 foreign key이며 department 테이블의 dnumber을 참조 한다.
attribute에 해당하는 domain을 설정 할 수 있으며 type 또한 정의 할 수 있다.
retrieving information from a database
select <attribute list>
from <table list>
where <condition>
groupby <grouping attribute(s)>
having <grouping condition>
order by <attribute list>
select에서 이름은 약칭으로 사용할 수 있음
테이블 정의 자체에서 약칭으로 사용할 수도 있음
select *
from employee
where Dno=5
중복을 허용하지 않음
All의 경우 중복을 허용
select ALL or distinct Salary
from employee
where Dno=5
UNION, EXCEPT, INTERSECT
오름차순 내림차순 정렬
DESC, ASC