sql 총정리(1)
2023. 9. 18. 23:53ㆍsql
반응형
mysql 기준으로 정리를 하였습니다.
- show tables : 데이터베이스 안에 있는 전체 테이블명이 리스트 형식으로 보여진다.
show tables

- select * from <테이블명> <테이블명 약자>: 테이블을 가져와서 안에 있는 데이터들을 보여주는 쿼리문이다.
* 는 전체를 가져오겠다는 뜻이다. 테이블명 약자는 선택적으로 붙인다.
SELECT * FROM orders o -- o는 orders의 약자이다

- select <특정필드명1>, <특정필드명2>,<특정필드명3> from <테이블명> <테이블명약자 > : 특정필드만 조회한다.
SELECT order_no , created_at , course_id , email FROM orders o

- select * from <테이블명> <테이블명약자> where 조건 and 조건 and 조건 :
<테이블명>에서 필드명이 값과 같은 행만 조회한다는 뜻이다.
SELECT * FROM orders o WHERE o.payment_method = 'kakaopay' and o.email != ''
// '값' 은 문자열이다.

- select * from <테이블명> <약자> where <필드명> between <시작 날짜 혹은 숫자 > and <끝나는 날짜 혹은 숫자 >
SELECT * FROM orders o WHERE o.created_at BETWEEN '2020-07-10' AND '2020-07-15'

- select * from <테이블명> <약자> where <필드명> in (조건) : 필드안에 조건과 같은 값만 조회한다.
SELECT * FROM checkins c WHERE c.week in (1,3)

- select * from <테이블명> <약자> where <필드명> like '%끝자리값' : 필드명에서 끝자리가 <끝자리값> 인 행만 조회한다.
SELECT * FROM users u WHERE u.email LIKE '%daum.net'

- select * from <테이블명> <약자> where <필드명> like '첫자리%끝자리'
SELECT * FROM users u WHERE u.email LIKE 'a%t'

SELECT * FROM orders o WHERE payment_method = 'kakaopay' LIMIT 5
-- orders테이블에는 payment_method = 'kakaopay' 인 행이 무수히 많다.
-- limit를 사용하면 무수히 많은 행에서 일부 데이터만 가져온다.

SELECT DISTINCT (payment_method) FROM orders o
--DISTINCT()는 payment_method 필드에 있는 값을 중복제거하여 보여준다.

SELECT COUNT(*) FROM orders o -- order 테이블에 행이 총 몇개 있는지 확인할 수 있다.
SELECT COUNT(*) FROM orders o WHERE o.payment_method = 'kakaopay'
-- order 테이블에 o.payment_method = 'kakaopay' 인 행이 몇개 있는지 확인할 수 있다.


SELECT COUNT(name) from users
-- user 테이블에 name 필드 행의 개수를 확인할 수 있다.
SELECT COUNT(DISTINCT(name)) from users
-- user 테이블에 name 필드에서 중복을 제거하고 남은 행의 개수를 확인할 수 있다.


반응형