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
뇌를 자극하는 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)
뇌를 자극하는 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 로 테이블 생성
뇌를 자극하는 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,
뇌를 자극하는 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) ,......
뇌를 자극하는 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)
뇌를 자극하는 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’ 이 된다 .
뇌를 자극하는 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',' 우지운‘ )
뇌를 자극하는 SQL Server 2005
8 장 . 테이블과 뷰
8 / 19
임시 테이블
• 기본 개념• 임시로 잠깐 동안 사용되는 테이블 .• 테이블이름 앞에 “ #’ 또는 “ ##” 을 붙이면 임시테이블로 생성• 임시테이블은 tempdb 에 생성될 뿐 , 나머지 사용법 등은 일반 테이블과
동일하게 사용• “#” 을 앞에 붙인 테이블은 로컬임시테이블 , “##” 을 앞에 붙인 테이블은
전역임시테이블
• 임시테이블이 삭제되는 시점• 사용자가 DROP TABLE 로 직접 삭제• SQL Server 가 재시작되면 삭제됨 • 로컬임시테이블의 경우 , 생성한 사용자의 연결이 끊기면 삭제됨• 전역임시테이블의 경우 , 생성한 사용자의 연결이 끊기고 이 테이블을
사용중인 사용자가 없을 때 삭제됨
– 실습 목표 : 임시테이블의 생성 및 소멸시점을 확인한다 .
< 실습 3> 임시테이블 생성 및 사용
뇌를 자극하는 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 제약조건이름
뇌를 자극하는 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> 테이블의 제약조건 및 수정방법
뇌를 자극하는 SQL Server 2005
8 장 . 테이블과 뷰
11 / 19
데이터베이스 개체
• 데이터베이스 개체의 정식 명칭– 구문 형식
• 서버이름 . 데이터베이스이름 . 스키마이름 . 개체이름– 사용 예
• SELECT * FROM BRAIN.tableDB.dbo.userTbl
• 스키마 구성도 서버 (BRAIN)
디폴트 스키마(dbo)
테이블 (Department)
스키마(HumanResources)
데이터베이스 (AdventureWorks)
테이블 (Employee)
테이블 (aaa)
기타 개체들 ……
테이블 (AWBuildVersion)
테이블 (DatabaseLog)
테이블 (aaa)
기타 개체들 ……
뇌를 자극하는 SQL Server 2005
8 장 . 테이블과 뷰
12 / 19
외부 서버에 있는 개체로의 접근
• 실습 목표– 외부 서버에 있는 데이터베이스 개체에 접근하는 방법을 익힌다 .
• SQL 실습 예제EXEC sp_addlinkedserver @server='SECOND', -- 앞으로 사용될 서버이름 ( 원하는 이름으로 지어
줌 ) @srvproduct='SQLServer', -- 접속할 서버의 종류 . @provider='SQLNCLI', -- SQL Native Client 약자 @datasrc='BRAIN\SECOND' -- 접속할 서버 인스턴스
< 실습 5> 다른 서버의 테이블로 접근
뇌를 자극하는 SQL Server 2005
8 장 . 테이블과 뷰
13 / 19
뷰 (View) (1)
• 뷰의 개념– SELECT 문으로 구성된 데이터베이스 개체 .– 가상의 테이블 ( 생성한 후에는 테이블과 동일하게 취급 )– 뷰 생성과 사용 예제
CREATE VIEW v_userTblAS
SELECT userid, name, addr FROM userTblGOSELECT * FROM v_userTbl -- 뷰를 테이블이라고 생각해도 무방
• 뷰의 작동 방식
사용자
SELECT 문장
뷰 쿼리 실행
결과
조회 또는 변경
테이블
데이터
쿼리 결과 값
뇌를 자극하는 SQL Server 2005
8 장 . 테이블과 뷰
14 / 19
뷰 (View) (2)
• 뷰의 장점– 보안에 도움이 된다 .– 복잡한 쿼리를 단순화 시킬 수 있다 .
• 뷰의 종류– 표준 뷰 : 한 개 또는 그 이상의 테이블을 이용해서 만든 뷰– 분할 뷰 : 한대 또는 여러대의 서버에 있는 여러 테이블을 조인해서 하나의
테이블처럼 보이도록 하는 뷰– 인덱싱된 뷰 : 인덱스를 구성하기 위한 실제 데이터를 가지고 있는 뷰– 시스템 뷰 : 시스템의 상태를 파악하기 위해서 SQL Server 가 제공해 주는 뷰
–
• 실습 목표– 뷰의 생성 /삭제 /수정 방법을 익힌다 .– 뷰를 통한 데이터의 수정 방법을 확인한다 .– 두개 이상의 테이블이 관련된 복합뷰를 생성한다 .
< 실습 6> 뷰를 생성하고 활용하자 .