블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

Category

Recent Post

Recent Comment

Archive

2009. 9. 14. 23:10 .Net Project/WindowServer2008
반응형

--[1] 샘플 테이블 생성
Create Table dbo.Members
(
 Num Int Identity(1, 1) Not Null Primary Key, -- 일련번호
 Name VarChar(25) Not Null,      -- 이름
 Age TinyInt Null,        -- 나이
 Address VarChar(100) Null      -- 주소
)
Go

--[2] 예시 데이터 입력
Insert Into Members(Name, Age, Address)
Values('홍길동', 21, '서울')
Go

Insert Members Values('백두산', 100, '부산')
Go

Insert Members Values('한라산', 30, '부산')
Go

--[3] 데이터 조회(출력)
Select * From Members
Go

--[!] 하위쿼리(서브쿼리)
-- 3번인 데이터의 나이보다 큰 데이터만 출력

--  [a] 3번 레코드의 나이
Select Age From Members Where Num = 3

-- [b] 3번 레코드의 나이보다 큰 데이터 출력
Select * From Members Where Age > 30

--  [a] 3번 레코드의 나이
Declare @intAge Int
Select @intAge = Age From Members Where Num = 3

-- [b] 3번 레코드의 나이보다 큰 데이터 출력

Select * From Members Where Age > @intAge

--[!] 최종 : 서브쿼리는 기본적으로 스칼라값이 반환되어져야 함
Select * From Members
Where Age > (Select Age From Members Where Num = 3)
Go

-- 나이가 평균 이하인 사람 출력
Select * From Members Where Age <= (Select Avg(Age) From Members)
Go

-- 주소가 '부산'인 사람의 나이보다 크거나 같은 데이터 출력
Select * From Members
Where Age >= (Select Age From Members Where Address = '부산')
Go -- 에러

-- Scalar값이 아닌 다중 레코드 값은 In 구문 사용
Select * From Members
Where Age In (Select Age From Members Where Address = '부산')
Go

-- 위 구문을 개선 : Or(Any, Some) 연산, And(All) 연산
Select * From Members
Where
 Age >= Any(Select Age From Members Where Address = '부산')
Go -- 30, 100

Select * From Members
Where
 Age >= All(Select Age From Members Where Address = '부산')
Go -- 100

--[6] 테이블 삭제
Drop Table dbo.Members
Go


 

반응형

'.Net Project > WindowServer2008' 카테고리의 다른 글

07장 조인(Join)  (0) 2009.09.14
06장 연산자  (0) 2009.09.14
4장 사용자 생성  (0) 2009.09.14
3장 문자열 관련함수  (0) 2009.09.14
2장 테이터베이스 이름 변경  (0) 2009.09.14
posted by Magic_kit