* 본 내용은 Tmax AI & Big Data Academy 나연묵 교수님의 수업과, Kroenke and Auer - Database Processing (데이터베이스 처리론), 11th Edition 을 바탕으로 작성하였습니다.
Chapter 7. SQL for Database Construction and Application Processing
View 는 가상 테이블이라서 ALTER 가 없다.
도메인
최초의 테이블을 만드는 명령어는 CREATE TABLE 이다.
- 각 열은 세 부분으로 나눠진다 : column name / data typle / optional constraints
CREATE TABLE ARTIST (
ArtistID Int NOT NULL IDENTITY(1,1),
LastName Char(25) NOT NULL,
FirstName Char(25) NOT NULL,
Nationality Char(30) NOT NULL,
DateOfBirth Numeric(4) NULL,
DateDeceased Numeric(4) NULL,
CONSTRAINT ArtistPK PRIMARY KEY(ArtistID)
CONSTRAINT ArtistAK1 UNIQUE(LastName, FirstName)
);
* Implementing Cardinalities
CREATE TABLE ARTIST (
ArtistID Int NOT NULL IDENTITY(1,1),
LastName Char(25) NOT NULL,
FirstName Char(25) NOT NULL,
Nationality Char(30) NOT NULL,
DateOfBirth Numeric(4) NULL,
DateDeceased Numeric(4) NULL,
CONSTRAINT ArtistPK PRIMARY KEY(ArtistID)
CONSTRAINT ArtistAK1 UNIQUE(LastName, FirstName)
CONSTRAINT NationalityValues CHECK
(Nationality IN ('Canadian', 'English', 'French', 'German', 'Mexican', 'Russian', 'Spanish', 'United States')),
CONSTRAINT
CONSTRAINT
CONSTRAINT
);
CREATE TABLE WORK (
WorkID Int NOT NULL IDENTITY (500,1),
Title Char(35) NOT NULL,
Copy Char(12) NOT NULL,
Medium Char(35) NULL,
[Descripotion] Varchar(1000) NULL DEFAULT 'Unkown provenance',
ArtistID NOT NULL,
CONSTRAINT WorkPK PRIMARY KEY(WorkID),
CONSTRAINT WorkAK1 UNIQUE(Title, Copy),
CONSTRAINT ArtistFK FOREIGN KEY(ArtistID)
* ALTER Statement
many to many
프로젝트의 키
프라이머리키 까지만 정의를 해주고, 외래키를 정의를 하지 않은채로 시작한다. 그 다음에 얼터 테이블 모드로 외래키를 나중에 추가해준다. 꼬여있으면 에러가 나서 돌아가지 않는다. 참조 무결성 제약조건 위반으로 안돌아간다.
* Removing Tables
* SQL DML
- INSERT
INSERT INTO... SELECT 절은 정규화 할떄에 사용하기에 좋다.
- UPDATE
UPDATE CUSTOMER
SET City - 'New York City'
WHERE CustomerID = 1000;
UPDATE CUSTOMER
SET AreaCode = '333'
WHERE City = 'Denver'
- DELETE
WHERE 절을 넣게 되면, 테이블 내에 있는 모든 행을 지우게 된다.
DELETE FROM CUSTOMER
WHERE CustomerID = 1000;
- JOIN ON syntax
SELECT CUSTOMER.Name, ARTIST.Name
FROM CUSTOMER JOIN CUSTOMER_ARTIST_INT
ON CUSTOMER.CustomerID =
CUSTOMER_ARTIST_INT.CustomerID
JOIN ARTIST
ON CUSTOMER_ARTIST_INT.ArtistID =
ARTIST.ArtistID;
셋오브튜플 =/= 멀티셋. 유니온올은 멀티셋을 인정해준다
Relation JOIN ⋈
* SQL VIEW
* Trigger
- 어떤 이벤트가 발생하면 DBMS가 자동으로 실행되는 저장된 프로그램이다.
- 트리거의 타입은 세가지가 있다 : BEFORE / INSTEAD OF / AFTER
- 각각의 데이터 타입은 Insert, Update, 그리고 Delete를 위해 선언될 수 있다. 그러니 총 도합 9가지 종류의 트리거 타입을 지원한다.
* Stored Procedure
- 데이터베이스에 저장되어있고, 사용할 때에 컴파일되는 프로그램이다.
- Stored Procedure는 입력 매개변수를 받을 수 있고, 결과를 반환할 수 있다.
'TABA > Database' 카테고리의 다른 글
TABA Sep 8th (1) (1) | 2022.09.13 |
---|---|
TABA Sep 7th (1) (0) | 2022.09.07 |
TABA Sep 6th (0) | 2022.09.06 |
TABA Sep 5th (2) (0) | 2022.09.06 |
TABA Sep 5th (1) (0) | 2022.09.05 |