공부/TIL

[SQL 첫걸음] 2장 06강 검색 조건 지정하기

2023. 11. 13. 09:07
목차
  1. 06. 검색 조건 지정하기

06. 검색 조건 지정하기

학습 내용
조건을 지정하여 데이터를 검색하는 방법
행을 WHERE 구, 열을 SELECT 구로 선택하여 검색하는 방법

 

1. SELECT 구에서 열 지정하기

열 여러개 지정 가능 : SELECT 열1, 열2... FROM 테이블명

열이 정의된 순서와 동일한 순서로 지정할 필요 없음

중복으로 열을 지정해도 상관 없음

mysql> SELECT * FROM sample21;
+------+--------+------------+-------------------+
| no   | name   | birthday   | address           |
+------+--------+------------+-------------------+
|    1 | 박준용 | 1976-10-18 | 대구광역시 수성구 |
|    2 | 김재진 | NULL       | 대구광역시 동구   |
|    3 | 홍길동 | NULL       | 서울특별시 마포구 |
+------+--------+------------+-------------------+
3 rows in set (0.01 sec)

mysql> SELECT no, name FROM sample21;
+------+--------+
| no   | name   |
+------+--------+
|    1 | 박준용 |
|    2 | 김재진 |
|    3 | 홍길동 |
+------+--------+
3 rows in set (0.00 sec)

mysql> SELECT address, name FROM sample21;
+-------------------+--------+
| address           | name   |
+-------------------+--------+
| 대구광역시 수성구 | 박준용 |
| 대구광역시 동구   | 김재진 |
| 서울특별시 마포구 | 홍길동 |
+-------------------+--------+
3 rows in set (0.00 sec)

mysql> SELECT address, name, no, no FROM sample21;
+-------------------+--------+------+------+
| address           | name   | no   | no   |
+-------------------+--------+------+------+
| 대구광역시 수성구 | 박준용 |    1 |    1 |
| 대구광역시 동구   | 김재진 |    2 |    2 |
| 서울특별시 마포구 | 홍길동 |    3 |    3 |
+-------------------+--------+------+------+
3 rows in set (0.00 sec)

 

2. WHERE 구에서 행 지정하기

보통 행은 열에 비해 훨씬 많음

WHERE 구는 FROM 구의 뒤에 표기 : SELECT 열 FROM 테이블명 WHERE 조건식

 

구의 순서와 생략

- SQL에는 구의 순서가 정해져 있어 바꿔적을 수 없음

- WHERE 구처럼 생략 가능한 구 존재(생략 시 테이블 내의 모든 행이 검색 대상)

 

WHERE 구

- 조건식 : 열, 연산자, 상수로 구성되는 식

- WHERE 구로 행만 추출할 수도 있고, 동시에 열 지정도 가능

mysql> SELECT * FROM sample21 WHERE no = 2;
+------+--------+----------+-----------------+
| no   | name   | birthday | address         |
+------+--------+----------+-----------------+
|    2 | 김재진 | NULL     | 대구광역시 동구 |
+------+--------+----------+-----------------+
1 row in set (0.00 sec)

mysql> SELECT no, name FROM sample21 WHERE no = 2;
+------+--------+
| no   | name   |
+------+--------+
|    2 | 김재진 |
+------+--------+
1 row in set (0.00 sec)

 

조건식

- 조건식 'no = 2'는 no 열 값이 2일 경우에 참이 되는 조건

- 'no = 2' = 'no' + '=' + '2'

- 'no' : 열 이름

- '=' : 어떤 계산을 할지 지정하는 연산자, =의 경우, 좌우로 2개 항목이 필요한 이항 연산자에 해당, 동시에 결괏값이 참/거짓인지 반환하므로 비교 연산자에 해당

- '2' : 상수

 

값이 서로 다른 경우 '<>'

- 서로 다른 값인지를 비교하는 연산자 (<=> '=' : 서로 같은 값인지를 비교하는 연산자)

mysql> SELECT * FROM sample21;
+------+--------+------------+-------------------+
| no   | name   | birthday   | address           |
+------+--------+------------+-------------------+
|    1 | 박준용 | 1976-10-18 | 대구광역시 수성구 |
|    2 | 김재진 | NULL       | 대구광역시 동구   |
|    3 | 홍길동 | NULL       | 서울특별시 마포구 |
+------+--------+------------+-------------------+
3 rows in set (0.00 sec)

mysql> SELECT * FROM sample21 WHERE no <> 2;
+------+--------+------------+-------------------+
| no   | name   | birthday   | address           |
+------+--------+------------+-------------------+
|    1 | 박준용 | 1976-10-18 | 대구광역시 수성구 |
|    3 | 홍길동 | NULL       | 서울특별시 마포구 |
+------+--------+------------+-------------------+
2 rows in set (0.00 sec)

 

3. 문자열형의 상수

- 문자열의 경우 싱글쿼트('')로 둘러싸 비교값 표기

- 날짜시간형의 경우에도 싱글쿼트로 둘러싸 표기, 연월일은 하이픈(-), 시분초는 콜론(:)으로 구분하여 표기 ex. '2023-03-03 10:22:33'

- 문자열형의 열과 비교하기 위해선 조건으로 지정할 값도 그 자료형에 맞춰 지정해야 함

