14
뇌뇌 뇌뇌뇌뇌 SQL Server 2005 8 뇌 . 뇌뇌뇌뇌 뇌 1 / 19 < 뇌뇌 1> SSMS 뇌뇌 뇌뇌뇌 뇌뇌 뇌뇌 뇌뇌 SSMS 뇌 뇌뇌뇌뇌뇌뇌뇌 뇌뇌뇌뇌 뇌뇌뇌뇌 , 뇌 뇌뇌뇌뇌 뇌뇌뇌뇌 뇌뇌뇌 뇌뇌뇌 . • 뇌뇌뇌 tableDB 뇌뇌뇌 뇌뇌뇌 tableD B 0000000 9999999 8888888 6666666 4444444 3333333 2222222 1111111 전전전전 181 011 뇌뇌 1983 뇌뇌뇌 PJS 185 019 뇌뇌 1975 뇌뇌뇌 C JC 178 018 뇌뇌 1979 뇌뇌뇌 SJK 182 011 뇌뇌 1978 뇌뇌뇌 SKH 178 뇌뇌 1983 뇌뇌뇌 LYP 183 016 뇌뇌 1977 뇌뇌뇌 KNI 182 뇌뇌 1979 뇌뇌뇌 AJH 179 011 뇌뇌 1983 뇌뇌뇌 LC S 179 019 뇌뇌 1986 뇌뇌뇌 JJJ 178 011 뇌뇌 1986 뇌뇌뇌 PJY 전전 전전 전전 전전 전전 전전전 2 30 뇌뇌뇌 C JC 10 1 15 뇌뇌 SKH 11 12 9 8 7 6 5 4 3 2 1 전전 뇌뇌 뇌뇌 뇌뇌 뇌뇌 뇌뇌 뇌뇌 뇌뇌 뇌뇌 전전 2 30 뇌뇌뇌 PJY 2 30 뇌뇌뇌 C JC 1 50 뇌뇌뇌 SKH 2 15 SKH 5 15 AJH 10 80 뇌뇌뇌 C JC 3 50 뇌뇌뇌 PJY 5 200 뇌뇌뇌 C JC 1 200 뇌뇌뇌 LC S 1 1000 뇌뇌뇌 PJY 전전 전전 전전전 전전전 PK FK PK 뇌 뇌 뇌 뇌 뇌 (userTbl) 뇌 뇌 뇌 뇌 뇌 (buyTbl)

테이블 만들기

  • Upload
    sibley

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

테이블 만들기. < 실습 1> SSMS 에서 테이블 생성. 실습 목표 SSMS 의 개체탐색기에서 테이블을 생성하고 , 행 데이터를 입력하는 방법을 익힌다 . 입력할 tableDB. < 실습 2> T-SQL 로 테이블 생성. 실습 목표 T-SQL 을 이용해서 테이블을 생성하는 방법을 익힌다 . NULL 값에 대한 활용법을 파악한다 . 기본키 및 외래키의 설정법을 확인한다 . 테이블 생성 구문 형식 CREATE TABLE - PowerPoint PPT Presentation

Citation preview

Page 1: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

1 / 19

< 실습 1> SSMS 에서 테이블 생성

• 실습 목표– SSMS 의 개체탐색기에서 테이블을 생성하고 , 행

데이터를 입력하는 방법을 익힌다 .

• 입력할 tableDB

테이블 만들기

tableDB

0000000

9999999

8888888

6666666

4444444

3333333

2222222

1111111

전화번호

181011서울1983박지성PJ S

185019제주1975최진철CJ C

178018경기1979송종국SJ K

182011서울1978설기현SKH

178전북1983이영표LYP

183016경북1977김남일KNI

182강원1979안정환AJ H

179011인천1983이천수LCS

179019충북1986조재진J J J

178011경기1986박주영PJ Y

신장국번지역생년이름아이디

230운동화CJ C10

115서적책SKH11

12

9

8

7

6

5

4

3

2

1

순번

의류

서적

서적

전자

의류

전자

전자

전자

분류

230운동화PJ Y

230운동화CJ C

150청바지SKH

215책SKH

515책AJ H

1080메모리CJ C

350청바지PJ Y

5200모니터CJ C

1200모니터LCS

11000노트북PJ Y

수량단가물품명아이디

PK

FKPK

회원테이블(userTbl) 구매테이블(buyTbl)

Page 2: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

2 / 19

• 실습 목표– T-SQL 을 이용해서 테이블을 생성하는 방법을 익힌다 .– NULL 값에 대한 활용법을 파악한다 .– 기본키 및 외래키의 설정법을 확인한다 .

• 테이블 생성 구문 형식CREATE TABLE [ database_name . [ schema_name ] . | schema_name . ]

