<작동순서>
<작성순서>
ex) 성별이 여자인 데이터 가져오기
select *
from thegloy
where 성별 = 'F';
ex) 아픈 동물 찾기
select animal_id, name
from animal_ins
where intake_condition = 'sick'
order by animal_id;
<기본 구조>
SELECT CASE WHEN 조건식1 THEN 결과1
WHEN 조건식2 THEN 결과2
ELSE 결과3
END AS 새로운 컬럼이름
FROM 테이블명
;
SELECT ANIMAL_TYPE
, CASE
WHEN NAME IS NULL THEN 'No name'
ELSE NAME
END AS NAME
, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
연산자 | 연산자의 예 | 의미 |
---|---|---|
>, < | N<10, N>10 | N이 10 미만, N이 10 초과 |
>=, <= | N<=10, N>=10 | N이 10 이하, N이 10 이상 |
= | N=10 | N이 10인 값 |
!= | N!=10 | N이 10이 아닌 값 |
LIKE | LIKE('%과자%') 맛있는 과자, 과자는 살찐다 | 문자열이 ~와 같을 때 문자열을 기준으로 앞, 뒤 문자열과 상관없이 볼 때 %를 앞뒤에 작성해줍니다. / %는 0개 이상의 임의의 문자를 의미함. |
LIKE('과자') 내과자야 —> True 맛있는 과자 —> Fasle 과자는 살찐다 —> False | * _는 단일의 임의이 문자를 의미함. / 이 위치에 정확히 한 개의 문자가 올 수 있음 의미. | |
AND | A AND B | A 그리고 B를 모두 만족하는 값 |
OR | A OR B | A 또는 B인 값 |
NOT, ! | NOT A, !A | A가 아닌 값 |
BETWEEN | A BETWEEN 10 AND 20 | A가 10과 20 사이에 포함된 값. 10과 20도 포함. |
IN | A IN B | B에 A가 포함된 값 |
NOT IN | A NOT IN B | B에 A가 포함되지 않은 값 |
IS NULL | A IS NULL | A 값이 비어있는 값 |
IS NOT NULL | A IS NOT NULL | A 값이 비어있지 않는 값 |
☑️ 제일 마지막에 LIMIT 구문을 작성해주면 출력되는 데이터의 개수를 제한할 수 있음
SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1;
구 분 | Data type | |
---|---|---|
문자형(String | VARCHAR(size) | VARIABLE 길이 문자열(문자, 숫자 및 특수 문자를 포함할 수 있음) |
수치형(Numeric) | INT(size) | 정수 |
FLOAT(size, d) | 실수(소수점) | |
날짜 및 시간 | DATE | 날짜. (YYYY-MM-DD) |
DATETIME(fsp) | 날짜와 시간의 조합. (YYYY-MM-DD hh:mm:ss) |
<UPPER(값)/LOWER(값) - 주어진 값을 전부 대문자나 소문자로 변경>
ex)
SELECT UPPER('abc');
SELECT LOWER('ABC');
<IFNULL(값, 대체값) - NULL 값을 다른 값으로 대체>
SELECT IFNULL(값, "Null일 경우 대체 값") FROM 테이블명; -- 기본 문법.
SELECT IFNULL(NULL, "Null일 경우 대체 값");
SELECT IFNULL("NOT NULL", "Null일 경우 대체 값");
<DATE_FORMAT(포맷할 문자, "형식") - 날짜 형식을 설정>
포맷문자 | 설명 | 예시 |
---|---|---|
%Y | Year, numeric, four digits | 2024 |
%m | Month, numeric (00..12) | 07 |
%d | Day of the month, numeric (00..31) | 05 |
%W | Weekday name (Sunday..Saturday) | |
%T | Time, 24-hour (hh:mm:ss) | 20:10:00 |
%H | Hour (00..23) | 20 |
%i | Minutes, numeric (00..59) | 10 |
%S, %s | Seconds (00..59) | 00 |
ex) DATETIME에서 DATE로 형 변환
SELECT
ANIMAL_ID,
NAME,
DATE_FORMAT(DATETIME, "%Y-%m-%d")날짜
FROM
ANIMAL_INS
ORDER BY
ANIMAL_ID;
<CAST(값 AS 데이터 형식) - 주어진 값을 지정된 데이터 유형으로 변환>
ex)
SELECT *, CAST(날짜 AS date) FROM THEGLORY t ;
Value | 설명 | |
---|---|---|
DATE | 값을 DATE로 변환합니다. | |
형식: "YYYY-MM-DD" | SELECT CAST("2017-08-29" AS DATE); | |
DATETIME | 값을 DATETIME으로 변환합니다. | |
형식: "YYYY-MM-DD HH:MM:SS" | ||
TIME | 값을 TIME으로 변환합니다. | |
형식: "HH:MM:SS" | SELECT CAST("14:06:10" AS TIME); | |
DECIMAL | 값을 DECIMAL로 변환합니다. | |
CHAR | 값을 CHAR(문자열)로 변환합니다. | |
(MySQL 서버의 기본 문자 집합 사용) | SELECT CAST(150 AS CHAR); | |
NCHAR | 값을 NCHAR로 변환합니다. | |
(CHAR와 유사하나 유니코드 문자(UTF-8) 집합 사용. 더 많은 자원 필요로 할 수 있음.) | ||
SIGNED | 값을 SIGNED(부호 있는 64비트 정수)로 변환합니다. | SELECT CAST(5-10 AS SIGNED); |
UNSIGNED | 값을 UNSIGNED(부호 없는 64비트 정수)로 변환합니다. | |
BINARY | 값을 BINARY(바이너리 문자열)로 변환합니다. | SELECT CAST('A' = 'B' AS BINARY); —> FALSE |