140 likes | 327 Views
테이블 만들기. < 실습 1> SSMS 에서 테이블 생성. 실습 목표 SSMS 의 개체탐색기에서 테이블을 생성하고 , 행 데이터를 입력하는 방법을 익힌다 . 입력할 tableDB. < 실습 2> T-SQL 로 테이블 생성. 실습 목표 T-SQL 을 이용해서 테이블을 생성하는 방법을 익힌다 . NULL 값에 대한 활용법을 파악한다 . 기본키 및 외래키의 설정법을 확인한다 . 테이블 생성 구문 형식 CREATE TABLE
E N D
테이블 만들기 <실습1> SSMS에서 테이블 생성 • 실습 목표 • SSMS의 개체탐색기에서 테이블을 생성하고, 행 데이터를 입력하는 방법을 익힌다. • 입력할 tableDB
<실습2> T-SQL로 테이블 생성 • 실습 목표 • 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" } ] [ ; ]
제약 조건 (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,
제약 조건 (Constraint) (2) • 외래 키 (Foreign Key) 제약 조건 • 기본 개념 • 두테이블간의 관계를 선언함으로써 데이터의 무결성을 보장해 줌 • 외래키 관계를 설정하게 되면 하나의 테이블이 다른 테이블에 의존하게 된다 • ‘외래키 테이블’에 데이터를 입력할 때는 꼭 ‘기준 테이블’을 참조해서 입력하므로, ‘기준 테이블’에 이미 데이터가 존재해야만 한다 • 외래키 설정 예 CREATE TABLE userTbl ( userID nchar(8) NOT NULL PRIMARY KEY , ...... ) GO CREATE TABLE buyTbl ( num int NOT NULL PRIMARY KEY, userid nchar(8) NOT NULL FOREIGN KEY REFERENCES userTbl(userID) , ......
제약 조건 (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)
제약 조건 (Constraint) (4) • Check 제약 조건 • 기본 개념 • 입력되는 데이터를 점검하는 기능. • Check 제약조건이 설정되면 제약조건에 위배되는 데이터는 입력 안됨. • 예로 출생년도가 1900년 이후이고 현재 시간 이전이어야 하는 조건을 지정. • Check 설정 예 ALTER TABLE userTbl ADD CONSTRAINT CK_birthYear CHECK (birthYear >= 1900 AND birthYear <= YEAR(GETDATE())) • NULL 값 허용 • 기본 개념 • NULL값을 허용하려면 ‘NULL’ 을 허용하지 않으려면 ‘NOT NULL’을 사용. • Primary Key의 경우 생략하면 자동으로 ‘NOT NULL’이 된다.
제약 조건 (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','우지운‘)
임시 테이블 <실습3> 임시테이블 생성 및 사용 • 기본 개념 • 임시로 잠깐 동안 사용되는 테이블. • 테이블이름 앞에 “#’ 또는 “##”을 붙이면 임시테이블로 생성 • 임시테이블은 tempdb에 생성될 뿐, 나머지 사용법 등은 일반 테이블과 동일하게 사용 • “#”을 앞에 붙인 테이블은 로컬임시테이블 , “##”을 앞에 붙인 테이블은 전역임시테이블 • 임시테이블이 삭제되는 시점 • 사용자가 DROP TABLE 로 직접 삭제 • SQL Server가 재시작되면 삭제됨 • 로컬임시테이블의 경우, 생성한 사용자의 연결이 끊기면 삭제됨 • 전역임시테이블의 경우, 생성한 사용자의 연결이 끊기고 이 테이블을 사용중인 사용자가 없을 때 삭제됨 • 실습 목표 : 임시테이블의 생성 및 소멸시점을 확인한다.
테이블의 삭제 및 수정 • 테이블의 삭제 • 구문 형식 • 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제약조건이름
<실습4> 테이블의 제약조건 및 수정방법 • 실습 목표 • 테이블의 제약조건에 대해서 이해한다. • 테이블의 수정방법에 대해서 익힌다 • 제약조건 지정 예 • ALTER TABLE userTbl ALTER COLUMN userID NCHAR(8) NOT NULL • ALTER TABLE userTbl ADD CONSTRAINT PK_userID PRIMARY KEY (userID) • ALTER TABLE buyTbl ADD CONSTRAINT PK_num PRIMARY KEY (num)
데이터베이스 개체 • 데이터베이스 개체의 정식 명칭 • 구문 형식 • 서버이름.데이터베이스이름.스키마이름.개체이름 • 사용 예 • SELECT * FROM BRAIN.tableDB.dbo.userTbl • 스키마 구성도
외부 서버에 있는 개체로의 접근 <실습5> 다른 서버의 테이블로 접근 • 실습 목표 • 외부 서버에 있는 데이터베이스 개체에 접근하는 방법을 익힌다. • SQL 실습 예제 EXEC sp_addlinkedserver @server='SECOND', -- 앞으로 사용될 서버이름(원하는 이름으로 지어줌) @srvproduct='SQLServer', -- 접속할 서버의 종류. @provider='SQLNCLI', -- SQL Native Client 약자 @datasrc='BRAIN\SECOND' -- 접속할 서버 인스턴스
뷰(View)(1) • 뷰의 개념 • SELECT문으로 구성된 데이터베이스 개체. • 가상의 테이블 (생성한 후에는 테이블과 동일하게 취급) • 뷰 생성과 사용 예제 CREATE VIEW v_userTbl AS SELECT userid, name, addr FROM userTbl GO SELECT * FROM v_userTbl -- 뷰를 테이블이라고 생각해도 무방 • 뷰의 작동 방식
뷰(View)(2) <실습6> 뷰를 생성하고 활용하자. • 뷰의 장점 • 보안에 도움이 된다. • 복잡한 쿼리를 단순화 시킬 수 있다. • 뷰의 종류 • 표준 뷰 : 한 개 또는 그 이상의 테이블을 이용해서 만든 뷰 • 분할 뷰 : 한대 또는 여러대의 서버에 있는 여러 테이블을 조인해서 하나의 테이블처럼 보이도록 하는 뷰 • 인덱싱된 뷰 : 인덱스를 구성하기 위한 실제 데이터를 가지고 있는 뷰 • 시스템 뷰 : 시스템의 상태를 파악하기 위해서 SQL Server 가 제공해 주는 뷰 • 실습 목표 • 뷰의 생성/삭제/수정 방법을 익힌다. • 뷰를 통한 데이터의 수정 방법을 확인한다. • 두개 이상의 테이블이 관련된 복합뷰를 생성한다.