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 
;

 

Related Posts

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

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

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

SQL Server / 열 / 만들기, 삭제하기, 수정하기, 조회하기

열 정보 조회하기 방법 1 client 테이블의 열의 모든 정보를 조회한다. select * from information_schema.columns where table_name = 'client'; client 테이블의 열의 특정 정보만 조회한다. select column_name, ordinal_position, data_type from information_schema.columns where table_name = 'client'; 방법 2 execute sp_columns @table_name = 'city'; 열 추가하기 client 테이블에 client_name 열을 추가한다. 테이터 형식은 varchar, 최대 길이는 50이다. alter table client add ...

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

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

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

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

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

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

SQL Server / 오류 22022 / SQLServerAgent가 현재 실행되고 있지 않으므로 이 동작을 알릴 수 없습니다.

SQL Server / 오류 22022 / SQLServerAgent가 현재 실행되고 있지 않으므로 이 동작을 알릴 수 없습니다.

SQL Server에 스케줄에 따라 자동 백업하는 작업을 추가할 때 다음과 같은 메시지가 나왔습니다. SQL Server Agent가 실행되고 있지 않아 작업을 추가할 수 없는 것입니다. SQL Server Agent가 실행 중이 아니어서 발생한 문제이므로, 실행시키면 해결되겠죠? SQL Server가 설치된 컴퓨터의 서비스를 엽니다. Windows Server라면 서버 관리자에서 를 클릭하면 됩니다. 아니면, 실행 창을 ...

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 / 글꼴 변경하는 방법

SQL Server 관리는 보통 SSMS(SQL Server Management Studio)로 한다. 다른 툴도 많이 있지만, 전용 도구가 갖는 장점이 많이 있기 때문이다. 보통 한글 버전을 설치하게 되는데, 쿼리 창 기본 글꼴이 돋움체이다. 만약 이 글꼴이 마음에 들지 않는다면 옵션에서 변경할 수 있다. 변경은 에서 한다. 에서 글꼴을 설정해주면 끝. 개인적으로 ...

SQL Server / Query / 주석

SQL Server / Query / 주석

주석으로 처리하면 해당 문자열은 실행되지 않습니다. 코드에 설명을 달거나 특정 쿼리를 잠시 실행시키고 싶지 않을 때 사용합니다. 주석에는 한 줄 주석과 여러 줄 주석이 있습니다. 한 줄 주석은 --로 만듭니다. -- 뒤에 있는 문자열이 주석이 됩니다. -- Commnet SELECT * FROM myDB; -- Comment 여러 줄 주석을 만들고 싶다면 /*와 */로 감쌉니다. 그 사이에 있는 ...

SQL Server / 설치하는 방법

SQL Server / 설치하는 방법

SQL Server 상용 버전인 SQL Server Standard 또는 SQL Server Enterprise를 설치하고, 샘플 데이터베이스를 가져오는 과정을 정리한다 SQL Server 평가판 다운로드 만약 SQL Server 라이선스가 없다면 다음 링크에서 평가판을 다운로드한다. 180일 동안 사용 가능하다. https://www.microsoft.com/ko-kr/evalcenter/evaluate-sql-server SQL Server 설치 DVD 또는 ISO 파일 안에 있는 setup 파일을 더블 클릭하여 실행한다. 왼쪽에서 를 선택한 후 [새 SQL Server ...