select column1, column2
from table_name
select * from customer 와 같이 select *는 가장 쉬운 쿼리지만 실제 DB에서는 사용을 지양,(콤마)를 통해 이으면 조회를 원하는 열만 나열 가능. 순서는 상관 없음count(*)를 사용하여 레코드 수를 조회 가능select count(*)
from customer
count(column명)을 이용할 경우 해당 컬럼 내 null이 아닌 값의 개수가 출력select count(sido)
from address
ASCDESC 를 붙임select *
from customer
order by first_name desc
select *
from payment
order by staff_id, customer_id, amount desc
LIMIT 를 사용select *
from customer
limit 5
OFFSET 사용 가능-- customer 테이블에서 6~10번째를 조회하고 싶을 경우
select *
from customer
offset 5 limit 5
DISTINCT 사용 가능select distinct city_id
from address
count(distinct 칼럼명)을 사용select count(distinct city_id)
from address
WHERE 절은 조건에 맞는 데이터만 조회할 때 사용and를 이용or도 사용 가능함and > orselect *
from customer
-- 김 씨인 CUSTOMER만 추출
where last_name = 'kim'
-- 2003년 이후에 태어난 CUSTOMER 만 추출
and birth_date > '2003'
-- promotion_code가 null이 아닌 customer만 추출
and promo_code is not null
select *
from film
where rating ='R' or rating ='PG -13'and
rental_duration >=4;
-- 위 sql문은 아래와 같음
select *
from film
where rating ='R' or ( rating ='PG-13'and
rental_duration >=4) ;
< / > / <= / >= / <> / Between 사용 가능
-- 동일 조건
select *
from rental
where rental_id >= 10 and rental_id <= 20
select *
from rental
where rental_id between 10 and 20
% : 0개 이상 문자_ : 1문자__n%이란__ → 앞에 정확히 2글자n → 그 뒤에 세 번째 글자가 n% → 그 뒤에 0개 이상 문자가장 좋은 성능을 보이는 Like 조건 절은?
1. LIKE 'A%’;
2. LIKE ‘%A%’;
3. LIKE ‘%A’;
4. 1,2,3 모두 동일하다.
정답: 1번
해설
- LIKE 'A%' → 문자열이 'A'로 시작하는 것만 찾음
: 인덱스 사용 가능 → 성능 최고- LIKE '%A%' → 문자열 안 어디든 'A'가 있는 것 찾음
: 인덱스 사용 불가 → 전체 테이블 스캔 필요- LIKE '%A' → 문자열 끝이 'A'인 것 찾음
: 인덱스 사용 불가 → 전체 테이블 스캔 필요
column IN (value1, value2, ...)in을 우선해서 사용select *
from category
where name in ('comedy', 'action', 'drama')
SELECT UPPER(first_name) FROM customer;
John → JOHNSELECT LENGTH(title) FROM film;
'Titanic' → 7SELECT LEFT(title, 5) FROM film;
'Titanic' → 'Titan'SELECT CONCAT(first_name, ' ', last_name) FROM staff;
'John' + ' ' + 'Doe' → 'John Doe'CONCAT와 동일하게 문자열 이어붙이기SELECT first_name || ' ' || last_name FROM staff;
'John' || ' ' || 'Doe' → 'John Doe'AS 키워드를 사용하여 컬럼명이나 테이블명에 별칭을 붙일 수 있음select first_name || '' || last_name as full_name
from customer
select c.first_name
from customer as c
| 실행 순서 | 절 | 역할 |
|---|---|---|
| 1 | FROM | 테이블 선택 |
| 2 | JOIN | 테이블 결합 (ON 조건 기준) |
| 3 | WHERE | 행 필터링 (그룹화 전) |
| 4 | GROUP BY | 그룹 생성 |
| 5 | HAVING | 그룹 필터링 (COUNT, SUM 등 집계 기준) |
| 6 | SELECT | 필요한 컬럼/집계 계산 |
| 7 | ORDER BY | 결과 정렬 |
| 8 | LIMIT | 결과 개수 제한 |
SELECT column_name, count(*) as KK
FROM table_name1 JOIN table_name2
ON 연결조건
WHERE column_name = ‘ ’
GROUP BY
HAVING count(*) > 2
ORDER BY column_Name
LIMIT 5