SQL Server / 연산자 / 비교 연산자, 논리 연산자

예제로 사용한 데이터베이스는 AdventureWorks이다.

같다

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10인 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID = 10
;

같지 않다

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10보다 작거나 큰, 즉 같지 않은 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID <> 10
;
  • <> 대신 !=를 사용해도 된다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID != 10
;

크다

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10보다 큰 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID > 10
;

크거나 같다 / 작지 않다

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10보다 크거나 같은 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID >= 10
;
  • 크거나 같은 것은 작지 않은 것이므로 >= 대신 !<를 사용해도 된다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID !< 10
;

작다

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10보다 작은 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID < 10
;

작거나 같다 / 크지 않다

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10보다 작거나 같은 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID <= 10
;
  • 작거나 같은 것은 크지 않은 것이므로 <= 대신 !>를 사용해도 된다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID !> 10
;

AND / OR

여러 조건에 대한 비교를 하고 싶다면 AND나 OR를 사용한다. AND는 모든 조건을 만족하는 것, OR는 적어도 하나를 만족하는 것을 찾는다.

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10보다 크거나 같고 20보다 작거나 같은 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID >= 10
  and BusinessEntityID <= 20
;
  • HumanResources.Employee 테이블에서 BusinessEntityID가 10보다 작거나 20보다 큰 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID < 10
  or BusinessEntityID > 20
;

조건에 괄호가 있으면 괄호 안의 조건을 먼저 체크한다.

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10 이상 20 이하 또는 100인 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  ( BusinessEntityID >= 10 and BusinessEntityID <= 20 )
  or BusinessEntityID = 100
;

BETWEEN

BETWEEN으로 두 값 사이의 데이터를 추출할 수 있다.

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10보다 크거나 같고 20보다 작거나 같은 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID between 10 and 20
;
  • 즉, 아래와 같다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID >= 10
  and BusinessEntityID <= 20
;

IN / NOT IN

IN으로 적어도 하나와 일치하는 데이터를 추출할 수 있다.

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10 또는 20 또는 30인 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID in ( 10, 20, 30 )
;
  • 이는 다음과 같이 할 수도 있다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID = 10
  or BusinessEntityID = 20
  or BusinessEntityID = 30  
;

NOT IN으로 일치하지 않는 데이터를 추출할 수 있다.

  • HumanResources.Employee 테이블에서 BusinessEntityID가 10이 아니고, 20이 아니고, 30이 아닌 데이터를 출력한다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID not in ( 10, 20, 30 )
;
  • 이는 다음과 같이 할 수도 있다.
select
  *
from HumanResources.Employee
where
  BusinessEntityID <> 10
  and BusinessEntityID <> 20
  and BusinessEntityID <> 30  
;

데이터 형식이 문자열, 날짜인 경우

데이터 형식이 문자열 또는 날짜인 경우 사전식 배열순으로 대소를 정한다. 즉 A는 B보다 작다.

  • HumanResources.Employee 테이블에서 HireDate가 2008-01-06보다 크거나 같은, 즉 2008-01-06 이후에 고용된 사람의 데이터를 출력한다.
select
  *
from HumanResources.Employee
where 
  HireDate >= '2008-01-06'
order by HireDate 
;
  • HumanResources.Employee 테이블에서 JobTitle이 HireDate가 buyer보다 작은, 즉 사전식으로 배열했을 때 buyer보다 앞에 있는 사람의 데이터를 출력한다.
select
  *
from HumanResources.Employee
where 
  JobTitle < 'buyer'
order by JobTitle 
;

 

같은 카테고리의 다른 글
SQL Server / 데이터베이스 저장 위치 변경하는 방법

SQL Server / 데이터베이스 저장 위치 변경하는 방법

데이터베이스 기본 저장 위치 변경 데이터베이스를 만들거나 복원할 때 기본적으로 저장되는 위치는 SQL Server를 설치할 때 정합니다. 그 위치를 변경하고 싶다면 다음과 같이 합니다. 서버를 선택하고 마우스 우클릭 후 을 클릭합니다. 왼쪽 메뉴에서 을 클릭합니다. 를 원하는 위치로 변경하고... 을 클릭합니다. 서버를 재부팅하거나, 서비스에서 SQL Server를 다시 시작해야 반영됩니다. 데이터베이스 만들 때 저장 위치 ...

SQL Server / 논리 연산자 / IN, NOT IN

SQL Server / 논리 연산자 / IN, NOT IN

예제로 사용한 데이터베이스는 AdventureWorks이다. IN 다음은 Person.Person 테이블에서 FirstName, MiddleName, LastName을 10개 추출하는 쿼리이다. SELECT TOP(10) FirstName, MiddleName, LastName FROM Person.Person 만약 FirstName이 Syed 또는 Sam 또는 John인 사람을 추출하고 싶다면 아래처럼 쿼리한다. SELECT TOP(10) FirstName, MiddleName, LastName FROM Person.Person WHERE FirstName IN ( 'Syed', 'Sam', 'John' ) 물론 아래와 같이 해도 된다. SELECT TOP(10) FirstName, MiddleName, LastName FROM Person.Person WHERE FirstName ...

SQL Server / SSMS / 쿼리 만들고 실행하는 방법

SQL Server / SSMS / 쿼리 만들고 실행하는 방법

