이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
==================================================================================================



안녕하세요이스트럭(강동운입니다.

 

오늘은 트랜잭션에 대한이해입니다.

 

원문http://www.sqler.com/127366

 

트랜젝션에 대한 이야기 입니다. ^_^

트랜젝션에 대한 이야기는 많은 곳에서.. 이런 저런 이유로 들어 보셨을 겁니다.

프로그래밍을 하실때도 이 트랜젝션은 분명히 대단히 속도에 영향을 주는

요소 입니다.

특히나 데이터 수정이 있을 경우인 Insert, Update, Delete를 잘못 수행했을 경우

대단히 많은 문제를 줄 수 있으며.. - CPU등의 시스템은 펑펑 놀고 있는데..

SELECT의 조회 속도가 대단히 느려지는 사태가 발생하는 겁니다.

이럴때는 한번쯤 트랜젝션 처리 모듈의 문제를 어플리케이션에서 점검을 해 보셔야

하지요. - 물론 마지막쯔~음에.. 문제상황인 블러킹이나 데드락을 막는 방법과..

어플리케이션을 개발하실때.. 주의에 주의를 거듭하셔야 하는 부분도

살짝 언급을 해 드릴겁니다.

 

이 장의 이름은 트랜젝션과 잠금처리인데요..

트랜젝션은 뭘까요? ^_^

늘 그랬던 것처럼.. 군더더기 없이 깔끔하게 알아 보도록 하지요.

 

트랜젝션은 작업의 단위를 지정해 주는 중요한 부분이기 때문입니다.

 

또한 트랜젝션은 SQL구문이나 쿼리를 실제로 처리할 경우의 가장 작은 단위 입니다.!!

은행이야기를 조금 해 볼까요?

코난이 계좌에 200원이 있고....  수선이 계좌에 300원이 있다...

짤짤이에서 진 코난이가 100원을 수선이에게 잃어 200원중 100원을 온라인으로 계좌이체

를 시켜줘야 한다....

은행에사거 온라인으로 입금을 하기위해

 

 

1. 코난이 통장에서 100원을 뺌  - 코난이 통장 = 100   수선이 통장 = 200

2. 수선이 통장에 100원을 더함 - 코난이 통장 = 100   수선이 통장 = 300

 

 

 

하려고 했다...

그런데 웬일.. 정전이 나서... 1번 작업을 끝마치니 시스템이 죽었다...

"대우네 은행"에서 그당시 온라인으로 계좌 이체를 시킨 사람이 1000명이었다...

 999명과 코난이는(도합 1000)  이 문제를 어케할 것인가?

-_-;; 아마 기억하시는분들은.. MSSQL7 중급강좌의 트랜젝션 부분을 역시나..

손가락 두개로 컷 & 페이스트 한걸 아실 겁니다. -_-;;

양해하시고.. 저런 문제가 발생할 수 있지요.. !!!

 

저 내용을 우리가 사용하는 구문으로 살짝 돌려 본다면 이런 이야기가 될지 모릅니다.

 

 

 

update 계좌 set 금액 = 금액 - 100 where id like '코난'

update 계좌 set 금액 = 금액 + 100 where id like '수선'

 

 

하지만 위의 쿼리가 아닙니다!!!!!

SQL서버에서 위와 같은 처리를 위해서는 위처럼 쓰시면 안됩니다.

위와 같은 구문으로 쓰시면?

위의 쿼리는 다음과 같이 변환 됩니다.

 

 

begin tran

update 계좌 set 금액 = 금액 - 100 where id like '코난'

commit tran

 

begin tran

update 계좌 set 금액 = 금액 + 100 where id like '수선'

commit tran

 

 

이렇게 변화하게 됩니다. - 내부적으로 SQL서버의 엔진이 저렇게 바꾸는 겁니다.

그렇다면!!! 어떻게 해야.. 하나의 단위로.. 위 두개의 작업을 하나로 묶어서 수행하게

할 수 있을까요?

바로 다음과 같이 명시적으로 begin tran commit tran을 사용하시면 됩니다.

 

 

 

begin tran

update 계좌 set 금액 = 금액 - 100 where id like '코난'

update 계좌 set 금액 = 금액 + 100 where id like '수선'

commit tran

 

 

이렇게 사용하시면 두개의 작업이 하나의 단위로 처리가 되게 되지요.

별로 어렵지 않으실 겁니다그리고 이정도는 컴쪽의 일을 하신다면 한번쯔음~~

들어 보셨을 이야기일 거구요그럼 조금 다른 이야기로.. 내용을 돌려 보도록 하지요.

 

트랜젝션의 네가지 성격

트랜젝션은 DBMS차원에서.. 다음 네가지 성격을 만족해야만 합니다.

1. 원자성(atomicity) : 트랜젝션은 전부전무의 실행만이 있지.. 일부 실행으로

트랜젝션의 기능을 가질 수는 없다.

2. 일관성(consistency) 트랜젝션이 그 실행을 성공적으로 완료하면 언제나 일관된

데이터베이스 상태로 된다라는 의미입니다.. 이 트랜젝션의 실행으로 일관성이

깨지지 않는다 라는 의미 이지요...

3. 격리성(isolation) 연산의 중간결과에 다른 트랜젝션이나 작업이 접근할 수 없다..

라는 의미입니다.

4. 영속성(durability) : 트랜젝션의 일단 그 실행을 성공적으로 끝내면 그 결과를 어떠한

경우에라도 보장받는다.. 라는 의미입니다....

 

그렇다면 도대체~~ 저 어려운 단어들의 나열이 트랜젝션의 성격이라는 것은 알겠는데..

그 트랜젝션 이라는 녀석으로 과연 어떻게 문제가 생겼을때 데이터를 복구하냐??

이때는 UNDO REDO의 이야기가 나오게 됩니다.

우선 많이들 이야기 하시는 이야기로 알아 보지요.

 

장애(failure)와 회복(recovery)

회복(recovery)이란 장애(failure)가 일어났을 때 데이터 베이스를 장애 이전의 상태로

다시 복구 시켜 일관된 상태로(consistent state)로 복구 시키는 작업이지요

당연하지요? -_-;;

장애를 조금더 알아본다면관리자가 구두로 컴퓨터 파워 버튼을 실수로 차버리거나.

해서 문제가 생기는 상황?? 이렇게 대충은 생각이 가능하실 겁니다.

조금만 더 세분화를 시켜 본다면..

 

 

 

1. 트랜젝션 장애

트랜젝션 내의 논리적 오류나 내부조건입력 데이터의 불량데이터의 불명시스템 자원의

과다한 사용요구 등으로 정상적인 실행을 계속 할 수 없는 상태를 의미 합니다.

2. 시스템 장애

이는 하드웨어의 오동작으로 메인 메모리에 있는 정보의 손실이나 교착 상태가 발생하여

더 이상 실행을 계속할 수 없는 상태를 의미 하지요...

3. 미디어 장애

디스크 헤드 붕괴나 고장으로 인하야... 저장 장치의 데이터베이스 일부 또는 전부가

손상된 상태를 의미하구요 ^_^

 

 

이렇게 세분화가 가능해 집니다.

그렇다면 회복이라는 것은?

말 그대로 데이터를 안정된 상태로 복구 시키는 것을 의미하지요.


감사합니다.
 

[출처] SQLER.COM http://www.sqler.com/394741


SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?




SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?

이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
==================================================================================================


안녕하세요이스트럭 강동운입니다.

 

이번에는 DDL 에서 INSERT 다음으로 SELECT   중에서 단일 테이블의 데이터를 가져오는 방법 알아보도록 하겠습니다.

 

 

SELECT 절에 대한 구조는 아래와 같습니다.

 

 

SELECT 컬럼1, 컬럼2, SUM(컬럼3)

FROM 테이블명

WHERE 컬럼5 = 20

GROUP BY 컬럼1,컬럼2, 컬럼3

HAVING 컬럼1 = '서울'

 

 

GROUP BY HAVING 추후 강좌에 다룰 예정입니다. ^^

 

아래 예제와 함께 살펴보시기 바랍니다!

 

 

 

SELECT 절에 대해서 아주 간단히 설명 드리면.. 아래와 같은 형태로 구성되어 있습니다.

 

 

방법1: 컬럼: SELECT * FROM 테이블명

방법2: SELECT 컬럼1, 컬럼2, 컬럼3… FROM 테이블명

 

 

방법1 조회를 하시면 테이블안에 있는 모든 컬럼을 가지고   있습니다.

방법2 테이블 내에 추출하고 싶은 컬럼만 가져올 경우 사용합니다.

 

위와 같은 기본 조회 방법에 조건을 줘서 필터를   있습니다예를들면 사는 지역이 '서울'성별이 남자만 나오게 하거나 등등..

조건 절이 추가되면 아래 처럼 뒤에 WHERE 절이 추가 됩니다.

 

 

WHERE 절이 추가된 예제를 살펴보도록 하겠습니다.

 

 

1) Member 라는 테이블에서 MemberAge 값이 10 일때 모든 컬럼을 가져오는 경우

 

