MariaDB로 SQL 공부_2

·2023년 4월 7일
0

SQL

목록 보기
1/4
post-thumbnail

💻 터미널에서 SQL 기초 문법 공부하기

BETWEEN

BETWEEN 최소 AND 최댓값 (두 값 사이의 범위를 제한)

SELECT *FROM tCity WHERE popu BETWEEN 50 AND 100;
+--------+------+------+-------+--------+
| name   | area | popu | metro | region |
+--------+------+------+-------+--------+
| 전주   |  205 |   65 | N     | 전라   |
| 청주   |  940 |   83 | N     | 충청   |
+--------+------+------+-------+--------+

🤔 BETWEEN을 사용하는 이유?

아래의 구문은 직관적이지 않고 의미도 파악하기 힘들다.

SELECT*FROM tCity WHERE popu >=50 AND popu <=100;

범위 조건은 문자열이나 날짜 등에도 사용 가능!

SELECT*FROM tCity WHERE name '가' AND '사';

BETWEEN 구문의 한계 : 미만, 초과는 지정할 수 없다!

IN

BETWEEN 연산자와는 달리 불연속적인 값 여러 개의 목록을 제공, 이 목록과 일치하는 레코드를 검색함

SELECT*FROM tCity WHERE region IN ('경상','전라');
SELECT*FROM tCity WHERE region = '경상' OR region = '전라';

// 경상도나 전라도에 있지 않은 도시 목록
SELECT*FROM tCity WHERE region NOT IN ('경상','전라');

SELECT*FROM tCity WHERE name LIKE '이%' OR name '안%';

🙅🏻‍♀️ IN 연산자와 LIKE 연산자는 같이 사용할 수 없음!

ORDER BY

BETWEEN 연산자와는 달리 불연속적인 값 여러 개의 목록을 제공, 이 목록과 일치하는 레코드를 검색함

ORDER BY 필드 [ASC : DESC]
SELECT*FROM tCity ORDER BY popu;
+--------+------+------+-------+--------+
| name   | area | popu | metro | region |
+--------+------+------+-------+--------+
| 오산   |   42 |   21 | n     | 경기   |
| 전주   |  205 |   65 | N     | 전라   |
| 청주   |  940 |   83 | N     | 충청   |
| 부산   |  765 |  342 | y     | 경상   |
| 서울   |  605 |  974 | y     | 경기   |
+--------+------+------+-------+--------+

WHERE 절과 ORDER BY를 같이 사용할 수 있지만, ORDER BY 절은 항상 SELECT 명령어의 마지막에 위치한다.

SELECT*FROM tCity ORDER BY area WHERE region = '경기';

DISTICT

중복을 제거하여 한 번만 출력하도록 하는 함수.
SQL server는 정렬을 수행하지만, 오라클과 MariaDB는 그렇지 않으므로 ORDER BY를 사용해야 함.

SELECT DISTINCT region FROM tCity;
+--------+
| region |
+--------+
| 경상   |
| 경기   |
| 전라   |
| 충청   |
+--------+
  
// 정렬도 함께 수행 시
SELECT DISTINCT region FROM tCity ORDER BY region;

샘플 레코드를 살펴보기 위한 가짜 컬럼

SQL의 경우 => 의사 컬럼
Oracle => TOP
MariaDB => LIMIT

SELECT ... LIMIT [건너뛸 개수], 총개수
  
// 면적이 넓은 상위 4개 도시 출력
SELECT*FROM tCity ORDER BY area DESC LIMIT 4;
  
// 1,2 등은 건너뛰고 3~5등을 보여줌
SELECT*FROM tCity ORDER BY area DESC LIMIT 2,3;
profile
화이트해커 꿈나무 엘입니다😉

0개의 댓글