observe_db

[DB] Chap. 6 Basic SQL 본문

학교 공부/데이터베이스(3-2)

[DB] Chap. 6 Basic SQL

쩡윤 2023. 10. 10. 20:00

10/10

 

SQL 언어

초기에는 SEQUEL이라는 이름

Chamberlin과 Boyce가 IBM에서 개발

Structured Query language

 

SQL Data Definition and Data Types

용어

Table, row, column이 Relation, Tuple, Attribute로 사용됨.

CREATE로 데이터를 정의

 

SQL 표준이 있으니, 어떤 것을 적용하는지 확인해두어야함. 

 

스키마와 카탈로그

SQL 스키마는 이름으로 정의됨.

스키마 원소들은 table, constraints, view, domains 등등을 포함한다.

;(세미콜론)으로 끝낸다.

 

새로운 relation 지정

-table 이름 공유

-속성, 타입, 제약사항 지정

 

Base table: 스토리지에 저장된 실제 테이블

View: 저장되지 않는 가상 테이블

 

데이터 타입

-숫자형(int, float 계열)

-문자&문자열(Fixed, Varying length)

++Fixed는 공간이 낭비될 수 있지만, 찾기가 쉽고, Varying length는 공간을 딱 맞게 사용하나, 찾기는 힘듬

-Bit 문자열

-Boolean

-DATE(날짜)

추가적 데이터 타입

-Timestamp

-INTERVAL

Domain- 가질 수 있는 범위

Type- 유저 정의 타입

 

Specifying Constraints in SQL

4개의 제약조건: Key/Entity/Foreign/Domain

DEFAULT <value>: 값이 안 정해질 떄의 기본 값을 지정.

NOT NULL: NULL일 수 없는 값들.

CHECK: 가능한 조건을 걸음.(수의 범위 등)

PRIMAY KEY: PK

UNIQUE: alternate key(secondary key, CANDIDATE key)를 지정.

FOREIGN KEY: 외래키. 갱신을 거부->값을 바꾸면 FK인 쪽을 NULL로 바꾸거나, 바꾸어진 값으로.(Foreign constraint)

constraint에 이름 지정: 나중에 바꿀 때에 용이하다.

 

Basic Retrieval Queries in SQL

SELECT

2개 이상의 튜플들의 테이블의 속성 값들을 

-집합 이론(set theory)근거

-단 동일한 값을 가질 수도 있다.

SELECT <attribute> FROM <table> WHERE <condition>;

* 논리적 비교 연산(=, <, >, ! 등)

* 선택 조건: Boolean 조건. 전체 record 대상

 

같은 이름이 다른 관계(relation)두개 이상의 속성에 사용될 수 있다.

-> 모호성 방지를 위해 속성에 관계 이름을 같이 명시.

약칭이나 튜플 변수.

ex) EMPLOYEE AS E

(AS는 뺴도 상관 없음)

 

WHERE 생략 가능.(튜플 선택에 아무 조건이 없으면)

CROSS PRODUCT: 모든 가능한 튜플 조합을 결과로 만든다.(즉 |A|*|B|개의 정보를 만든다.)

모든 데이터는 *

 

SQL은 쿼리의 결과에서 중복 튜플을 자동적으로 지워주지 않는다.

 

집합 연산

UNION, EXCEPT(difference), INTERSECT

 

LIKE는 비교 연산

-%sms 0개 이상은 어떤 문자를 대신한다.

-_(언더바)는 한개의 문자를 대신한다.

 

BETWEEN은 양쪽 사이의 값들을

+-*/ 사칙연산을 SELECT에 넣어줄 수 있다.

 

ORDER BY

-DESC가 내림차순, ASC가 오름차순

 

INSERT, DELETE, and UPDATE Statements in SQL

위의 세개는 DB를 수정(modify)하는 명령어

INSERT는 tuple(row)를 relation(table)에 삽입

UPDATE는 tuple(row)를 조건을 만족하게 수정

DELETE는 relation(table)의 tuples(rows)을 삭제.

 

INSERT

-하나 이상의 튜플을 추가

-값들은 같은 순서로

-제약조건을 만족해야함

 

DELETE

-WHERE조건이 있음(삭제할 조건)

-없으면 모두 삭제됨.(record만 전부 삭제. table은 남음)

 

UPDATE

-속성의 값을 변경.

-where조건

-valid state란 constraint를 만족하는 상태를 말함.

Comments