SELECT * FROM Member WHERE MemberAge = 10

 

 

2) Member 라는 테이블에서 MemberAge 값이 20 보다 크거나 같고 MemberArea서울  경우

 

SELECT * FROM Member WHERE MemberAge >= 10 AND MemberArea = '서울'

 

(참고문자열을 조회하기 위해서는 '문자형태로 묶어야 합니다.)

 

3) Member 라는 테이블에서 MemberAge 값이 10 보다 크거나 같고 20보다 작거나 같은 경우

 

SELECT * FROM Member WHERE MemberAge >= 10 AND MemberAge <= 20

 

아래와 같은 방법도 가능 합니다 ^^

 

SELECT * FROM Member WHERE MemberAge BETWEEN 10 AND 20

 

 

4) Member 라는 테이블에서 MemberName ''씨에 해당하는 모든 컬럼을 가져오려고 하는 경우

 

SELECT * FROM Member WHERE MemberName LIKE '%'

 

(참고: % 와일드 카드로서 모든 문자가 가능한 것을 말합니다예를들어 '%' 으로 검색을 하게 되면

'김유신', '김유', '모든 문자가 검색이 가능합니다.

 

4) Member 라는 테이블에서 MemberName 특수문자 '%'  시작하는 모든 컬럼을가져오는 경우

 

SELECT * FROM Member WHERE MemberName LIKE '[%]%'

 

아래와 같은 방법으로도 가능합니다.

 

SELECT * FROM Member WHERE MemberName LIKE '\%%' ESCAPE '\'

 

 

 

5) Member 테이블에서 MemberAge 10 또는 20  데이터만 가져오는 경우

 

 

SELECT * FROM Member WHERE MemberAge = 10 OR MemberAge = 20

 

이렇게도 가능 하지만.. 아래와 같은 방법도 가능합니다.

 

 

SELECT * FROM Member WHERE MemberAge IN (10,20)

 

 

 외에도 CASE 문을 활용한 아래와 같은 형태로도 가능합니다.

 

 

SELECT * FROM Member WHERE (CASE MemberAge WHEN 20 THEN 10 ELSE MemberAge END) = 10

 

 

