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 / SSMS / IntelliSense / 자동 완성 기능 사용하는 방법, 설정하는 방법

SQL Server / SSMS / IntelliSense / 자동 완성 기능 사용하는 방법, 설정하는 방법

텍스트 에디터의 경우 코드의 일부분을 입력했을 때 그 문자열을 포함한 코드 리스트를 보여주는 기능이 있다. 이러한 자동 완성 기능을 SSMS에서도 제공하고 있고, IntelliSense라고 한다. 원하는 것을 쉽게 찾고, 오타를 줄일 수 있는 유용한 기능이다. 예를 들어 from 뒤에 문자열을 입력하면 그와 관련된 것이 나오고, 상하 화살표를 이용해 선택한다. 선택한 것을 사용할 ...

SQL Server / 관리 / 스케줄에 따라 자동 백업하는 방법

SQL Server / 관리 / 스케줄에 따라 자동 백업하는 방법

데이터베이스는 주기적으로 백업을 해야 합니다. SQL Server의 유지 관리 계획을 이용하면, 백업 되풀이 작업을 만들어 일정 주기마다 자동으로 백업하게 할 수 있습니다. SSMS로 자동 백업을 만드는 방법을 알아보겠습니다. 을 선택합니다. 마우스 우클릭하고 를 클릭합니다. 을 클릭합니다. 이름을 적절히 정하고 을 클릭합니다. 를 선택하고 ...

SQL Server / Query / JOIN

SQL Server / Query / JOIN

JOIN으로 여러 개의 테이블의 데이터를 연결하여 조회할 수 있다. 다음과 같은 두 개의 테이블이 있다고 하자. country에는 나라의 이름이, city에는 도시의 이름이 있다.  INNER JOIN country 테이블의 country_no와 city 테이블의 country_no가 같은 것을 연결한다. 두 테이블에 모두 존재하는 데이터를 출력한다. select country.country_name, city.city_name from country inner join city on country.country_no = city.country_no ; LEFT JOIN country 테이블의 country_no와 ...

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 2022 / SQL Server 사용자 인증 가능하게 하는 방법

SQL Server 2022 / SQL Server 사용자 인증 가능하게 하는 방법

SQL Server를 설치할 때 별도의 설정을 하지 않았다면, Windows 인증만 가능하다. 만약 SQL Server의 인증도 필요하게 되었다면 설정 변경을 해야 한다. 아래는 SSMS를 이용하여 서버 인증 방식을 변경하는 방법이다. SSMS에서 개체를 선택하고 마우스 우클릭한다. 을 클릭한다. 왼쪽에서 을 선택한다. 오른쪽에 있는 를 선택한다. 을 클릭한다. 이 변경은 SQL Server ...

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 Express, SSMS, AdventureWorks 설치하는 방법

SQL Server Express, SSMS, AdventureWorks 설치하는 방법

SQL Server Express는 Microsoft가 제공하는 무료 SQL Server입니다. SQL Server Express, 그것을 관리하는 툴인 SSMS(SQL Server Management Studio), 샘플 데이터베이스 AdventureWorks를 설치하는 방법을 알아보겠습니다. SQL Server Express 다음 링크로 접속합니다. https://www.microsoft.com/ko-kr/sql-server/sql-server-downloads 밑으로 조금 내려가면 Express 다운로드 링크가 있습니다. 클릭하면 바로 다운로드합니다. 다운로드한 파일을 실행하면 다음과 같은 창이 나옵니다. 을 클릭합니다. 을 클릭합니다. 설치 위치를 정한 후 를 ...

SQL Server / Query / GO

예를 들어 DB라는 데이터베이스를 만들고, ID라는 열을 갖는 TB라는 테이블을 만든다고 하자. 쿼리로 만드는 경우 다음과 같이 할 수 있는데... CREATE DATABASE DB; USE DB; CREATE TABLE TB ( ID int ); 다음과 같은 에러가 난다. 데이터베이스 'DB'이(가) 없습니다. 이름을 제대로 입력했는지 확인하십시오. 이런 경우 GO를 사용한다. GO를 기준으로 해서 GO 위의 쿼리 실행을 마친 후 ...

SQL Server / 외부 접속 허용하는 방법

SQL Server / 외부 접속 허용하는 방법

SQL Server는 보통 Windows Server에 설치하게 되는데, 외부에서 접속하기 위해서는 SQL Server가 사용하는 1433 포트를 열어줘야 한다. 설정은 에서 한다. SQL Server의 기본 포트는 1433이다. 가능하다면 보안을 위해 다른 포트로 변경하는 것이 좋다. 별도의 방화벽에서 포트 포워딩을 할 수도 있고, 기본 포트를 변경할 수도 있다. 에서 ...

SQL Server / SSMS / 탭 설정하는 방법

SQL Server / SSMS / 탭 설정하는 방법

SSMS의 텍스트 에디터의 기본 탭 크기는 4이다. 만약 탭 크기를 변경하고 싶다면 을 열고, 텍스트 편집기 > 모든 언어 > 탭 으로 이동하여, 탭 크기의 수를 조정한다. 그리고 이에 맞게 들여쓰기도 같이 조정한다. 개인적으로 선호하는 설정은 탭 크기 2에 공백 삽입.