Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

6.테이블만들기

1,588 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

6.테이블만들기

  1. 1. 6 장 . 테이블 만들기 MS-SQL 2000 전문가로 가는 지름길 1 권 SQL Study(café.naver.com/endofdb) 김광중 (visualwizard@ncsoft.com)
  2. 2. 목차 1. 데이터 베이스 개체 2. 테이블 만들기 3. 테이블 수정하기 4. 그 외
  3. 3. 1. 데이터 베이스 개체 데이터 베이스 개체란 ??? 데이터 베이스에 존재하는 모든 것 . 테이블 , 뷰 , 자료형 , 색인 , 저장 프로시저 , 트리거 , 디폴트 , 규칙
  4. 4. 1. 데이터 베이스 개체 테이블 : 레코드의 집합 . 각 레코드는 하나 이상의 컬럼으로 구성 뷰 : 기존 테이블에 대해 재구성한 가상의 테이블 색인 : 레코드를 쉽게 찾도록 하는 테이블에 대한 부가 정보 저장프로시저 : 미리 컴파일된 SQL 문장들의 집합 트리거 : 테이블 데이터의 변경에 따라 자동으로 수행되는 프로시저 디폴트 : 값을 설정하지 않았을 때 , 자동으로 입력되는 값 ( 테이블과 독립적 ) 규칙 : 각 컬럼의 데이터에 대한 조건 ( 제약조건과는 다르다 . 역시 테이블과 독립적 )
  5. 5. 1. 데이터 베이스 개체 개체에 이름 붙이기 . williamc1 . pubs . dbo . titles 서버 이름 . 데이터베이스 이름 . 오너 이름 . 오브젝트 이름
  6. 6. 1. 데이터 베이스 개체 SELECT * FROM williamc1 . pubs . dbo . titles 서버 이름 . 데이터베이스 이름 . 오너 이름 . 오브젝트 이름
  7. 7. 1. 데이터 베이스 개체 SELECT * FROM williamc1 . pubs . dbo . titles 서버 이름 . 데이터베이스 이름 . 오너 이름 . 오브젝트 이름 현재 접속해서 사용하고 있는 서버 와 개체 ( 테이블 ) 가 있는 서버 가 같다면 이름 생략 가능 SELECT * FROM pubs . dbo . titles
  8. 8. 1. 데이터 베이스 개체 SELECT * FROM pubs . dbo . titles 데이터베이스 이름 . 오너 이름 . 오브젝트 이름 현재 접속해서 사용하고 있는 DB 와 개체 ( 테이블 ) 가 있는 DB 가 같다면 이름 생략 가능 use pubs ; 이름이 pubs 인 DB 에 접속 . SELECT * FROM dbo . titles ;pubs DB 안의 titles 테이블을 조회
  9. 9. 1. 데이터 베이스 개체 SELECT * FROM dbo . titles 오너 이름 . 오브젝트 이름 현재 로그온 한 사용자가 오너 이거나 dbo 라면 생략할 수 있다 . SELECT * FROM titles ; dbo 는 생략 가능
  10. 10. 1. 데이터 베이스 개체 PARSENAME 함수는 지정된 이름의 개체가 있는지 여부를 나타내지 않으며 지정된 개체 이름에서 지정된 부분만 반환 합니다 PARSENAME( ‘object_name’ , object_piece) 1 = 개체 이름 2 = 소유자 이름 3 = 데이터베이스 이름 4 = 서버 이름 SELECT PARSENAME(‘pubs..authors’, 4 ) as ‘Server Name’
  11. 11. 1. 데이터 베이스 개체 PARSENAME 함수의 다른 용도 http://blog.naver.com/borum81?Redirect=Log&logNo=60047054481
  12. 12. 2. 테이블 만들기 테이블 만드는 방법들 <ul><li>T-SQL( 스크립트 ) 을 이용하여 생성 </li></ul><ul><li>Enterprise Manager (tool) 을 이용하여 생성 </li></ul>
  13. 13. 2. 테이블 만들기 테이블 만드는 방법들 <ul><li>T-SQL( 스크립트 ) 을 이용하여 생성 </li></ul>CREATE TABLE [ dbname.[owner]. | owner. ] table_name ( { <column_definition> | <computed_column_definition> | <colum_set_definition> } [ <table_contraint> ] [ , … n ] ) [ ON { filegroup | DEFAULT } [ TEXTIMAGE_ON http://msdn.microsoft.com/ko-kr/library/ms174979.aspx
  14. 14. 2. 테이블 만들기 테이블 만드는 방법들 <ul><li>T-SQL( 스크립트 ) 을 이용하여 생성 </li></ul>CREATE TABLE table_name ( id INT NOT NULL , name CHAR(10) NULL ) <column_definition> ::= column_name <data_type> [ FILESTREAM ]   [ COLLATE collation_name ] [ NULL | NOT NULL ] [ [ CONSTRAINT constraint_name ] DEFAULT constant_expression ] | [ IDENTITY [ ( seed ,increment ) ] [ NOT FOR REPLICATION ] ] [ ROWGUIDCOL ] [ <column_constraint> [ ...n ] ]      [ SPARSE ] http://msdn.microsoft.com/ko-kr/library/ms174979.aspx
  15. 15. 2. 테이블 만들기 널 값 허용 여부 : NULL / NOT NULL ANSI null default SET ANSI_NULL_DFLT_ON
  16. 16. 3. 테이블 수정하기 테이블에 컬럼 추가하기 ALTER TABLE table_name ADD new_column VARCHAR(20) NULL 컬럼을 추가 시 NOT NULL 은 불가능 하지만 , 데이터베이스에 DEFAULT 제약 이 걸려있다면 가능 하다 .
  17. 17. 3. 테이블 수정하기 테이블에 컬럼 변경하기 ALTER TABLE table_name ALTER COLUMN column_name TYPE NULL 컬럼의 타입을 변경할 때는 자료 변환이 가능해야 한다 .
  18. 18. 3. 테이블 수정하기 테이블에 컬럼 삭제하기 ALTER TABLE table_name DROP COLUMN column_name
  19. 19. 3. 테이블 수정하기 테이블 삭제하기 DROP TABLE table_name 테이블이 사용중이거나 , 다른 테이블에 의해 참조되고 있는 경우 삭제할 수 없다 . 테이블이 삭제된다고 그와 관련된 뷰 or 프로시져 들도 삭제되지는 않는다 .
  20. 20. 3. 테이블 수정하기 테이블 내용 모두 비우기 TRUNCATE TABLE table_name 테이블의 모든 행을 제거하는 구문 DELETE 구문은 DML TRUNCATE 구문은 DDL DDL 은 실행 시 바로 DB 에 내용이 반영 DML 은 버퍼상에 명령어를 넣은 후 실행 즉 , COMMIT 이 되어야 실제 반영
  21. 21. 4. 그 외 테이블에 기본 키 설정하기 <ul><li>PRIMARY KEY = UNIQUE + NOT NULL </li></ul><ul><li>테이블 생성 시 기본 키 설정 </li></ul><ul><li>ALTER TABLE 로 기본 키 설정 </li></ul><ul><li>EM 에서 만들거나 수정 </li></ul>
  22. 22. 4. 그 외 시스템 스토어드 프로시져 Sp_help : 개체에 대한 정보를 보여줌 Sp_helpconstraint : 주어진 테이블에 대한 제약을 보여줌 Sp_tables : 테이블 정보를 보여줌 Sp_columns : 테이블의 컬럼 정보들을 보여줌
  23. 23. 끝 QnA

×