비교연산자와 논리연산자

Hyuntae Jung·2022년 7월 24일
0

MS SQL

목록 보기
7/41
post-thumbnail

1. WHERE

SELECT *
FROM Employee
WHERE salary >= 500;

https://docs.microsoft.com/ko-kr/sql/t-sql/language-elements/comparison-operators-transact-sql?view=sql-server-ver16

SELECT *
FROM employee
WHERE salary != 500;

salary값이 500이 아닌 것들을 추출

2. 날짜 데이터 WHERE

SELECT *
FROM employee
WHERE hireDate >= 2007/01/01;

위와 같이 적용이 안된 것을 볼 수 있다.

SELECT *
FROM employee
WHERE hireDate >= '2007/01/01';

날짜를 '로 감싸야 정상적으로 출력된다.

3. 논리 연산자

조건을 여러개 조합해서 결과를 얻어야 할 경우에 사용한다.

  • AND
  • OR
  • NOT
  • BETWEEN
  • IN
  • LIKE

https://docs.microsoft.com/ko-kr/sql/t-sql/language-elements/logical-operators-transact-sql?view=sql-server-ver16

3.1. AND

SELECT *
FROM employee
WHERE deptNo = 10 AND job = '과장';

3.2. OR

SELECT * 
FROM employee
WHERE deptNo = 10 OR job = '과장';

3.3. NOT

SELECT * 
FROM employee
WHERE NOT deptNo = 10;
SELECT * 
FROM employee
WHERE deptNo != 10;

3.4. AND와 OR 비교

SELECT *
FROM employee
WHERE salary >= 400 AND salary <=500;
SELECT *
FROM employee
WHERE salary >= 400 OR salary <=500;

3.5. BETWEEN AND

: 논리연산자와 비교연산자를 합친 기능을 수행한다.

SELECT *
FROM employee
WHERE salary BETWEEN 400 AND 500;
SELECT *
FROM employee
WHERE NOT salary BETWEEN 400 AND 500;
SELECT *
FROM employee
WHERE hireDate BETWEEN '2004/01/01' AND '2007/12/31';

3.6. IN

SELECT *
FROM employee
WHERE commission = 80 OR commission = 100 OR commission = 200;
SELECT *
FROM employee
WHERE commission IN (80, 100, 200); 

두 결과가 동일하게 나오는 것을 알 수 있다.

IN을 사용할 경우 간결하게 표현가능하다.

3.7. LIKE

칼럼에 저장된 데이터의 일부만 일치하더라도 조회가 가능하도록 하는 연산자이다.
검색하고자 하는 값을 정확히 모를 경우에 검색할 수 있도록 하기위해서 와일드 문자(%, _)와 같이 사용한다.

SELECT *
  FROM employee
WHERE empName LIKE '이%';

위와 같이 '이'씨 성을 가진 사람들이 출력된다.

Recap: 데이터 추가하기 Query

INSERT employee(empNo, empName, deptNo) VALUES(1016, '이 정', 40);

위와 같이 '이 정'도 추출된다.

SELECT * 
  FROM employee
WHERE empName LIKE '이__';
SELECT *
  FROM employee
WHERE empName LIKE '%동%';
SELECT *
  FROM employee
WHERE empName LIKE '%장%';

앞에 문자가 없어도, 뒤에 문자가 없어도 출력되는 것을 볼 수 있다.

SELECT *
  FROM employee
WHERE empName LIKE '_동_';
SELECT *
  FROM employee
WHERE empName NOT LIKE '%장%';
SELECT *
  FROM employee
WHERE empName NOT LIKE '_동_';

4. NULL은 비교연산을 할 수 없다.

SELECT *
  FROM employee
WHERE manager = NULL;

모르는 값을 NULL으로 추출할 수 없다

SELECT *
  FROM employee
WHERE manager IS NULL;

IS NULL으로 추출한다.

SELECT *
  FROM employee
WHERE commission IS NOT NULL;

강의: ms sql 2014 제대로 배우기 1

0개의 댓글