loading

프로그래밍/MS-SQL

SQL문 실습 - WHERE(2)

침착곰 2016. 4. 13. 11:38
반응형

SQL문 실습 - WHERE(1)의 글에 이어서 WHERE구문에 대해서 알아보겠습니다.

 

이전 글 : SQL문 실습 - WHERE(1)

 
--> IN을 사용해서 해당 조건에 만족하는 데이터들을 가져올 수 있습니다.
1. Search Customers
(only CustomerID, Country, City, ContactTitle column)
(And Country is "France" and City is "Paris" or "Lyon")
------------------------------------------------------------------------------
1
2
3
SELECT CustomerID, Country, City, ContactTitle
  FROM Customers
 WHERE Country = 'France' AND City IN ('Paris''Lyon')
cs
 
2. Search Customers
(CotactTitle is "Marketing Manager" and Country is "USA" and City is "Portland" or "Walla Walla")
(Only CustomerID, Country, City, ContactTitle column)
------------------------------------------------------------------------------
1
2
3
4
5
SELECT CustomerID, Country, City, ContactTitle
  FROM Customers
 WHERE ContactTitle = 'Marketing Manager' 
   AND Country = 'USA'
   AND City IN('Portland''Walla Walla')
cs
 
 
--> (>, <, >=, <=) 등의 부등호를 통해서 해당하는 값보다 크거나 작은 조건을 만족하는 데이터를 불러옵니다.
3. Search Orders(OrderDate is bigger or equal than 1997-01-01)
------------------------------------------------------------------------------
1
2
3
SELECT *
  FROM Orders
 WHERE OrderDate >= '1997-01-01'
cs
 

 

 
O4. Searh Orders(OrderDate is bigger or equal than 1997-01-01
and OrderDate is smaller than 1997-02-01(not include 1997-02-01))
------------------------------------------------------------------------------
1
2
3
SELECT *
  FROM Orders
 WHERE OrderDate >= '1997-01-01' AND OrderDate < '1997-02-01'
cs
 
 
5. Search Orders
CustomerID is EASTC
OrderDate is bigger or equal than 1997-01-01
and OrderDate is smaller than 1997-02-01(not include 1997-02-01)
------------------------------------------------------------------------------
1
2
3
4
5
SELECT *
  FROM Orders
 WHERE CustomerID = 'EASTC' 
   AND OrderDate >= '1997-01-01' 
   AND OrderDate < '1997-02-01'
cs
 
 
--> BETWEEN을 활용하면 값 사이에 있는 조건을 만족하는 데이터를 가져올 수 있습니다.
--> BTEWEEN은 <=, >= 조건과 같습니다.
6. Search Orders
Freight is bigger or equal than 100
And Freight is smaller or equal than 200
Only Freight, CustomerID, OrderDate column
Use BETWEEN condition
------------------------------------------------------------------------------
1
2
3
SELECT Freight, CustomerID, OrderDate
  FROM Orders
 WHERE Freight BETWEEN 100 AND 200 
cs
 
 
 
 
--> LIKE 'A%'는 A로 시작하는 모든 값들의 데이터를 가져온다.
--> 이와 비슷하게 '%A'는 A로 끝나는 모든 값들의 데이터를 가져온다.
--> '%A%'의 경우 중간에 A가 들어간 모든 값들의 데이터를 가져온다.
--> 실제로 굉장히 많이 사용하는 LIKE입니다. 꼭 알아둡시다.
7. Search Customers
CustomerID Like A%
------------------------------------------------------------------------------
1
2
3
SELECT *
  FROM Customers
 WHERE CustomerID LIKE 'A%'
cs
 
 
8. Search Customers
ContactTitle Like Sales%
------------------------------------------------------------------------------
1
2
3
SELECT *
  FROM Customers
 WHERE ContactTitle LIKE 'Sales%'
cs
 
 
--> ISNULL(컬럼명, 값)을 사용하면 컬럼명이 NULL인 경우 값으로 해당 내용을 교체시킬 수 있다.
9. Search Customers
Region is NULL
And Country is Mexico
Only CustomerID and Country, City, Region column
and When Region column is NULL, Region change to ''
------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
SELECT CustomerID, Country, City, ISNULL(Region, '') Region
  FROM Customers
 WHERE ISNULL(Region, ''= '' 
   AND Country = 'Mexico'
 
SELECT CustomerID, Country, City, ISNULL(Region, '') Region
  FROM Customers
 WHERE Region IS NULL 
   AND Country = 'Mexico'
cs
 
이처럼 WHERE구문에서는 다양한 함수들을 통해서 다양한 조건들을 검색해서 데이터를 표시할 수가 있습니다.
여기까지 WHERE구문에 대한 실습을 마치겠습니다.
다음 글에서는 조회된 프로그램을 정렬해주는 구문인 ORDER BY에 대해서 설명해보겠습니다.
 

 

참고 : SQL Server 기본SQL문 교육

반응형
그리드형

'프로그래밍 > MS-SQL' 카테고리의 다른 글

SQL문 실습 - String Function(1)  (0) 2016.04.13
SQL문 실습 - ORDER BY  (0) 2016.04.13
SQL문 실습 - WHERE(1)  (0) 2016.04.13
SQL문 실습 - SELECT(1)  (0) 2016.04.13
MS-SQL bak파일 복원하기  (0) 2016.04.13