ݺߣ

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

More Related Content

6.테이블만들기

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