I T./MS SQL Server 2005

SQL server 2003 (4) - create table

MainGT 2009. 12. 9. 04:42

USE master
GO
DROP DATABASE MYDBOO
CREATE DATABASE MyDB00

USE MYDB00
GO
CREATE TABLE MYTABLE01
(
  ID      VARCHAR(10) NOT NULL PRIMARY KEY,   <----중복불가, 데이터무결성, 제약조건
  NAME    VARCHAR(10) NULL,
  ADDRESS VARCHAR(50) NULL,
  TEL     VARCHAR(14) NULL,
  AGE     TINYINT     DEFAULT 0,
  REGDATA DATETIME    DEFAULT GETDATE()
) ON[PRIMARY]

SELECT*FROM MYTABLE01

EXEC SP_HELP MYTABLE01

SELECT NEWID()
분홍색은 함수


테이블 열에 기본값을 지정하는 예
USE MYDB00
GO
EXEC SP_ADDTYPE NAMETYPE,'VARCHAR(11)','NOT NULL'
EXEC SP_ADDTYPE BIRTHDAY,DATETIME, 'NULL'
EXEC SP_ADDTYPE TELEPHONE,'VARCHAR(24)','NOT NULL'
EXEC SP_ADDTYPE FAX,'VARCHAR(24)','NULL'

CREATE TABLE MYTABLE02
(
  ID      VARCHAR(10) NOT NULL PRIMARY KEY,
  NAME    VARCHAR(10) NULL,
  ADDRESS VARCHAR(50) NULL,
  TEL     VARCHAR(14) DEFAULT 'XXX-XXXX',
  AGE     TINYINT     DEFAULT 0,
  REGDATA DATETIME    DEFAULT GETDATE()
)
SP_HELP MYTABLE02

 
기본값은 데이터 추가시 열에 값을 지정하지 않을 경우 자동으로 입력되는 값이다.
 SELECT*FROM MYTABLE02

INSERT INTO MYTABLE02 VALUES ('A001','옥주현','서울','010-123-1234',30,'2009/08/12')
INSERT MYTABLE02 (ID,NAME,ADDRESS)VALUES('A1234','김예린','서울시 마포구')


USE MYDB00
GO
CREATE TABLE MYTABLE03
(
  PCODE     VARCHAR(10)  NOT NULL PRIMARY KEY,
  PNAME     VARCHAR(50)   NULL,
  UNITPRICE MONEY       DEFAULT 0,
  QTY       INT        DEFAULT 0,
  PRICE AS (UNITPRICE*QTY),
  REGDATE   DATETIME    DEFAULT GETDATE(),
  UESRNAME AS USER_NAME()
)

EXEC SP_HELP MYTABLE03

테이블에 행을 추가하여 계산될 열의 값을 확인한다.
INSERT MYTABLE03 (PCODE,PNAME,UNITPRICE,QTY) VALUES('090912','시원한냉장고',54000,7)
INSERT MYTABLE03 (PCODE,PNAME,UNITPRICE,QTY) VALUES('090812','뜨거운냉장고',24000,5)

SELECT*FROM MYTABLE03


USE MYDB00
GO
CREATE TABLE MYTABLE05
(
  NUM   INT            IDENTITY(1, 1) NOT NULL PRIMARY KEY,
  NAME    VARCHAR(20)  NOT NULL,
  ADDRESS VARCHAR(50)  NOT NULL,
  TEL     TELEPHONE   NULL,
  AGE     TINYINT     NULL,
  REGDATA DATETIME    DEFAULT GETDATE()
)

EXEC SP_HELP MYTABLE05

SELECT*FROM MYTABLE05

테이블에 데이터 넣기
INSERT MYTABLE05 VALUES('김경민','서울시 마포구','456-4567',35,'2009-08-12')
INSERT MYTABLE05 (NAME, ADDRESS, TEL, AGE) VALUES('김은희','서울시 강남구','654-1237',32)
INSERT MYTABLE05 (NAME, ADDRESS, TEL, AGE) VALUES('김예린','서울시 서초구','512-1236',2)

SELECT*FROM MYTABLE05


@@IDENTITY 함수를 사용하여 사용된 IDENTITY값을 확인할 수 있다.
SELECT @@IDENTITY AS 사용된값


IDENTITYCOL 키워드는 테이블에서 IDENTITY 속성이 지정된 열을 의미한다.
SELECT*FROM MYTABLE05 WHERE NUM=2

DELETE MYTABLE05 WHERE NUM=2
DELETE MYTABLE05 WHERE IDENTITYCOL=2

SELECT*FROM MYTABLE05

지워진 테이블 사이에 테이블 넣기...
SET IDENTITY_INSERT MYTABLE05 ON
INSERT MYTABLE05 (NUM,NAME, ADDRESS, TEL, AGE) VALUES(2,'노홍철','서울시 노원구','123-4567',34)
SET IDENTITY_INSERT MYTABLE05 OFF
SELECT*FROM MYTABLE05

 


CREATE TABLE MYTABLE07
(
  PCODE    UNIQUEIDENTIFIER DEFAULT NEWID(),
  PNAME    VARCHAR(50)     NOT NULL,
  UNITPRICE  MONEY     DEFAULT 0,
  QTY    INT       DEFAULT 0,
  PRICE AS (UNITPRICE*QTY),
  REGDATE   DATETIME   DEFAULT GETDATE()
)

INSERT MYTABLE07 (PNAME, UNITPRICE, QTY)VALUES('시원한냉장고',54000,7)
INSERT MYTABLE07 (PNAME, UNITPRICE, QTY)VALUES('잘나가는자동차',43000000,3)
INSERT MYTABLE07 (PCODE,PNAME, UNITPRICE, QTY)VALUES(NEWID(),'시원한커피',430,23)
SELECT*FROM MYTABLE07


CREATE TABLE MYTABLE08
(
   NUM     INT     IDENTITY (1, 1) NOT NULL PRIMARY KEY,
   NAME     VARCHAR(20)  NOT NULL,
   ADDRESS  VARCHAR(50)  NOT NULL,
   TEL       TELEPHONE   NULL,
   REGDATE   DATETIME   DEFAULT GETDATE()
)

EXEC SP_HELP MYTABLE08

테이블에서 NAME열의 정의를 바꾸는 예
ALTER TABLE MYTABLE08
ALTER COLUMN NAME VARCHAR(10) NULL
GO
EXEC SP_HELP MYTABLE08


CREATE TABLE MYTABLE09
(
   NAME     VARCHAR(20)  NOT NULL,
   ADDRESS  VARCHAR(50)  NOT NULL
)
GO
INSERT MYTABLE09(NAME,ADDRESS)VALUES('이상철','수원시 어딘가')
INSERT MYTABLE09(NAME,ADDRESS)VALUES('김규필','서울시 어딘가')
INSERT MYTABLE09(NAME,ADDRESS)VALUES('안순형','파주시 어딘가')
SELECT*FROM MYTABLE09

테이블에 기본키를 갖는 열을 추가한다.
추가되는 열에 IDENTITY 속성을 정의하여 일련번호가 자동으로 입력되도록 한다.
ALTER TABLE MYTABLE09
  ADD NUM INT IDENTITY(1, 1) PRIMARY KEY
GO
SELECT*FROM MYTABLE09
SELECT NUM,NAME,ADDRESS FROM MYTABLE09