/**********************************************
* where 절을 이용한 조건 검사
* -> select column_list
* -> from table_name
* -> where condition1 and/or condition2 ...
*
* 문자 또는 문자열 또는 날짜 표시 : 작은따옴표 사용
***********************************************/
--1. Northwind 데이터베이스 컨텍스트로 변경
USE Northwind;
--2. Customers 테이블에서 독일 또는 프랑스 지역의 고객 조회 (where절을 이용한 조건검사)
SELECT * FROM Customers
SELECT *
FROM Customers
WHERE Country = 'Germany' or Country = 'France'
--3. Products 테이블에서 단위당가격(unitprice)이 50이상인 제품 조회
SELECT * FROM Products
SELECT *
FROM Products
WHERE unitprice >= 50
--3_2. Products 테이블에서 단위당가격(unitprice)이 50이고
-- 재고량은 30이하인 제품 조회
sp_help Products
SELECT *
FROM Products
WHERE unitprice >= 50 and UnitsInStock <= 30
-- 4. Products 테이블에서 단위당가격(unitprice)이 50이상 100이하인 제품
SELECT *
FROM Products
WHERE unitprice BETWEEN 50 AND 100 -- 같은 구문
--WHERE unitprice >= 50 and UnitsInStock <= 100
-- 5. pubs 데이터베이스 컨텍스트로 이동
USE pubs
-- 6. titles 테이블에서
-- 가격이 10이상 20이하이고
-- 분류(type)이 business이고
-- 연간실적이 4천대인 데이터 조회
sp_help titles
SELECT *
FROM titles
WHERE (price BETWEEN 10 and 20) and
type = 'business' and
ytd_sales / 1000 = 4
-- ytd_sales >= 4000 and ytd_sales < 5000
-- 10/4 일
--6-2. titles 테이블에서
-- 분류(type)가 business 또는 psyfchology인 도서 조회
SeLECT *
FROM titles
--WHERE type = 'business' OR type = 'psychology'
--WHERE type IN ('business', 'psychology') --값의 목록을 명시
WHERE type IN --값의 목록을 조회를 통해 구성
(
SELECT type FROM titles
WHERE type = 'business' OR type = 'psychology'
)
--7. titles 테이블에서
-- 가격이 20이상인 ... 데이터 조회
SELECT *
FROM titles
WHERE
--price >= (SELECT price FROM titles WHERE title_id = 'PS2091') -- PS2091 보단 큰 값 출력
--price >= ALL(SELECT price FROM titles WHERE type = 'business') -- 19.99 이상(즉 최상 조건 숫자 이상)
--price >= ANY(SELECT price FROM titles WHERE type = 'business') -- 2.99 이상( 즉 최소 조건 숫자 이상)
--price = ANY(SELECT price FROM titles WHERE type = 'business') --business 같은 값만 출력
price IN(SELECT price FROM titles WHERE type = 'business') -- = ANY 와 같다
--Northwind 데이터베이스 컨텍스트로 이동
USE Northwind
SELECT *
FROM Customers
SELECT * FROM Products
sp_help Customers
--8. 국가가 USA, BRAZIL인 고객 목록을 조회
SELECT *
FROM Customers
WHERE Country IN ('USA' , 'Brazil')
--8_1 아이디가 HUNGC인 고개과 같은 국가의 고객 목록을 조회
SELECT *
FROM Customers
WHERE
Country =
(
SELECT Country FROM Customers WHERE CustomerID = 'HUNGC'
)
--8_2 회사명이 A 시작하는 고객 목록 조회
SELECT *
FROM Customers
WHERE CompanyName LIKE 'A%' --와일드카드 검색 , %A% A를 포함한 검색
--9. 회사명이 B로 시작하는 고객과 같은 국가의 고객 목록 조회
SELECT *
FROM Customers
WHERE Country IN
(
SELECT Country FROM Customers WHERE CompanyName LIKE 'B%' --와일드카드 검색
)
--10. 위 조회를 국가명, 회사명 순으로 정렬해서 표시
SELECT *
FROM Customers
WHERE Country IN
(
SELECT Country FROM Customers WHERE CompanyName LIKE 'B%' --와일드카드 검색
)
ORDER BY country asc, CompanyName desc --asc 오름차순, desc 내림차순
--11. 고객의 국가 목록을 조회
SELECT DISTINCT Country --DISTINCT중복 목록제거 하고 오름차순으로 자동 정렬
FROM Customers
-- PUBS 데이터베이스 컨텍스트로 이동
USE pubs
--12. 도서목록 조회
SELECT *
FROM titles
--WHERE ytd_sales != NULL -- 직접 NULL 비교를 수행 할 수 없습니다.
WHERE ytd_sales IS NOT NULL
ORDER BY ytd_sales DESC
--12_1. 년간매출액 기준 상위 3위까지의 도서목록 조회
SELECT TOP (3)* -- TOP은 MS-SQL 에만 있는 기능!
FROM titles
WHERE ytd_sales IS NOT NULL
ORDER BY ytd_sales DESC
--AdventureWorks 데이터베이스 컨텍스트로 이동
USE AdventureWorks
--13. 제품테이블에서 10%의 샘플 데이터를 추출하세요
SELECT *
FROM Production.Product
TABLESAMPLE (10 PERCENT)
--Notthwind 데이터베이스 컨텍스트로 이동
USE Northwind
--14. Customer 테이블의 데이터 복사
SELECT * INTO customers_copy -- Customers 의 내용을 customers_copy에 저장 ( customers_copy 가 생성이된다 )
FROM Customers
SELECT *
FROM customers_copy
DROP TABLE customers_copy
'프로그램 > MSSQL SERVER 2008R2' 카테고리의 다른 글
D19 - INSERT , UPDATE , DELETE (3) | 2010.10.05 |
---|---|
D19 - EX04 JOIN ( INNER JOIN , OUTER JOIN, CROSS JOIN, UNION JOIN) (0) | 2010.10.05 |
D18 - EX03 GROUP BY, HAVING, ORDER BY 기능활용 (SUM, AVG, COUNT, MIN, MAX 기능) (0) | 2010.10.04 |
D17 - EX02(MSSQL) (0) | 2010.10.01 |
D17 - EX01 (MSSQL) (0) | 2010.10.01 |