오전 10:49

1. 시스템 제공 데이터 형

 

SQL Server에서 제공하는 Data Type은 보시는 표와 같습니다.

Data 종류

Data Type

Byte 크기

ANSI 호환 Type

문자열

Char[(n)]

0 ~ 8000

Character[(n)]

 

Varchar[(n)]

0 ~ 8000

Char VARYING[(n)]

Character

VARYING[(n)]

 

Text

0~2GB

-

문자열(유니코드)

nchar[(n)]

 

0~8000

 

nvarchar[(n)]

 

0~8000(4000 문자)

 

ntext

 

0~2GB

정수형

Int

4

Integer

 

Samllint

2

-

 

Tinyint

1

-

고정소수점

Numeric[(p[,s])]

2~17

 

 

Decimal[(p[,s])]

2~17

Dec

부동소수점

Float[(n)]

8

Double precision

Float[(n)] : n 8 ~15 인 경우

 

Real

4

Float[(n)] : n 1 ~7인 경우

날짜형

Datetime

8

-

 

Smalldatetime

4

-

화폐형

Money

8

-

 

Smallmoney

4

-

이진형

Binary

0~8000

-

 

Varbinary

0~8000

Binary VARYING[(n)]

 

Image

0~2GB

-

기타

Cursor

-

-

 

Uniqueidentifier

16

-

 

Timestamp

8

-

 

Bit

1

-

데이터 형

2. 사용자 정의 데이터 형

sp_addtype [@typename =] type, 

                  [@phystype =] system_data_type  

                  [, [@nulltype =] 'null_type']

  • @typename : 사용자정의 Data Type의 명칭
  • @phystype : System에서 제공하는 Data Type Data의 길이를 문자열로 작성
  • @nulltype : NULL 유무에 대한 설정

sp_droptype [@typename =] 'type'


3. 테이블 생성과 삭제

) 테이블  :

  • Data를 저장하는 틀
  • Column Row로 구성
  • 하나의 Database 2십억 개의 Table 생성이 가능
  • Table 1,024개의 Column을 생성

나) 테이블 생성

실습: http://www.mssql.org/LectureSQL/



SELECT : 반환할 Column에 대한 내역을 기술하는 부분

FROM : 어떠한 Table Data를 반환할 것인지의 Table명을 기술하는 부분

WHERE : Table에 있는 Row의 반환에 대한 제약을 기술하는 부분

IN과 리스트:   특정지역이 여러 곳이라면

우편번호 = OR 우편번호 = 대신 Where 우편번호 IN("1","2")

LIKE:

_

어떠한 한 문자라도 오는 경우.

%

어떠한 문자라도 모두 다 포함

[]

[]안의 있는 모든 문자

[^]

[]안에 있는 문자를 제외한 모든 문자


Identity 속성

  • 식별을 위한 Column
  • 제약사항
    • Tinyint, smallint, int, decimal, numeric Data Type에만 지정이 가능
    • Table 당 하나 이상의 Identity Column 생성 불가능
    • Identity Column에는 DEFAULT Option을 지정할 수 없음
    • ID 초기값이나 ID 증가값을 지정하여 주어야만 함
    • 기본값은 (1, 1)

Timestamp

  • SQL Server에서 기본적으로 값을 지정하여 입력
  • SQL Server 내에서 유일한 값으로 차례대로 증가하면서 생성
  • 8byte의 크기를 가지는 binary 형태로 생성
  • SQL Server 내에서 사용되는 것이 일반적

Default

해당 Column에 반드시 값이 입력되어야 하면서 특정한 값이 대부분인 경우 또는 대부분의 값이 정해져 있는 경우에는 Default Column을 지정하고, 값을 부여 하면, 일일이 값을 지정하여 입력하지 않더라도 SQL Server가 기본값으로 지정한 값을 입력


IS ROWGUID

IS ROWGUID uniqueidentifier, 즉 전역 식별 Column을 의미

 

Insert with Nested SELECT Statements

INSERT … VALUES 구문과 다른 점은 VALUES 대신에 SELECT 문장이 온다라는 점입니다. 






INSERTSELECT 구문의 예 #1

Constraint 강제 마지막 Column에 DATEPART라는 구문이 보입니다. 이는 SQL Server에서 제공하는 Built-in Function입니다.(좀 더 향상된 질의)


3. SELECT INTO Statements and Temporary Table

SELECT…INTO구문은 SELECT문에 의해서 생성된 결과가 반환되는 것이 아니라, Database내에 새로운 Table로 생성되어 집니다. 새로이 생성되는 Table명은 INTO구문 다음에 table_name에 기술하여주면 됩니다.

 데이터베이스 옵션 변경


SELECTINTO의 예제 #1



SELECTINTO의 예제 #2

 

SELECT…INTO구문은 새로운 Table을 생성하는 문장입니다. 따라서 두 번째 예제의 문장을 수행하면, 다시 ‘영화LIST’라는 Table을 생성하려 하기 때문에 에러가 발생되는 것입니다.

 

DELETE 예제 #1

WHERE절이 없다는 것은 DELETE문장을 실행하는 데 있어서 아무런 조건이 없다는 것입니다. 따라서 예제의 첫번째 문장은 Test1 Table의 모든 Data를 삭제하는 결과를 나타내게 됩니다.

DELETE 예제 #2

WHERE절을 포함하고 있는 문장입니다. TEST2 Table에서 일련번호가 1인 Data를 삭제하는 문장입니다. 

 

 

Truncate Table

WHERE절이 없는 DELETE문장과 같은 기능을 수행합니다. 즉, 이 문장을 이용해서 Table의 모든 Data를 삭제할 수 있습니다. Truncate구문을 이용하여 삭제하였을 경우에는 LOG에 기록이 되지 않습니다. 

빠른 수행속도를 가지지만, LOG에 의해서 작업에 대한 복구가 허용되지 않습니다. 따라서 Truncate에 의한 작업이 확실하지 않다면, 반드시 백업을 받아 놓으셔야만 합니다.

 


'RDBMS(mysql,mssql)' 카테고리의 다른 글

[MSSQL] 8.데이터 검색(Query문)  (0) 2018.08.01
[MSSQL] 7.Data 무결성 (Integrity)  (0) 2018.08.01
[MSSQL] 5.Database 구성요소  (0) 2018.07.30
[MSSQL] 4.T-SQL  (0) 2018.07.30
[MSSQL] 3.SQL Server  (0) 2018.07.28

+ Recent posts