데이터 분석

mysql 개념

강청색 2023. 12. 13. 16:05

WHERE 구문에서 사용 가능하 술어 구문:

비교, 조건 등의 연산을 사용하거나 복합문으로 사용 가능

용어 연산자 예시
비교 =,<>,<,<=,>.>= price < 20000
범위 BETWEEN price BETWEEN 10000 AND 20000
집합 IN, NOT, IN price IN(10000,20000,30000)
패턴 LIKE bookname LIE '철학의 역사
NULL IS NULL, IS NOT NULL price IS NULL
복합조건  AND, OR, NOT (price < 20000) AND (bookname LIKE '철학의 역사')

 

예시)

name zip_code address total
강동원 120-011 서울시 종로구~ 20000
김형준 340-020 서울시 구로구~ 30000

우편번호가 340-011 사람 출력

SELECT name FROM shopper WHERE zip_code = '340-021;

주문액이 20000~30000 인 사람을 출력하시오

SELECT name FROM shopper WHERE total BETWEEN 20000 AND 30000;

 

 

LIKE 절

- 쿼리 결과가 LIKE에 일치하는 결과만 제공

SELECT... WHERE

LIKE'[연산기호]문자열[연산기호]'

연산자 기능 예시 설명
% 여러문자와 일치하는 패턴 %학% 철학, 대학 등 '학'이 포함된 문자열
_ 한 문자와 일치하는 패턴 _학 대학, 철학 등 '학'앞에 임의의 문자가 들어간 문자열
[] 1개의 문자와 일치 '[0-9]%' 0-9 사이 숫자로 시작하는 문자열
[^] 1개의 문자와 불일치 '[^0-9]%' 0-9사이 숫자로 시작하지 않는 문자열

 

예시)

'파이썬이 포함된 출판사를 검색하세요

SELECT bookname, publisher

FROM Book

WHERE bookname LIKE '%파이썬%'

 

NULL 값이란?

- 아직 지정되지 않은 값으로 비교가 불가능함

- NULL + 숫자의 결과는 NULL

- 집계 함수 계산 시 NULL이 포함된 행은 집계에서 빠짐

- 해당되는 행이 없을 경우 SUM, AVG 함수의 결과는 NULL이 되며, COUNT 함수의 결과는 0이 됨

NULL인 문자열 결합

SELECT CONCAT('번호',phone)

FROM customer;

 

ORDER BY 구문

- 쿼리 결과를 주어진 컬럼의 오름차순, 내림차순으로 정렬해 출력

ASC : 오름차순으로 정렬

DESC : 내림차순으로 정렬

 

-이름순으로 도서를 검색

SELECT *

FROM Book

ORDER BY bookname;

 

-정렬 조건

- 도서를 가격순으로 검색하고, 가격이 같으면 이름순

SELECT *

FROM Book

ORDER BY price, bookname;

 

- 오름차순/ 내림차순

SELECT *

FROM Book

ORDER BY price DESC, publisher ASC;

 

SELECT  *

FROM orders

ORDER BY orderdate DESC;

 

-- 컬럼 번호로 지시가능

SELECT *

FROM Book

ORDER BY 1.3;

 

DISTINCT 구문

-- 조회된 결과에서 중복된 데이터를 제외하고 출력

SELECT [DISTINCT] 속성이름(들)

FROM 테이블이름(들)

-- 중복 제거란

-- 김, 이, 김을 중복 제거하면 김,이라는 범주 값만 남음

 

예시)

-- 주문 고객 목록

SELECT DISTINCT custid FROM orders;

 

조건 제어

-- 다중 조건을 제공하는 CASE 구문

-- 조회된 결과에서 중복된 데이터 제외 출력

IF 구문

-- 조건에 따라분기

참/거짓 두 가지만 있기에 2중 분기

-- 형식

SELECT IF (50>100, '참,'거짓');

 

IFNULL(수식1, 수식2)

수식1이 NULL이 아니면 수식1이 반환되고, 수식1이 NULL이면 수식2가 반환

 

LIMIT문

-- SELECT로 받아온 결과(레코드) 출력 개수를 제한하고자 할 때, SQL 문장의 제일 마지막에 사용

-- LIMIT n : 첫 번째 행부터 n개 출력

-- LIMIT s, n : s번째 행부터 n개를 출력(s개의 행을 SKIP)

 

'데이터 분석' 카테고리의 다른 글

mysql6  (1) 2023.12.20
mysql5  (0) 2023.12.19
mysql4  (2) 2023.12.18
mysql-3  (0) 2023.12.14
mysql 개념2  (0) 2023.12.13