문제 추천
코딩테스트에서 나오는 SQL문제들을 대비하기 위하여 기초 정리가 아닌 문제를 풀기위한 이론을 정리하려고 한다.
🤷♀️ 가보자고 🤷♀️
SELECT IF(10>5, '크다','작다') AS result;
SELEC *
FROM student
WHERE student_ID like 'a%';
LIKE 'a%' // a 로 시작되는 모든 것
LIKE 'a_%_%' // a 로 시작되고 최소 3이상의 길이를 가진 것
LIKE `_a%` // 두번째 자리에 a가 들어가는 모든 것
select *
from Customers
where country in ('UK','Korea');
SELECT id, name, gender, sex
from animal
where name in ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty');
select *
from products
where price between 10 and 20;
select *
from products
where price not between 10 and 20;
select *
from products
where (price between 10 and 20) and not id in(2,3);
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS;
FROM ANIMAL_INS;
coalesce는 정의된 열 중 null이 아닌 첫번째 값을 화면에 출력
CASE
WHEN 조건1 THEN '조건1 반환값'
WHEN 조건2 THEN '조건2 반환값'
ELSE '충족되는 조건 없을 때 반환값'
END
SELECT, WHERE, ORDER BY 절에서 사용 가능하고 보통 SELECT 절에 많이 쓰인다. ELSE 생략시 결과값이 NULL이 나온다.
// 조건식이 있는 경우
SELECT 열명
FROM 테이블명
WHERE 조건식
LIMIT 행수
// 조건식이 없는 경우
SELECT 열명
FROM 테이블명
LIMIT 행수
// 지정한 숫자 개수 리턴
SELECT *
FROM
LIMIT 0,3; // 0 번부터 3개
SELECT count(id)
FROM customers
GROUP BY country; // 각 도시에 사는 사람이 몇명인지
count
: null은 숫자로 세지 않는다. select name, avg(balance)
from account
group by branch_name
having avg(balance);
union all
SELECT *
FROM customers
union
SELECT city FROM orders
order by city;
SELECT test1.number
FROM test1 join test2 on test1.number = test2.number;
SELECT distinct c.cart_id
FROM cart_products c inner join cart_product p on(c.cart_id = p.cart_id)
WHERE (c.name='우유' and p.name='요거트') or (c.name='요거트' and p.name='우유')
order by c.cart_id;
select test1.number
FROM test1 left join test2 on test1.number = test2.number;