D18 - EX02 (DB활용, DROP 활용)

반응형


/**********************************************
* 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

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유