SQL(Structured Query Language) 은 관계형 데이터베이스를 조작하기 위한 표준 언어다.
;)으로 끝난다.SELECT [DISTINCT] 컬럼명 [AS 별칭]
FROM 테이블명
WHERE 조건
ORDER BY 컬럼 [ASC|DESC];
SELECT * FROM employees;
SELECT first_name, last_name, salary
FROM employees;
SELECT
first_name AS 이름,
hire_date AS 입사일,
salary AS 급여
FROM employees;
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;
SELECT
first_name,
salary,
salary * 12 AS annual_salary
FROM employees;
SELECT DISTINCT department_id
FROM employees;
SELECT DISTINCT department_id, job_id
FROM employees;
SELECT * FROM employees
WHERE department_id = 90;
SELECT * FROM employees
WHERE salary >= 10000;
SELECT * FROM employees
WHERE hire_date > '2005-01-01';
SELECT * FROM employees
WHERE last_name = 'King';
SELECT * FROM employees
WHERE salary >= 10000
AND department_id = 90;
SELECT * FROM employees
WHERE department_id = 90
OR department_id = 100;
SELECT * FROM employees
WHERE NOT department_id = 90;
SELECT * FROM employees
WHERE (department_id = 90 OR department_id = 100)
AND salary >= 10000;
SELECT * FROM employees
WHERE salary BETWEEN 5000 AND 10000;
SELECT * FROM employees
WHERE hire_date BETWEEN '2005-01-01' AND '2005-12-31';
% : 0개 이상의 문자_ : 정확히 1개의 문자SELECT * FROM employees
WHERE first_name LIKE 'S%';
SELECT * FROM employees
WHERE first_name LIKE '%n';
SELECT * FROM employees
WHERE first_name LIKE '%a%';
SELECT * FROM employees
WHERE first_name LIKE '_o%';
SELECT * FROM employees
WHERE first_name LIKE '_____';
SELECT * FROM employees
WHERE first_name LIKE 'a____';
SELECT * FROM employees
WHERE commission_pct IS NULL;
SELECT * FROM employees
WHERE commission_pct IS NOT NULL;
SELECT
first_name,
IFNULL(commission_pct, 0) AS commission
FROM employees;
SELECT
first_name,
COALESCE(commission_pct, manager_id, 0) AS value
FROM employees;
SELECT * FROM employees
ORDER BY salary;
SELECT * FROM employees
ORDER BY salary DESC;
SELECT * FROM employees
ORDER BY last_name ASC;
SELECT * FROM employees
ORDER BY department_id, salary DESC;
SELECT
first_name,
salary * 12 AS annual_salary
FROM employees
ORDER BY annual_salary DESC;
SELECT * FROM employees
ORDER BY salary DESC
LIMIT 5;
SELECT first_name, last_name, salary
FROM employees
ORDER BY salary DESC
LIMIT 10;
SELECT UPPER('hello'), LOWER('HELLO');
SELECT CONCAT('Hello', ' ', 'World');
SELECT SUBSTRING('Hello World', 1, 5);
SELECT LENGTH('Hello World');
SELECT TRIM(' Hello '), LTRIM(' Hello'), RTRIM('Hello ');
SELECT REPLACE('Hello World', 'World', 'MySQL');
SELECT LPAD('Hi', 5, '*'), RPAD('Hi', 5, '?');
SELECT ROUND(3.7), CEIL(3.2), FLOOR(3.9);
SELECT ABS(-10);
SELECT MOD(10, 3);
SELECT POWER(2, 3), SQRT(16);
SELECT GREATEST(1, 2, 3), LEAST(1, 2, 3);
SELECT CURDATE(), CURTIME(), NOW();
SELECT DATE_FORMAT(NOW(), '%Y년 %m월 %d일');
SELECT
DATE_ADD(NOW(), INTERVAL 1 DAY),
DATE_SUB(NOW(), INTERVAL 1 MONTH);
SELECT DATEDIFF('2024-12-31', NOW());
SELECT
YEAR(NOW()),
MONTH(NOW()),
DAY(NOW()),
DAYOFWEEK(NOW());
SELECT COUNT(*) FROM employees;
SELECT COUNT(commission_pct) FROM employees; -- NULL 제외
SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MAX(salary), MIN(salary) FROM employees;
SELECT
COUNT(*) AS 직원수,
AVG(salary) AS 평균급여,
MAX(salary) AS 최고급여,
MIN(salary) AS 최저급여
FROM employees;
SELECT
department_id,
AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id;
SELECT
department_id,
job_id,
COUNT(*) AS count,
AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id, job_id;
SELECT
department_id,
COUNT(*) AS emp_count
FROM employees
GROUP BY department_id
ORDER BY emp_count DESC;
SELECT
department_id,
AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING AVG(salary) >= 10000;
SELECT
department_id,
AVG(salary) AS avg_salary
FROM employees
WHERE hire_date >= '2005-01-01'
GROUP BY department_id
HAVING COUNT(*) >= 5;
JOIN 은 하나 이상의 테이블로부터 연관된 데이터를 검색해오는 방법이다.
NULL과 함께 나타남SELECT
e.first_name,
e.last_name,
d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id;
SELECT
e.first_name,
e.last_name,
d.department_name
FROM employees e
JOIN departments d USING(department_id);
SELECT *
FROM employees NATURAL JOIN departments;