본문 바로가기

TABA/Database

TABA Sep 7th (2)

728x90
반응형

* 본 내용은 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는 입력 매개변수를 받을 수 있고, 결과를 반환할 수 있다.

 

 


 

 

 

 

 

 

728x90
반응형

'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