table_name ( { <column_definition> | <computed_column_definition> } [ <table_constraint> ] [ ,...n ] ) [ ON { partition_scheme_name ( partition_column_name ) | filegroup | "default" } ] [ { TEXTIMAGE_ON { filegroup | "default" } ] [ ; ]

< 실습 2> T-SQL 로 테이블 생성

Page 3: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

3 / 19

제약 조건 (Constraint) (1) • 데이터의 무결성을 지키기 위한 제한된 조건• 즉 , 특정 데이터를 입력할 때 무조건 입력되는 것이 아니라 ,

어더한 조건을 만족했을 때에만 입력되도록 제한하는 것 .

• 기본 키 (Primary Key) 제약 조건– 기본 개념

• 테이블의 각 행들을 구분할 수 있는 식별자• 중복될 수 없고 , NULL 값이 입력될 수 없다 .• 기본키로 설정하면 자동으로 클러스터형 인덱스가 생성됨• 기본키는 하나의 열 또는 여러 개의 열을 합쳐서 설정할 수는 있으나 , 한 개만

설정할 수 있다 .

– 기본 키 설정 예• CREATE TABLE userTbl

( userID nchar(8) NOT NULL PRIMARY KEY, name nvarchar(10) NOT NULL,• CREATE TABLE userTbl

( userID nchar(8) NOT NULL CONSTRAINT PK_userID PRIMARY KEY ,

name nvarchar(10) NOT NULL,

Page 4: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

4 / 19

제약 조건 (Constraint) (2)

• 외래 키 (Foreign Key) 제약 조건– 기본 개념

• 두 테이블 간의 관계를 선언함으로써 데이터의 무결성을 보장해 줌• 외래키 관계를 설정하게 되면 하나의 테이블이 다른 테이블에 의존하게 된다• ‘ 외래키 테이블’에 데이터를 입력할 때는 꼭 ‘기준 테이블’을 참조해서

입력하므로 , ‘ 기준 테이블’에 이미 데이터가 존재해야만 한다

– 외래키 설정 예CREATE TABLE userTbl ( userID nchar(8) NOT NULL PRIMARY KEY ,......)GOCREATE TABLE buyTbl( num int NOT NULL PRIMARY KEY, userid nchar(8) NOT NULL

FOREIGN KEY REFERENCES userTbl(userID) ,......

Page 5: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

5 / 19

제약 조건 (Constraint) (3)

• Unique 제약 조건– 기본 개념

• 중복되지 않는 유일한 값을 입력해야 함 .• Primary Key 제약조건과 거의 비슷하며 차이점은 Null 값을 허용 .( 단 1

개만 )

– Unique 설정 예• CREATE TABLE userTbl

( userID nchar(8) NOT NULL PRIMARY KEY,...... email nchar(30) NULL UNIQUE)

• CREATE TABLE userTbl ( userID nchar(8) NOT NULL PRIMARY KEY, ...... email nchar(30) NULL

CONSTRAINT AK_email UNIQUE)

Page 6: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

6 / 19

제약 조건 (Constraint) (4)

• Check 제약 조건– 기본 개념

• 입력되는 데이터를 점검하는 기능 .• Check 제약조건이 설정되면 제약조건에 위배되는 데이터는 입력 안됨 .• 예로 출생년도가 1900 년 이후이고 현재 시간 이전이어야 하는 조건을 지정 .

– Check 설정 예ALTER TABLE userTbl

ADD CONSTRAINT CK_birthYearCHECK

(birthYear >= 1900 AND birthYear <= YEAR(GETDATE()))

• NULL 값 허용– 기본 개념

• NULL 값을 허용하려면 ‘ NULL’ 을 허용하지 않으려면 ‘ NOT NULL’ 을 사용 .• Primary Key 의 경우 생략하면 자동으로 ‘ NOT NULL’ 이 된다 .

Page 7: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

7 / 19

제약 조건 (Constraint) (5)

• Default 정의– 기본 개념

• 데이터를 입력하지 않았을 때 자동으로 입력되는 값을 정의하는 방법 .• 단 , 값이 직접 명기되면 DEFAULT 로 설정된 값은 무시된다 .• 예로 , 출생년도를 입력하지 않으면 그냥 현재의 연도를 입력하고 , 주소를

특별히 입력하지 않았다면 ‘서울’이 입력되도록 하는 것 .

– Default 설정 예• CREATE TABLE userTbl

( userID nchar(8) NOT NULL PRIMARY KEY, name nvarchar(10) NOT NULL, birthYear int NOT NULL DEFAULT YEAR(GETDATE()), addr nchar(4) NOT NULL DEFAULT ' 서울 ' , ……

• -- default 문은 DEFAULT 로 설정된 값을 자동 입력한다 .INSERT INTO userTbl VALUES('WJN',' 우재남 ', default, default, '019', '1231234', default)

• -- 열 이름이 명시되지 않으면 DEFAULT 로 설정된 값을 자동 입력한다INSERT INTO userTbl(userID,name) VALUES('WJW',' 우지운‘ )

Page 8: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

8 / 19

임시 테이블

• 기본 개념• 임시로 잠깐 동안 사용되는 테이블 .• 테이블이름 앞에 “ #’ 또는 “ ##” 을 붙이면 임시테이블로 생성• 임시테이블은 tempdb 에 생성될 뿐 , 나머지 사용법 등은 일반 테이블과

동일하게 사용• “#” 을 앞에 붙인 테이블은 로컬임시테이블 , “##” 을 앞에 붙인 테이블은

전역임시테이블

• 임시테이블이 삭제되는 시점• 사용자가 DROP TABLE 로 직접 삭제• SQL Server 가 재시작되면 삭제됨 • 로컬임시테이블의 경우 , 생성한 사용자의 연결이 끊기면 삭제됨• 전역임시테이블의 경우 , 생성한 사용자의 연결이 끊기고 이 테이블을

사용중인 사용자가 없을 때 삭제됨

– 실습 목표 : 임시테이블의 생성 및 소멸시점을 확인한다 .

< 실습 3> 임시테이블 생성 및 사용

Page 9: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

9 / 19

테이블의 삭제 및 수정• 테이블의 삭제

– 구문 형식• DROP TABLE 테이블이름

• 테이블 수정– 열의 추가

• ALTER TABLE 테이블이름 ADD 열이름 데이터형식– 열의 삭제

• ALTER TABLE 테이블이름 DROP COLUMN 열이름– 열의 데이터 형식 변경

• ALTER TABLE 테이블이름 ALTER COLUMN 열이름 새로운 _ 데이터형식– 열의 데이터 형식 변경

• ALTER TABLE 테이블이름 ALTER COLUMN 열이름 새로운 _ 데이터형식– 열의 제약조건 추가

• ALTER TABLE 테이블이름 ADD CONSTRAINT 제약조건이름 제약조건– 열의 제약조건 삭제

• ALTER TABLE 테이블이름 DROP CONSTRAINT 제약조건이름

Page 10: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

10 / 19

• 실습 목표– 테이블의 제약조건에 대해서 이해한다 .– 테이블의 수정방법에 대해서 익힌다

• 제약조건 지정 예

• ALTER TABLE userTblALTER COLUMN userID NCHAR(8) NOT NULL

• ALTER TABLE userTblADD CONSTRAINT PK_userID PRIMARY KEY (userID)

• ALTER TABLE buyTblADD CONSTRAINT PK_num PRIMARY KEY (num)

< 실습 4> 테이블의 제약조건 및 수정방법

Page 11: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

11 / 19

데이터베이스 개체

• 데이터베이스 개체의 정식 명칭– 구문 형식

• 서버이름 . 데이터베이스이름 . 스키마이름 . 개체이름– 사용 예

• SELECT * FROM BRAIN.tableDB.dbo.userTbl

• 스키마 구성도 서버 (BRAIN)

디폴트 스키마(dbo)

테이블 (Department)

스키마(HumanResources)

데이터베이스 (AdventureWorks)

테이블 (Employee)

테이블 (aaa)

기타 개체들 ……

테이블 (AWBuildVersion)

테이블 (DatabaseLog)

테이블 (aaa)

기타 개체들 ……

Page 12: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

12 / 19

외부 서버에 있는 개체로의 접근

• 실습 목표– 외부 서버에 있는 데이터베이스 개체에 접근하는 방법을 익힌다 .

• SQL 실습 예제EXEC sp_addlinkedserver @server='SECOND', -- 앞으로 사용될 서버이름 ( 원하는 이름으로 지어

줌 ) @srvproduct='SQLServer', -- 접속할 서버의 종류 . @provider='SQLNCLI', -- SQL Native Client 약자 @datasrc='BRAIN\SECOND' -- 접속할 서버 인스턴스

< 실습 5> 다른 서버의 테이블로 접근

Page 13: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

13 / 19

뷰 (View) (1)

• 뷰의 개념– SELECT 문으로 구성된 데이터베이스 개체 .– 가상의 테이블 ( 생성한 후에는 테이블과 동일하게 취급 )– 뷰 생성과 사용 예제

CREATE VIEW v_userTblAS

SELECT userid, name, addr FROM userTblGOSELECT * FROM v_userTbl -- 뷰를 테이블이라고 생각해도 무방

• 뷰의 작동 방식

사용자

SELECT 문장

뷰 쿼리 실행

결과

조회 또는 변경

테이블

데이터

쿼리 결과 값

Page 14: 테이블 만들기

뇌를 자극하는 SQL Server 2005

8 장 . 테이블과 뷰

14 / 19

뷰 (View) (2)

• 뷰의 장점– 보안에 도움이 된다 .– 복잡한 쿼리를 단순화 시킬 수 있다 .

• 뷰의 종류– 표준 뷰 : 한 개 또는 그 이상의 테이블을 이용해서 만든 뷰– 분할 뷰 : 한대 또는 여러대의 서버에 있는 여러 테이블을 조인해서 하나의

테이블처럼 보이도록 하는 뷰– 인덱싱된 뷰 : 인덱스를 구성하기 위한 실제 데이터를 가지고 있는 뷰– 시스템 뷰 : 시스템의 상태를 파악하기 위해서 SQL Server 가 제공해 주는 뷰

• 실습 목표– 뷰의 생성 /삭제 /수정 방법을 익힌다 .– 뷰를 통한 데이터의 수정 방법을 확인한다 .– 두개 이상의 테이블이 관련된 복합뷰를 생성한다 .

< 실습 6> 뷰를 생성하고 활용하자 .