본문 바로가기
공부/SQL

3-15 1. SELECT 구문 정리

by 앙팡공기팡 2023. 3. 16.

 

 

USE 구문 :

 

정의 : 데이터 베이스를 선택할때 쓰인다.

 

Ex: USE databases;

 

 

SELECT 구문 :

 

정의: database에서 원하는 정보를 나열할때 쓰인다.

-      Python에서 print의 기능이라 보면 된다.

 

ex : SELECT (col_name) as ‘designated name’ FROM Database.tablename;

 

 

WHERE :

 

정의: 특정 column에서 특정 row값을 선택하여 select한다.

           -if의 역할이라 볼 수 있다.

 

 

1.OR AND

- if 와 비슷하게 or and로 여러가지 비교연산자를 관계 연산자를 통해 중복할 수 있다.

 

2. IN() BETWEEN LIKE     

- 관계 연산자를 편하게 쓰기위해 존재한다.

- IN: WHERE color IN (‘빨강’,’파랑’,’노랑’)   위 조건들중 포함이 되는가?

- BETWEEN: WHERE height BETWEEN 170 AND 180 (작은값 and 큰값 순) ;  위 조건 사이에 해당되는가?

- LIKE: WHERE name LIKE ‘_종신’ , WHERE name LIKE ‘%’ 해당 조건 범위에 해당되는가?

 

3. SUBQUERY

           -query안의 query   값을 지정하기위해 쓰는 쿼리

           - WHERE age = (SELECT age FROM employees WHERE name = ‘정희’)

 

4.ANY,SOME ALL

           -subquery안의 값이 여러 개일 경우 쓰임

           - ALL = AND , ANY SOME = OR

           - WHERE age = ALL (SELECT age FROM employees WHERE age BETWEEN 20 AND 30 )

 

EX: SELECT age, height FROM employees WHERE age = 29;

 

주의:

       - DateTime 형식의 데이터의 경우엔 '2022/01/01'의 형식으로 값을 비교연산자로 비교한다.

       - EX:SELECT * FROM user_info   Where joined < '2022/01/01' ;

 

ORDER BY :

 

정의: select로 나온 절을 column의 값을 기준으로 정렬한다.

           -DESC는 내림차순 ASC(디폴트)는 오름차순

           -이중 정렬도 가능하지만 앞의 조건 먼저 뒤의 조건은 정렬 후 같은 값만

           - 절 중에선 가장 후에 나온다.

EX:  SELECT name,age,height FROM employees ORDER BY age DESC, height ASC;

 

 

 

DISTINCT

 

정의: select로 나열한 값중 column에 중복된 값이 존재할 경우 구별하여 하나만 나열한다.

 

EX: SELECT DISTINCT name FROM employees;

 

 

 

LIMIT

 

정의: select로 나열한 값 중 전부가 아닌 일정 범위의 rows만 추려내어 나열한다.

           LIMIT 시작, 개수 or LIMIT 개수 OFFSET 시작

 

EX SELECT name, age  FROM employees ORDER BY age LIMIT 10, 20;

 

 

 

GROUPBY

 

정의: SELECT로 나열한 열 값들 중 중복되는 값을 group화 하여 집계함수로 처리한다.

 

1.     집계함수:

-SUM,AVG,MAX,MIN,COUNT등이 존재한다.

-group된 값들 혹은 전체 값의 특정 columns값들을 특정 기능으로 처리한다.

-COUNT의 경우엔 NULL이 아닌 값들의 row수를 모두 센다.

 

Ex: SELECT SUM(price*amount) AS ‘총매출량’ FROM costomertable GROUP BY name;

 

 

 

 

HAVINGROLLUP

 

정의:

           -HAVING: where의 경우엔 집계함수를 조건에 포함시키지 못한다.

            이 경우에 HAVING으로 조건절을 작성한다.

            ORDER BY는 정상적으로 집계함수를 조건에 포함 가능하다.

 

           -ROLLUP: GROUP BY로 집계를 할 경우에 전체값이 아닌 중간 합계를 보기 위해 쓰인다.

 

EX: SELECT name FROM costomertable

GROUP BY name

HAVING SUM(price * amount) > 100000

ORDER BY SUM(price * amount) DESC

WITH ROLLUP;

 

 

 

ETC

 

1.단주석 은  --   ,  여러열 주석은 /* */

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

3.24 SQL 추가 공부  (0) 2023.03.24
3-21. SQL 추가 지식 공부  (1) 2023.03.21
4. DATE 관련 구문 & round  (0) 2023.03.20
3. JOIN과 REGEXP(정규 표현식)  (0) 2023.03.17
3-16 2. IF 구문과 CASE 구문  (0) 2023.03.16