728x90
반응형
참고 | [SQL] SQL 쿼리문 작성 형식
[SQL] SQL 쿼리문 작성 형식
✏️ SQL 작성 형식 SQL 문 끝에는 항상 세미콜론(;) 추가SQL 문 안에는 공백이나 개행 등을 자유롭게 넣을 수 있음내장된 키워드들(예약어)는 대문자로 적는 것이 관례이나, 대소문자 가리지 않음
jeonyeong.tistory.com
✏️ 데이터 조회 구문
SELECT
- 테이블의 데이터를 조회할 때 사용하는 구문
# copang_main 데이터베이스의 member 테이블에서 모든 열의 정보 조회
SELECT * FROM copang_main.member
# copang_main 데이터베이스의 member 테이블에서 email, age, address 열만 조회
SELECT email, age, address FROM copang_main.member
WHERE
- 특정 조건을 만족하는 row들만 조회하고자 할 때 사용하는 구문
# member 테이블에서 email이 'taehos@hanmail.net' 행만 조회
SELECT * FROM copang_main.member
WHERE email = 'taehos@hanmail.net';
BETWEEN [A] AND [B]
- 조건이 범위일 경우 (A ~ B) 사용하는 구문
- ex. 30 ~ 39 → BETWEEN 30 AND 39
# member 테이블에서 age 값이 30 ~ 39 사이에 해당하는 데이터만 조회하기
## 즉, 30대 회원정보만 추출
SELECT * FROM copang_main.member
WHERE age BETWEEN 30 AND 39 ;
✏️ 조건 표현 식
!= , <>
- 같지 않음
# gender가 'm'이 아닌 회원들의 데이터 조회하기
SELECT * FROM copang_main.member WHERE gender != 'm' ;
SELECT * FROM copang_main.member WHERE gender <> 'm' ;
IN( )
- ~ 안에 있는
# age가 20, 30인 회원정보만 추출하기
SELECT * FROM copang_main.member WHERE age IN (20,30);
%
- 임의의 길이를 가진 문자열
# 서울로 시작하는 문자열
SELECT * FROM copang_main.member WHERE emil LIKE '서울%' ;
# "고양시"가 포함된 모든 문자열
SELECT * FROM copang_main.member WHERE emil LIKE '%고양시%' ;
_
- 한글자를 나타내는 문자열
# 이메일이 c로 시작하면서 5글자 뒤에 '@'문자가 들어가는 문자열
SELECT * FROM copang_main.member WHERE emil LIKE 'c_____@%' ;
🔖 Escaping (이스케이핑)
- 원래 특정 의미를 나타내던 문자(ex. %, _)를 그 특정 의미가 아니라, 일반적인 문자처럼 취급하는 행위
- 즉, 어떤 문자가 그것에 부여된 특정한 의미, 기능으로 해석되는 게 아니라 그냥 단순한 문자 하나로 해석되도록 하는 것
- 역슬래쉬(\)를 붙여서 이스케이핑 가능
- \\’ : 작은따옴표 이스케이핑
- \\_ : 언더바 이스케이핑
🔖 대소문자 구분
- %g% 라고 사용한다면, G, g가 포함된 모든 문자열을 조회함
- 만약 소문자 g만 조회하고 싶다면, BINARY ‘%g%’ 라고 써야 함
- 만약 소문자 G만 조회하고 싶다면, BINARY ‘%G%’ 라고 써야 함
✏️ Date 타입 데이터 다루기
YEAR()
- 날짜값에서 년도만 추출
# 1992년에 태어난 회원들만 조회하기
SELECT * FROM copang_main.member WHERE YEAR(birthday) = '1992' ;
MONTH()
- 날짜값에서 월만 추출
# 여름(6, 7, 8월)에 가입한 회원들만 조회하기
SELECT * FROM copang_main.member WHERE MONTH(sign_up_day) IN (6, 7, 8) ;
DAYOFMONTH()
- 날짜값에서 일만 추출
# 각 달의 후반부 (15일 ~ 31일)에 가입했던 회원들만 조회하기
SELECT * FROM copang_main.member WHERE DAYOFMONTH(sign_up_day) BETWEEN 15 and 31 ;
DATEDIFF(A, B)
- 날짜간의 차이 (날짜a - 날짜b)
# 각 회원이 가입한 일자가 2019년 1월 1일 기준으로 며칠 이후인지 조회하기
SELECT email, sign_up_day, DATEDIFF(sign_up_day, '2019-01-01')
FROM copang_main.member ;
CURDATE( )
- 오늘 날짜
# 오늘 날짜 기준으로 살펴보기
SELECT email, sign_up_day, CURDATE(), DATEDIFF(sign_up_day, CURDATE())
FROM copang_main.member ;
DATE_ADD(A, B)
- 날짜 A에서 일수B 더하기
# 가입일 기준으로 300일 이후의 날짜 구하기
SELECT email, sign_up_day, DATE_ADD(sign_up_day, INTERVAL 300 DAY)
FROM copang_main.member ;
DATE_SUB(A, B)
- 날짜 A에서 일수B 빼기
# 가입일 기준으로 250일 이전의 날짜 구하기
SELECT email, sign_up_day, DATE_SUB(sign_up_day, INTERVAL 250 DAY)
FROM copang_main.member ;
🔖 UNIX_TIMESTAMP( ) 와 FROM_UNIXTIME( )
- UNIX_TIMESTAMP() 는 특정 날짜의 특정 시간을 1970- 01-01 기준으로 총 몇 초가 지났는지 나타냄
- FROM_UNIXTIME()는 UNIX_TIMESTAMP() 을 사람이 읽을 수 있는 날짜 형태로 변환
SELECT email, sign_up_day, FROM_UNIXTIME(UNIX_TIMESTAMP(sign_up_day)) FROM copang_main.member ;
📖 참고 강의
코드잇 | SQL로 하는 데이터 분석
코드잇 | SQL로 하는 데이터 관리
728x90
반응형
'연구원생활' 카테고리의 다른 글
[SQL] 집계 함수와 산술 연산 (0) | 2025.03.09 |
---|---|
[SQL] 여러 개의 조건 걸기 / 데이터 정렬 (0) | 2025.03.09 |
[SQL] 데이터베이스/테이블 생성하기 (1) | 2025.03.08 |
[SQL] SQL 쿼리문 작성 형식 (0) | 2025.03.08 |
[SQL] 데이터 타입 (0) | 2025.03.08 |