- 리터럴 Literal : 자료형에 맞게 표기한 상수값

mysql> SELECT * FROM sample21;
+------+--------+------------+-------------------+
| no   | name   | birthday   | address           |
+------+--------+------------+-------------------+
|    1 | 박준용 | 1976-10-18 | 대구광역시 수성구 |
|    2 | 김재진 | NULL       | 대구광역시 동구   |
|    3 | 홍길동 | NULL       | 서울특별시 마포구 |
+------+--------+------------+-------------------+
3 rows in set (0.00 sec)

mysql> SELECT * FROM sample21 WHERE name = '박준용';
+------+--------+------------+-------------------+
| no   | name   | birthday   | address           |
+------+--------+------------+-------------------+
|    1 | 박준용 | 1976-10-18 | 대구광역시 수성구 |
+------+--------+------------+-------------------+
1 row in set (0.00 sec)

 

4. NULL값 검색

IS NULL

- '=' 연산자로는 NULL 값 검색 불가능

- IS NULL : 술어

mysql> SELECT * FROM sample21;
+------+--------+------------+-------------------+
| no   | name   | birthday   | address           |
+------+--------+------------+-------------------+
|    1 | 박준용 | 1976-10-18 | 대구광역시 수성구 |
|    2 | 김재진 | NULL       | 대구광역시 동구   |
|    3 | 홍길동 | NULL       | 서울특별시 마포구 |
+------+--------+------------+-------------------+
3 rows in set (0.00 sec)

mysql> SELECT * FROM sample21 WHERE birthday IS NULL;
+------+--------+----------+-------------------+
| no   | name   | birthday | address           |
+------+--------+----------+-------------------+
|    2 | 김재진 | NULL     | 대구광역시 동구   |
|    3 | 홍길동 | NULL     | 서울특별시 마포구 |
+------+--------+----------+-------------------+
2 rows in set (0.00 sec)

 

<-> IS NOT NULL : NULL 값이 아닌 행 검색

mysql> SELECT * FROM sample21 WHERE birthday IS NOT NULL;
+------+--------+------------+-------------------+
| no   | name   | birthday   | address           |
+------+--------+------------+-------------------+
|    1 | 박준용 | 1976-10-18 | 대구광역시 수성구 |
+------+--------+------------+-------------------+
1 row in set (0.00 sec)

 

5. 비교 연산자

= 연산자

좌변과 우변의 값이 같을 경우 참

 

<> 연산자

좌변과 우변의 값이 같지 않을 경우 참

 

> 연산자

좌변의 값이 우변의 값보다 클 경우 참

 

>= 연산자

좌변의 값이 우변의 값보다 크거나 같을 경우 참

 

< 연산자

좌변의 값이 우변의 값보다 작을 경우 참

 

<= 연산자

좌변의 값이 우변의 값보다 작거나 같을 경우 참

 

 

 

 

 

 

 

'공부 > TIL' 카테고리의 다른 글

[SQL 첫걸음] 3장 11강 ~ 13강  (1) 2024.01.04
[SQL 첫걸음] 2장 07강 조건 조합하기  (0) 2023.11.21
[SQL 첫걸음] 2장 05강 테이블 구조 참조하기  (0) 2023.11.11
[SQL 첫걸음] MySQL 설치 및 세팅 오류 해결(윈도우)  (3) 2023.11.06
[SQL 첫걸음] 2장 04강 테이블에서 데이터 검색  (0) 2023.11.06
  1. 06. 검색 조건 지정하기
'공부/TIL' 카테고리의 다른 글
  • [SQL 첫걸음] 3장 11강 ~ 13강
  • [SQL 첫걸음] 2장 07강 조건 조합하기
  • [SQL 첫걸음] 2장 05강 테이블 구조 참조하기
  • [SQL 첫걸음] MySQL 설치 및 세팅 오류 해결(윈도우)
Ail_
Ail_
Ail_
log
Ail_
  • 분류 전체보기 (182)
    • 사설 (11)
      • 강연 (5)
      • * (3)
      • 회고 (3)
    • 공부 (161)
      • Just do it (3)
      • TIL (66)
      • Game Bootcamp (31)
      • Digital Twin Bootcamp (39)
    • 노션 (3)
    • 프로젝트 (23)
      • Game Bootcamp (1)
      • Digital Twin Bootcamp (21)
      • 경기청년 갭이어 (1)

인기 글

최근 글

태그

  • Chat
  • 티스토리챌린지
  • C#
  • mysql 설치
  • 부트캠프
  • 이펙트
  • 대시
  • 개발일지
  • 피격
  • TypeScript
  • SQL 첫걸음
  • Do it! 자료구조와 함께 배우는 알고리즘 입문 : 파이썬 편
  • 오블완
  • 데이터베이스
  • 회고
  • unity
  • 유니티 게임 개발
  • 인터랙티브 웹 UX·UI
  • notion
  • 한입 크기로 잘라 먹는 타입스크립트
  • 개발회고
  • 멋쟁이사자처럼
  • SQL첫걸음
  • 배포
  • node.js
  • 플레이어
  • 노션
  • 유니티
  • 공격
  • 템플릿

최근 댓글

전체
오늘
어제
hELLO · Designed By 정상우.
Ail_
[SQL 첫걸음] 2장 06강 검색 조건 지정하기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.