쿼리(Query)를 이용하여 필요한 데이터를 추출하거나 여러 가지 작업을 할 수 있다. SSMS에서 쿼리를 만들고 실행하는 과정은 다음과 같다. SQLServer에 접속하고 데이터베이스 선택 데이터베이스 서버에 접속하고 를 클릭한다. 드롭다운 목록에서 쿼리를 할 데이터베이스를 선택한다. 쿼리 작성하고 실행 쿼리를 입력하고 을 클릭한다. 단축키는 F5이다. SQL은 대소문자를 구분하지 않는다. 하단에 쿼리 결과가 나온다. 여러 개의 쿼리를 입력했다면 각각 결과가 나온다. 일부 쿼리 ...

SQL Server / SSMS / 메모

SQL Server / SSMS / 메모

1433 이외의 포트로 접속하는 방법 SQL Server 기본 포트는 1433이다. 기본 포트일 때는 IP나 도메인만으로 접속가능한데, 포트를 바꾸었다면 명시해주어야 한다. 예를 들어 IP가 123.123.123.123, 포트가 12345로라면... 123.123.123.123,12345 특이하게 :가 아니라 ,를 쓴다. SSMS에서 대문자를 소문자로, 소문자를 대문자로 만드는 방법 SQL 구문은 대소문자를 구분하지 않지만 보통 대문자로 표현한다. Shift를 누르거나 Caps Lock을 쓰는 게 불편하다면 단축키를 ...

SQL Server / 샘플 데이터베이스 AdventureWorks 설치하는 방법

SQL Server / 샘플 데이터베이스 AdventureWorks 설치하는 방법

만약 공부에 필요한 샘플 데이터베이스가 필요하다면 Micrososft에서 제공하는 AdventureWorks를 사용하자. AdventureWorks 샘플 데이터베이스 페이지에 접속하여 백업 파일을 다운로드한다. AdventureWorks는 OLTP 데이터베이스, AdventureWorksDW는 OLAP 데이터베이스, AdventureWorksLT는 AdventureWorks의 경량 및 축소 버전이다. 디스크 공간이 충분하다면 AdventureWorks와 AdventureWorksDW를 설치하자. SSMS에서 를 선택하고... 마우스 우클릭 후 을 클릭한다. 를 선택하고, 찾아보기 아이콘을 클릭한 후... 를 클릭하고... 다운로드한 파일을 선택하고 을 클릭한다. 을 ...

SQL Server / 버전 확인하는 두 가지 방법

SQL Server / 버전 확인하는 두 가지 방법

SQL Server 버전 확인하는 방법 1 SQL Server Configuration Manager를 연다. 왼쪽에서 를 선택한다. 오른쪽에서 을 클릭한다. 탭에서 버전을 확인할 수 있다. SQL Server 버전 확인하는 방법 2 SSMS에서 다음 쿼리를 실행한다. select @@version;

SQL Server / 데이터베이스 / 만들기, 삭제하기, 수정하기, 조회하기

데이터베이스 만들기 데이터베이스는 create database로 만든다. shop이라는 이름의 데이터베이스를 만든다. create database shop; 데이터베이스 이름에 띄어쓰기 또는 특수문자가 있는 경우 큰 따옴표 또는 대괄호로 감싼다. create database "shop.shop"; create database ; 데이터베이스 삭제하기 데이터베이스는 drop database로 삭제한다. drop database shop; 데이터베이스 이름에 띄어쓰기 또는 특수문자가 있는 경우 큰 따옴표 또는 대괄호로 감싼다. drop database "shop.shop"; drop database ; 데이터베이스 사용하기 작업 대상이 되는 데이터베이스를 ...

SQL Server / 보안 / 사용자 계정 만들고 권한 추가하는 방법

SQL Server / 보안 / 사용자 계정 만들고 권한 추가하는 방법

SQL Server의 사용자 계정은 Windows 인증을 이용한 사용자 계정, SQL Server 자체의 사용자 계정이 있습니다. 그 중 SQL Server 자체의 사용자 계정을 만들고, 권한을 부여하는 방법을 알아보겠습니다. SSMS로 SQL Server에 접속합니다. 을 선택합니다.(확장하면 전체 사용자 목록을 볼 수 있습니다.) 마우스 우클릭하고 을 클릭합니다. 사용자를 추가하는 창이 뜹니다. 을 선택하고... 로그인 ...

SQL Server / 포트 변경하는 방법

SQL Server / 포트 변경하는 방법

SQL Server의 기본 포트는 1433이다. 보안을 비롯하여 여러 가지 이유로 포트를 변경해야 할 경우가 있다. SQL Server의 포트를 1433에서 다른 것으로 변경하는 방법은 다음과 같다. 를 연다. 에서 인스턴스를 선택한다. 을 클릭한다. 의 TCP 포트를 원하는 것으로 변경한다. 또는 ...

SQL Server / 스키마 / 만들기, 조회하기, 수정하기, 삭제하기

스키마(Schema)를 이용하여 테이블을 분류하고 권한 관리를 할 수 있다. 스키마 만들기 a라는 이름의 스키마를 만든다. create schema a; 스키마 조회하기 스키마 정보를 출력한다. select * from sys.schemas; 테이블 만들기 스키마 지정 없이 테이블을 만들면 dbo 스키마가 붙는다. create table client ( id int ); 스키마를 지정하고 만들면, 그 스키마에 테이블이 만들어진다. create table a.client ( id int ); dbo.client와 a.client는 테이블 이름은 ...