Case (Transact-SQL): http://msdn.microsoft.com/ko-kr/library/ms181765.aspx

 

SELECT (Transact-SQL) Denali: http://msdn.microsoft.com/ko-kr/library/ms189499(v=SQL.110).aspx

SELECT (Transact-SQL) SQL Server 2008 R2

http://msdn.microsoft.com/ko-kr/library/ms189499(v=SQL.100).aspx

 

감사합니다.


[출처] SQLER.COM http://www.sqler.com/390106


SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?



SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?

이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
==================================================================================================



안녕하세요이스트럭(강동운입니다.

 

이번에는 SQL Server 2000에서 예제로 사용했던 pubs  northwind database 를 설치하는 방법에 대해서 알려드리겠습니다.

 

각각의 예제 때마다 테이블을 생성하는 것이 번거롭기 때문에 이 예제를 통해 활용해보도록 하겠습니다.

 

일단 SQL로 접속 후에 New Query 를 통해 창을 생성 하고,

 

두개의 sql 파일을 가지고, SQL 창에서 실행하시면 됩니다.


 

아래 그림은 northwind database 를 넣었을 때 예제 입니다.

 

1.png

 

 

모두 완료가 되면 두개의 데이터베이스가 생겼음을 볼 수 있습니다.

 

 2.png

 

감사합니다.

[출처] SQLER.COM http://www.sqler.com/390101


SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?



SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?

이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
==================================================================================================



안녕하세요. 이스트럭(강동운)입니다.

 

이번에는.. SQL 2011에서 새로 추가된 SEQUENCE에 대해서 알아보도록 하겠습니다 ^^..

 

SEQUENCE는.. ORACLE에 있고 SQL Server에는 없어서.. 많은 SQL Server DBA께서 차기 버전에는 나오겠지!

 

라는 기대를 했습니다~! 역시 이번 버전에는.. 시퀀스가 추가되었습니다 ^^

 

 

SEQUENCE에 대해서 깊이 있게는 알아보시기 위해서는 아래 링크 참고하시기 바랍니다.

Link: CREATE SEQUENCE(Transact-SQL)

Link: NEXT VALUES FOR(Transact-SQL)

 

오늘은 위의 예제 중에서 생성 해서 어떻게 가져오는 지에 대한 간단한 예제를 보여드리겠습니다 ^^..

 

 

IF OBJECT_ID('SequenceStep5','SO') IS NOT NULL
 DROP SEQUENCE SequenceStep5
GO

IF OBJECT_ID('SequenceStep1','SO') IS NOT NULL
 DROP SEQUENCE SequenceStep1
GO

CREATE SEQUENCE dbo.SequenceStep1--//옵션 없이 생성하는 방법
GO
CREATE SEQUENCE dbo.SequenceStep5 --//시작 값, 증가 값 옵션을 설정하는 방법
    START WITH 5
    INCREMENT BY 5
GO

1.png 

 

같은 쿼리 한번 더 수행!

2.png

 

이번 강좌는 여기서 마치도록 하겠습니다. ^^

 

감사합니다.

 

작성일: 2011.05.24


[출처] SQLER.COM http://www.sqler.com/383057


SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?



SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?

이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
================================================================================================== 



안녕하세요. 이스트럭(강동운)입니다.

 

오늘의 주제는 DML 중에서 INSERT 항목.. 그 중 identity에 대해서 알아보도록 하겠습니다.

 

이와 관련해서 임시 테이블을 생성해보도록 하겠습니다.

 

회원(회원번호, 회원아이디, 회원이름, 회원나이, 회원지역)

저번과 다른 부분은 MemberIDX에 IDENTITY(시작값, 증가값) 라는 속성을 부여했습니다.

 

테이블에 IDENTITY 속성이 있는 컬럼을 두개이상 만드는 경우에는 아래와 같은 에러가 발생합니다.

1.png  

 

따라서 테이블에 IDENTITY 속성은 반드시 하나만 존재할 수 있습니다.

 

아래와 같이 테이블을 만들어봅시다.

IF OBJECT_ID('MemberSelectIdentity') IS NOT NULL
 DROP TABLE MemberSelectIdentity
GO
CREATE TABLE MemberSelectIdentity
(
 MemberIDX INT IDENTITY(1,1) NOT NULL
, MemberID  VARCHAR(10)
, MemberName VARCHAR(20)
, MemberAge INT
, MemberArea   VARCHAR(4)
, CreateDate  DATETIME
)
GO

 

테이블에 IDENTITY 속성이 있는 경우에는.. 기본적으로 DATA INSERT 시에 IDENTITY 속성을 가진 컬럼명을 제외해야합니다.

 

만약 함께 기술한다면 아래와 같은 에러가 발생하게 됩니다.

2.png

 

또한... 컬럼명을 생략한 경우에도 마찬가지겠지요~!

 

3.png

 

 

이제 컬럼명을 생략해서 넣어보도록 하겠습니다.

 

4.png

 

 

정상적으로 들어갔음을 확인할 수 있습니다.

 

하지만... 에러 내용들 처럼.. SET IDENTITY_INSERT 를 사용해서 MemberIDX에 원하는 값을 넣을 수 있습니다.

 

Link: SET IDENTITY_INSERT(Transact-SQL)

 

5.png

 

 

그렇다면 현재 IDENTITY 값은 알 수 없을까?? 또한 IDENTITY 값을 변경할 순 없을까?? 라는 의문을 가지게 됩니다.

 

이것은.. DBCC CHECKIDENT 를 통해 가능합니다.

 

Link: DBCC CHECKIDENT(Transact-SQL)

 

감사합니다. ^^

 

작성일자: 2011.05.24


[출처] SQLER.COM http://www.sqler.com/383049


SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?



SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?


이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
==================================================================================================



안녕하세요. 이스트럭(강동운)입니다.

 

오늘의 주제는 DML 중에서 INSERT 항목이 되겠습니다!

 

DML 은 Data Manipulation Language의 약자로써.. 데이터 조작어에 해당됩니다.

 

이에 관련되서는.. SELECT, INSERT, UPDATE, DELETE가 해당이 됩니다 ^^ 이 중에서 우리는 오늘 INSERT 에 대해서 알아볼 예정입니다!

 

이와 관련해서 임시 테이블을 생성해보도록 하겠습니다.

 

--//회원(회원번호, 회원아이디, 회원이름, 회원나이, 회원지역)

CREATE TABLE MemberSelect

(

 MemberIDX INT

, MemberID  VARCHAR(10)

, MemberName VARCHAR(20)

, MemberAge INT

, MemberArea   VARCHAR(4)

, CreateDate  DATETIME

)

GO

 

데이터를 INSERT 하는 방법에는 여러가지가 있습니다.

 

그중 첫번째.. 모든 컬럼명을 기술하기!

 

INSERT INTO 테이블명(컬럼1, 컬럼2, 컬럼3 ....) VALUES(컬럼1의 값, 컬럼2의 값, 컬럼3의 값 ...)

GO

 

INSERT INTO MemberSelect(MemberIDX, MemberID, MemberName, MemberAge, MemberAre VALUES(1, 'hong', '홍길동',20,'서울','2011-01-01')

GO

1.png

 

 

--//컬럼명을 기술하지 않고 입력하는 두번째 방법

주의:  이 방법은 VALUES에 순서데로 기술된 컬럼의 순서가.. 실제로 생성한 테이블의 컬럼수 와 순서가 반드시 맞아야 합니다.

INSERT INTO MemberSelect
VALUES(2, 'lee', '이순신',30,'경기','2011-02-01')
GO

2.png  

 

3번째! SELECT 를 활용한 INSERT 문법

INSERT INTO MemberSelect
(
 MemberIDX
, MemberID
, MemberName
, MemberAge
, MemberArea
, CreateDate
)
SELECT
 3
, 'kim'
, '김유신'
, 40
, '경남'
, '2011-03-01'
GO

3.png

 

4번째 SELECT 절에 ROW 명을 기술하는 방법!

 

INSERT INTO MemberSelect
(
 MemberIDX
, MemberID
, MemberName
, MemberAge
, MemberArea
, CreateDate
)
SELECT
 MemberIDX = 4
, MemberID = 'kang'
, MemberName = '강감찬'
, MemberAge = 25
, MemberArea = '경기'
, CreateDate = '2011-04-01'
GO

4.png   

 

 

SQL 2008 부터 지원하는 다중 행 입력!

5.png

 

 

지금까지 가장 기본적으로 INSERT 하는 방법을 알아봤습니다 ^^

 

사실 데이터 입력방법은 이것 보다 훨씬 다양하고 많습니다~~!

 

저는 개인 적으로.. 테이블에 컬럼이 많아지면.. 어떤 컬럼이 어떤 데이터인지 구분하기 힘들기 때문에.. 4번 방법을 주로 이용합니다.

 

감사합니다.

 

다중행 입력관련된 좋은 글: http://sqlsql.tistory.com/entry/Array-Insert

 

작성일: 2011.05.24


[출처] SQLER.COM http://www.sqler.com/383042


SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?




SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?

이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
==================================================================================================



안녕하세요. 이스트럭(강동운) 입니다.


이번 강좌에는.. 정보처리 산업기사에 아주 많이 출몰하는.. 개체 무결성에 대해 알아볼까 합니다.


물론 그 중심에는.. Primary Key(기본키) 그리고 유니크 제약조건이 있습니다.


개체 무결성의 정의: 기본키를 구성하는 속성은 널(NULL)값이나 중복값을 가질수 없음


Primary Key의 조건은 아래와 같습니다.

1. 유니크 해야함.

2. NULL을 허용할 수 없음.


개체 무결성과도 같죠?? ^^;;


그렇다면.. Primary Key의 대상은 어떤 녀석이 될까요??


회원 테이블을 살펴보면.. 아래 두가지 경우가 대상이 될 수 있습니다.


1. 순차적으로 증가하는 회원번호(INT 4 bytes)

2. 회원 아이디(VARCHAR 10~15 bytes)

3. 주민등록번호(CHAR 형 13 bytes)


하지만.. 순차적으로 증가하는 회원번호의 사이즈가 작기 때문에.. Primary Key에 적당합니다.

또한 주민 등록번호 혹은 아이디는.. 약관에 따라  탈퇴를 하는 경우에는 지워질 수 있기 때문에.. 대상에서 살짝 밀리게 됩니다.



이 처럼 Primary Key외에 아이디 혹은 주민등록번호 처럼 대체가 될 수 있는 키를.. 대체키라고 합니다.

물론 대체키로도 행을 구분할 수 있겠죠~!

영어로는 Alternate Key라고 합니다.


그럼 한번 SSMS를 통해서 Primary Key 를 생성해보도록 하겠습니다.


SSMS 접속 => Database => Test Databse => Member Tables 우클릭 => Desgin


0.png



디자인을 클릭하면 아래와 같은 화면이 나옵니다.


여기서 전에 만들었던 MemberIDX에 Primary Key를 걸어보도록 하겠습니다.


MemberIDX 에 마우스 우클릭 => Set Primary Key => 그리고 저장!


1.png



(혹시 위 설정에서 저장이 안되시는 분들은.. Tools => Option => Designers => Table and Database Designers => Prevent saving changes that require table re-creation 을 체크하시기 바랍니다.)


3.png


이 옵션은.. Design 에서 테이블을 수정시에 테이블이 다시 만들어질 수 있습니다. 이 부분을 사전에 방지하고자 기본 값으로 

체크가 되어있는데.. 체크를 뺴주시면 될 것 같습니다 ^^

주의: 데이터가 아주 많은 경우 테이블이 다시 만들어지면............ 끔찍하겠죠!

4.png






저희가 INSERT문을 배운건 아니지만.... 한번 NULL값이 들어가는지.. 중복된 값이 들어가는지 테스트를 해보도록 하겠습니다.


우선 10번으로 강감찬을 넣어보도록 하겠습니다.


INSERT INTO Member(MemberIDX, MemberID, MemberName, CreateDate)

VALUES(10,'kang','강감찬', '2011-05-05')

GO

select * from member

GO

2.png



이제 10번을 다시 한번 넣어보도록 하겠습니다.


에러죠! 아쉽게...... 이 에러는 한국어가 지원이 안되네요 ㅜ.ㅜ..

중복된 키 값을 넣을 수 없다는 에러 입니다.

5.png



이제 NULL 값을 넣어보도록 하겠습니다.

NULL 값 역시.. 허용하지 않았기 때문에.. 데이터가 입력되지 않습니다.

6.png



그럼 중복되지 않지만.. NULL을 넣을 순 없을까?? 바로 UNIQUE 제약조건이 있습니다.


MemberID에 유니크 제약조건을 걸어보겠습니다.


ALTER TABLE Member

ADD CONSTRAINT UNIQUE_MEmberID UNIQUE(MemberID)

GO

--// ALTER TABLE 테이블명

--// ADD CONSTRAINT 제약조건명칭 UNIQUE(컬럼명)

7.png



역시 NULL은 한개 입력되지만.. 중복이 허락되진 않네요~!


이 처럼 Primary Key 와 Unique 의 차이점은 바로 NULL이 한개 들어갈 수 없냐의 문제 였습니다.


제가 듣기로는 초보 DBA 면접 문제로도 가끔 나온다고 하니.. 모르시는 분들은 챙겨두면 좋을 것 같습니다. ^^



강좌를 마치도록 하겠습니다.


감사합니다. ^^


작성일: 2011.05.21


[출처] SQLER.COM http://www.sqler.com/382152


SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?



SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?

이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
==================================================================================================

안녕하세요. 이스트럭(강동운) 입니다.


이번 강좌에서는 저번 강좌에서 추가한 Member 테이블을 가지고 컬럼을 추가, 삭제, 컬럼명을 변경하는 법에 대해서 알아보도록 하겠습니다.


물론 추가로 테이블명도 변경을 해보도록 하겠습니다.



전에 말씀드렸다 싶이.. 데이터베이스 객체를 수정(ALTER) 하거나 삭제(DROP)하는 작업이기 때문에 DDL에 속하게 됩니다.

물론 이름변경(RENAME)도 DDL에 속합니다.




일단 강좌에 들어가기 앞서 NULL에 대해서 잠깐 얘기해볼까 합니다.


테이블의 컬럼에는 NULL 이 가능? 불가능? 할 수 있습니다.


그럼 데이터베이스에서 말하는 이 NULL이라는 값은 뭘까요??


NULL의 정의를 정리해봤습니다.


1. 알 수 없는 값

2. 사용할 수 없는 값

3. 적용할 수 없는 값

4. 0과 공백('') 과는 다른 값

5. 산술식과 비교하거나 연산을 하면 무조건 NULL


그냥 알 수 없는 값으로 아는 것이 좋을 것 같습니다 ^^;

이전 강좌에서의 테이블 생성 시 끝의 컬럼을 기억하십니까??
1.png
바로 이 값이 체크를 하게 되면  NULL 허용, 체크를 하지 않으면 NULL 불가! 가 되는 것이죠


MemberIDX 컬럼을 NULL 불가로 바꾼다면... 체크를 없애고 저장을 하시면 됩니다만..
쿼리를 이용하게 되면 아래 처럼 입력하셔야 합니다.

ALTER TABLE Member
ALTER COLUMN MemberIDX INT NOT NULL
GO

주의:이 작업은 모든 데이터 행을 수정하기 때문에 데이터가 많은 경우 무척 위험한 행동이 될 수 있습니다.
하지만 저희는 테스트로 해보는 것이기 떄문에 이런 문제는 걱정 안하셔도 됩니다 ^^;


이제 컬럼을 한번 추가해볼까요??
최종 수정일이라는 LastUpdateDate 라는 컬럼을.. DATETIME 형으로 추가해보도록 하겠습니다.

ALTER TABLE Member
ADD LastUpdateDate DATETIME
GO
SELECT * FROM Member
GO
2.png

빨간 부분이 추가가 된 것을 확인할 수 있었습니다.


혹시 기본 값을 지정할 순 없을까요?? 바로 디폴트 값을 이용하면 됩니다.
TotalLoginCount 라는 int 타입을 추가하고 기본 값으로 0을 줘봅시다.

ALTER TABLE Member
ADD TotalLoginCount INT  DEFAULT 0 NOT NULL
GO
3.png


TotalLoginCount가 0으로 초기화 되면서 추가된 것을 볼 수 있습니다. ^^


이제 컬럼명을 바꿔 볼까요?? ^^;; TotalLoginCount 컬럼명을.. TotalLoginCnt 로 변경해 봅시다.
sp_rename 'Member.TotalLoginCount','TotalLoginCnt','COLUMN'
--// sp_rename '테이블명.컬럼명','컬럼명','COLUMN'
GO
SELECT * FROM member
4.png


컬럼명이 성공적으로 변경 된 것을 보실 수 있습니다.
sp_rename에 관련해서는.. 아래 링크를 참고해보시기 바랍니다. ^^


이제 컬럼명을 삭제해보도록 하겠습니다. MemberAge 라는 컬럼을 삭제해보도록 하겠습니다.
ALTER TABLE member
DROP COLUMN MemberAge
GO
SELECT * FROM member
5.png

이렇게 컬럼이 삭제된 것을 볼 수 있습니다.


이제 TotalLoginCnt 라는 컬럼을 삭제해보도록 하겠습니다.
일단 에러 내용을 한국어로 보기 위해서..
(SET LANGUAGE 관련 글: http://www.sqler.com/371714)
SET language 한국어
GO
ALTER TABLE Member
DROP COLUMN TotalLoginCnt
GO
6.png

개체 'DF__Member__TotalLog__108B795B'은(는) 열 'TotalLoginCnt'에 종속되어 있습니다.
라는 에러와 함께 삭제가 되지 않습니다. 이 녀석은 뭘까요??

아까 컬럼을 추가했을 당시.. DEFAULT 값을 주었습니다. 이 녀석이 default 제약 조건에 포함이 되어있기 때문에
먼저 삭제를 해야 삭제가 가능합니다.

물론 DEFAULT 제약조건도 자식이기 때문에.. 부모가 없어질려면 자식부터 지워야겠죠~! 고아가 될 순 없으니까요 ^^;;
ALTER TABLE Member
DROP CONSTRAINT DF__Member__TotalLog__108B795B
GO
주의: DF__Member__TotalLog__108B795B 값은 컴퓨터 마다 달라질 수 있습니다.
물론 default 제약조건에 이름을 지정할 수는 있지만.. 우리는 지정하지 않았기 때문에 .. SQL Server 내부적으로 알아서 지정하게 됩니다.


이제 다시 컬럼을 삭제해보면 ..정상적으로 삭제되는 것을 볼 수 있습니다.

7.png


물론 컬럼명 변경하듯이.. 테이블명도 바꿀 수 있겠죠??  제가 알려드린 sp_rename 링크에 소개되어있습니다. 

감사합니다. ^^

작성일: 2011.05.21

[출처] SQLER.COM http://www.sqler.com/382121

SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?



SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?

이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
==================================================================================================



안녕하세요. 이스트럭(강동운) 입니다.


저번 강좌에 소개해드렸던 데이터베이스 생성에는 문제가 없으셨나요?? ^^;;


이번 강좌는 바로 DDL 1탄 테이블 생성입니다.


DDL은.. Data Definition Language 의 약자로서.. 

 1. 데이터베이스 객체 생성(CREATE)

 2. 데이터베이스 객체 수정(ALTER)

 3. 데이터베이스 객체 삭제(DROP)

 4. 데이터베이스 이름 변경(RENAME)

 5. 테이블 초기화(TRUNCATE)



이렇게 5가지로 구분이 됩니다.


이 중에서 우리가 이번에 살펴봐야 할 부분은.. 생성 부분중에서 테이블입니다.


SQL Server에서 테이블은 뭘까요?? 쉽게 생각하시면 엑셀로 생각하시면 됩니다.



이번에 새로 출시된 Microsoft Office 2010 입니다. 2007과 거의 흡사하게 디자인이 되었으며.. 많은 기능들이 추가되었습니다 ^^


1.png


열이라는 속성을 가지고 있으며

행이라는 데이터를 가지고 있습니다.


물론 각 시트들은 하나하나의 테이블이 되겠죠!


바로 이런 것이 테이블입니다.


자~! 바로 실전으로 들어갑시다~~!


SSMS 접속 => 데이터베이스 => Table 우클릭 => New Table


2.png



New Table을 클릭하시면 아래와 같은 화면이 나옵니다.


제가 입력한 항목에 맞게 순서대로 입력해봅시다 ^^


3.png

Column Name: 컬럼 명을 기술합니다. 한글도 가능하지만 되도록 영문을 쓰며, 특수문자 사용을 하지 않는 것이 좋습니다.

Data Type: 데이터 타입은 정말 여러가지가 있습니다. 일단 저희가 이번에 다루는 데이터 타입은

int, varchar, datetime 이 3가지 입니다.


int: 약 -21억 ~ 21억 까지의 숫자를 저장할 수 있는 4바이트 정수입니다.

    (추가로 알아두면 좋은 데이터 타입: smallint: 약 -3만2천 ~ 3만2천, tinyint: 0~255)


varchar: 가변 길이의 문자열을 저장 괄호안의 숫자로 넣을 수 있는 숫자를 조절할 수 있습니다. 

            숫자는 바이트이지만.. 한글은 2바이트이기 때문에.. varchar(10)으로 지정하게 되면, 영문/숫자 10자 또는

            한글은 최대 5자가 들어갈 수 있습니다.

    (추가로 알아두면 좋은 데이터 타입: nvarchar: 가변 길이 유니코드형 데이터 저장, char: 고정 길이 문자열 저장, nchar: 고정 길이 유니코드형 데이터 저장)


datetime: 2011-05-11 05:11:11.997 처럼... 밀리세컨드까지 저장할 수 있는 데이터 타입입니다.



데이터 형식에 대해서 자세한 내용은 아래 링크 참고하시기 바랍니다.

데이터 형식(Transact-SQL)

http://msdn.microsoft.com/ko-kr/library/ms187752.aspx



자! 입력이 다 끝나셨으면.. 오른쪽 상단에 있는 저장 또는 (Ctrl+S)를 클릭해서 테이블명 Member라고 입력하고 확인을 누릅시다.

4.png



아직 INSERT 를 배우진 않았지만.. 쿼리를 이용해서 데이터를 입력하고.. 내용을 확인해보도록 하겠습니다.



좌측 상단의 New Query 를 클릭하고! 아래의 쿼리를 입력해봅시다~!


use TEST

go


insert into Member values(1,'hong', '홍길동', 30, '2011-05-01')

insert into Member values(2, 'lee', '이순신', 29 , '2011-05-02')

insert into Member values(3, 'shin', '신사임당', 21, '2011-05-03')

insert into Member values(4, 'lim', '임꺽정', 39, '2011-05-04')

go


select * from Member

go


아래 처럼 원하는 결과가 잘 나오시나요?? ^^;;

5.png



아까 엑셀에서 봤던 모습과 흡사합니다.


이렇게 테이블을 생성하고 테스트 데이터를 넣어보고, 조회를 해봤습니다. ^^



테이블 생성은 Query 로 안될까요?? 물론 됩니다~~!!


아주 간단하게 아래 처럼 작성할 수 있습니다.


CREATE TABLE MemberQuery

(

MemberIDX INT

, MemberID VARCHAR(10)

, MemberName VARCHAR(20)

, MemberAge INT

, CreateDate DATETIME

)


사실 테이블 생성 쿼리는 훨~~~~~씬 더욱 복잡합니다.

하지만 여러분의 레벨에 맞게 아주 기본 적인 내용만 담아서 생성한 것입니다. ^^


이번 강좌는 여기서 마치도록 하겠습니다. ^^


감사합니다.


작성일: 2011-05-21


[출처] SQLER.COM http://www.sqler.com/382081
 

SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?





SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?

이 내용은 2011년 6월 현재 SQL2011(코드명 Denali) Beta를 기준으로 작성 되었으며 SQL2011(코드명 Denali) 공식버전(RTM) 발표까지 꾸준히 업데이트 예정입니다.
아울러, 현재 Beta버전이지만 강좌를 따라해 보시는데 아무 문제 없으실거에요. 도움 되시길 바랍니다.
==================================================================================================



안녕하세요. 이스트럭(강동운) 입니다.


이번 강좌의 주제는 바로 MDF와 LDF 입니다...



데이터 베이스에 데이터를 저장하기 위해서는 어떻게 해야 할까요??


SQL Server는 기본적으로 MDF 확장자를 가진 파일에 데이터를 저장하게 됩니다.


또한 데이터베이스에 있어서 가장 중요한.. 바로 로그!!

데이터가 변경되거나 수정되거나.. 삭제되었을때는.. 반드시..로그성 데이터를 기록하게 됩니다.

왜냐면.. 정전이나 기타 물리적인 이슈로..


데이터 손실을 방지하기 위해 데이터베이스는.. 트랜잭션이라는 개념으로 데이터를 보존하게 됩니다.

트랜잭션에 대한 깊이 있는 설명은 나중에 하기로 하고..

여기서는 간단히.. 데이터 손실을 막기 위한 수단이라고 보시면 됩니다.


책이나 기타 강좌에서 가장 많이 드는.. 바로.. 은행에서 돈 이체시 정전이 된다면 어떻게 해야 할까요??..

물론 정전으로 인해서.. 빠져나간 돈은 다시 내 통장으로 들어오는게 정상일 것 입니다.


이 강좌 후반부에 트랜잭션에 대해서 자세히 다룰 예정이기 때문에.. 트랜잭션에 대해서는 여기까지만 설명하고 넘어가도록 하겠습니다!



SQL Server는.. 이런 데이터 손실을 방지하기 위해.. LDF라는 확장자를 가진 곳에.. 데이터가 변경된 내역을 저장하게 됩니다.



따라서.. SQL Server에서 데이터베이스를 생성하게 되면.. 기본적으로 MDF 와 LDF 하나씩은 만들어야 합니다. ^^..


그리고.. MDF 라는 녀석은 파일 그룹에 속하게 됩니다. SQL Server 는 기본적으로 PRIMARY 라는 파일 그룹이 있는데요.


물론 MDF가 한개 이상의 파일그룹을 가질 순 없고 무조건 1:1로만 가능합니다.


이걸 그림으로 그리면 아래와 같은 그림이 됩니다.


1.png



파일 그룹이 두개가 이상 될 수도 있고... MDF 파일이 여러개가 될 수 있습니다.

MDF가 두개 이상이 되면.. MDF 말고 NDF로 만들어 집니다. 아래와 같은 그림도 될 수 있습니다.


2.png 


그럼 데이터 베이스를 한번 만들어볼까요?? 우선 저번 강좌에 설명 드린 데이터 베이스에 접속을 하신 뒤에..


Database 항목에 우클릭 => New Database 클릭!


3.png


위와 같이 하시면 아래와 같은 창이 나타나게 됩니다 ^^

4.png


Logical Name: 논리적인 이름

File Type: Rows Data(MDF 파일), Log(LDF 파일)

Filegroup: 파일 그룹(기본값 PRIMARY)

Initial Size (MB): 기본적인 파일 사이즈(단위: MB)

Autogrowth / Maxsize: 자동 증가 설정 및 최대 사이즈 설정 값

Path: 실제 파일이 위치할 경로

File Name: 실제 파일 이름 입니다.


아래 그림 처럼


Database name과 File Name을 입력하시고.. 빨간색으로 처리된 부분을 눌러보세요~!


6.png



그러시면 아래와 같은 박스가 나오게 됩니다.

5.png

Enable Autogrowth: 자동증가 활성 여부

File Growth: 파일 증가 방법

  1. In Percent: 퍼센트

  2. In Megabytes: MB 량으로 늘리기


Maximun File Size: 최대 파일 사이즈

  1. Limited to (MB): 지정된 파일 사이즈

  2. Unlimited: 제한 없음



저희는.. 

MDF에 대해서 20% 씩 파일 자동 증가와 제한 없음

LDF에 대해서는 10% 씩 파일 자동 증가와 제한 없음을 선택하도록 하겠습니다.


자 이제 모든 준비가 끝났으니.. OK 를 눌러서.. DATABASE 를 생성해보도록 하겠습니다!

7.png



짝짝짝!!~

데이터 베이스가 정상적으로 만들어졌습니다. ^^

New Query 를 이용해서.. 아래 쿼리로.. 만들어진 데이터 베이스 정보를 볼 수 있습니다.

end.png



물론.. Query 로도 데이터베이스를 만들 수 있습니다.


따로 옵션 부분들은 위에 모두 설명드렸기 때문에 설명드리지 않겠습니다. ^^

살짝만 눈여겨 보시기 바랍니다.


CREATE DATABASE TestQuery ON

(

NAME = N'TestQuery'

, FILENAME = 'C:\TestQuery_DATA.MDF'

, SIZE = 4MB

, MAXSIZE = UNLIMITED

, FILEGROWTH = 1MB

)

LOG ON

(

NAME = N'TestQuery_log'

, FILENAME = 'C:\TestQuery_LOG.LDF'

, SIZE = 1MB

, MAXSIZE = 1024GB

, FILEGROWTH = 10%

);



한가지 추가로!! DATABASE 를 가장 쉽게 만들 수 있는 방법이 있습니다.
바로.. 아래의 쿼리로 만드실 수 있습니다. 이 방법은.. system db 중에서 model 디비가 붕어빵이 되서 만들어집니다.
system db가 뭐하는 녀석인지는 나중에 기회되면 설명드리겠습니다. ^^

CREATE DATABASE 데이터베이스명
GO

감사합니다. ^^

작성일: 2011.05.21

[출처] SQLER.COM http://www.sqler.com/382066

SQL2011(코드명 Denali) 시리즈 강좌 리스트
[SQL2011강좌] 1. 코드명 Denali 설치 방법
[SQL2011강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011강좌] 4. DDL 1탄: 테이블 생성
[SQL2011강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011강좌] 6. Primary key와 Unique 제약조건
[SQL2011강좌] 7. DML 1탄 INSERT
[SQL2011강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011강좌] 9. Sequence
[SQL2011강좌] 10. pubs, northwind Database 예제 설치
[SQL2011강좌] 11. SELECT(단일 테이블)
[SQL2011강좌] 12. SELECT(JOIN)
[SQL2011강좌] 13. UPDATE, DELETE 절
[SQL2011강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011강좌] 16. SubQuery(서브쿼리)
[SQL2011강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011강좌] 19. 인덱스에 대한 이해
[SQL2011강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011강좌] 21. 트랜잭션에 대한이해
[SQL2011강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011강좌] 23. 잠금에 대한 이해
[SQL2011강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011강좌] 25. 백업과 복구 전략
[SQL2011강좌] 26. 커서란?



SQL2011(코드명 Denali) 시리즈 동영상 강좌 리스트
[SQL2011 동영상 강좌] 1. 코드명 Denali 설치 방법
[SQL2011 동영상 강좌] 2. SSMS 접속 및 간단한 쿼리 실행
[SQL2011 동영상 강좌] 3. SQL Server 의 MDF, LDF 그리고 데이터베이스 생성하기
[SQL2011 동영상 강좌] 4. DDL 1탄: 테이블 생성
[SQL2011 동영상 강좌] 5. DDL 2탄: 쿼리를 이용한 테이블 컬럼 추가 및 삭제
[SQL2011 동영상 강좌] 6. Primary key와 Unique 제약조건
[SQL2011 동영상 강좌] 7. DML 1탄 INSERT
[SQL2011 동영상 강좌] 8. DML 1탄 INSERT(identity 속성)
[SQL2011 동영상 강좌] 9. Sequence
[SQL2011 동영상 강좌] 10. pubs, northwind Database 예제 설치
[SQL2011 동영상 강좌] 11. SELECT(단일 테이블)
[SQL2011 동영상 강좌] 12. SELECT(JOIN)
[SQL2011 동영상 강좌] 13. UPDATE, DELETE 절
[SQL2011 동영상 강좌] 14. DISTINCT, UNION, UNION ALL 키워드
[SQL2011 동영상 강좌] 15. ORDER BY, GROUP BY, HAVING
[SQL2011 동영상 강좌] 16. SubQuery(서브쿼리)
[SQL2011 동영상 강좌] 17. 뷰에 대한 이해 및 생성, 수정, 삭제
[SQL2011 동영상 강좌] 18. 저장 프로시저에 대한 이해, 생성, 수정, 삭제
[SQL2011 동영상 강좌] 19. 인덱스에 대한 이해
[SQL2011 동영상 강좌] 20. 클러스터드 인덱스와 넌 클러스터드 인덱스
[SQL2011 동영상 강좌] 21. 트랜잭션에 대한이해
[SQL2011 동영상 강좌] 22. 트랜잭션의 격리수준 4가지
[SQL2011 동영상 강좌] 23. 잠금에 대한 이해
[SQL2011 동영상 강좌] 24. 백업과 복구에 대한 이해(풀백업, 차등백업, 트랜잭션 로그 백업)
[SQL2011 동영상 강좌] 25. 백업과 복구 전략
[SQL2011 동영상 강좌] 26. 커서란?