SELECT Column FROM Table
WHERE data filtering
ORDER BY Column [ASC or DESC]
;
EX) as 를 명시해도 되고 안해도 됨
SELECT 고객명 이름, 고객명 AS 이름2, 업체
FROM 주문
;
수량 BETWEEN 1 AND 100
지역 IN('서울', '경기', '부산')
where 지역 = '서울' or 지역 = '경기' or 지역 = '부산'
%명%
: 앞 뒤로 어떤 값이 있어도 됨명%
: '명'부터 시작하는 데이터%명
: '명'으로 끝나는 데이터where 품목 IS NULL
where 품목 IS NOT NULL
조건과 조건은 AND, OR 로 연결
SELECT CAST('1' as unsigned)
SELECT CAST(1 as char(1))
select date_format(now(), '%Y-%m-%d')
select date_format(20240101, '%Y-%m-%d')
SUM, MIN, MAX, AVG
날짜 비교
select count(e.employee_id) from employees e
where e.hire_date between '2016-01-01' and '2016-03-31';
3월에 고용된 (1)
select from employees e
where e.hire_date like '2016-03%';
3월에 고용된 (2)
select from employees e
where DATE_FORMAT(hire_date, '%m') = '03';
COUNT
SELECT COUNT(*), COUNT(ITEM_ID) FROM TABLE
DISTINCT
SECECT COUNT (DISTINCT 고객명) FROM TABLE
GROUP BY
SELECT PRODUCT_ID, SUM(QUANTITY) QUAN
FROM INVENTORIES
GROUP BY PRODUCT_ID
그룹(컬럼)내에서 집계가 이루어 진다.
JOIN
2개 이상의 테이블을 연결 (연관성 있는)
SELECT a.필요컬럼, b.필요컬럼
FROM Table1 a, table2 b
WHERE a.col = b.col
테이블 한쪽에 데이터가 없는 경우(OUTER JOIN)
오라클) 조인이 안되는 테이블 컬럼에 (+)을 붙여준다.
SELECT *
FROM ORDERS o, EMPLOYEES e
WHERE O.SALESMAN_ID=E.EMPLOYEE_ID(+)
MYSQL) OUTER JOIN
FROM orders o
LEFT OUTER JOIN employees e
ON(o.salesman_id = e.employee_id)
SELECT (subquery) name
FROM table1 a, (subquery) b
WHERE a.col = b.col
AND a.col in (단일 컬럼 subquery)
AND (a.col2, a.=col3) in (select col1, col2 from ...)
작년에 모 기업 기술면접에서 '스칼라 써봤어요?' 라는 질문을 받았다.
대답 못했다.