wget http://192.168.xxx.xxx:xxxx/test_db%2dmaster.zip
unzip test_db-master.zip
cd test_db-master
mysql -u root -p < employees.sql
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON employees.* TO 'ltw'@'%';
mysql> exit;
SELECT emp_no, salary
FROM salaries
ORDER BY salary DESC'
ORDER BY
SELECT emp_no, salary
FROM salaries
ORDER BY salary; // (default: ASC 오름차순)
SELECT emp_no, salary
FROM salaries
ORDER BY salary DESC;
SELECT emp_no, salary, from_date
FROM salaries
ORDER BY salary, from_date;
GROUP BY
SELECT gender, COUNT(emp_no)
FROM employees
GROUP BY gender;
SELECT gender, COUNT(emp_no)
FROM employees
GROUP BY gender
HAVING gender='M';
HAVING
SELECT emp_no, AVG(salary)
FROM salaries
GROUP BY emp_no
HAVING AVG(salary) > 80000;
SELECT emp_no, AVG(salary)
FROM salaries
WHERE emp_no >= 15000
GROUP BY emp_no
HAVING AVG(salary) > 80000;
SELECT title AS '직군', COUNT(emp_no) AS '사원 수'
FROM titles
WHERE emp_no >= 15000
GROUP BY emp_no
HAVING AVG(salary) > 80000;
SELECT title AS '직군', COUNT(emp_no) AS '사원 수'
FROM titles
WHERE title LIKE '%Engineer'
GROUP BY title;
IN
SELECT emp_no, title
FROM titles
WHERE title IN ('Senitor Engineer', 'Engineer', 'Assistant Engineer')
JOIN
SELECT *
FROM employees
INNER JOIN dept_emp
ON employees.emp_no=dept_dmp.emp.no;
SELECT *
FROM employees
INNER JOIN dept_emp
ON employees.emp_no=dept_emp.no
WHERE employees.emp_no >= 10020;
SELECT *
FROM employees
LEFT OUTER JOIN dept_emp
ON employees.emp_no=dept_emp.emp_nol
SELECT first_name, AVG(salary)
FROM employees
LEFT OUTER JOIN salaries
ON employees.emp_no=Salaries.emp_no
GROUP BY employees.emp_no
HAVING AVG(salary) > 120000;
SELECT departments.dept_name, AVG(salary)
FROM dept_emp
LEFT JOIN salaries
ON salaries.emp_no=dept_emp.emp_no
LEFT JOIN departments
ON dept_emp.dept_no=departments.dept_no
GROUP BY dept_emp.dept_no;
SELECT MAX(salary), title
FROM salaries
JOIN titles ON salaries.emp_no=titles.emp_no
GROUP BY title;
서브 쿼리
SELECT 문 안에서 SELECT문을 한 번 더 사용하는 것.
SELECT 속성
FROM 테이블
WHERE 조건
HAVING 조건
ORDER BY 속성
// 모두 서브 쿼리 가능
조건에서 서브 쿼리 넣는 경우가 그나마 제일 많다.
SELECT emp_no
FROM salaries
WHERE salary > 100000;
SELECT *
FROM employees
WHERE emp_no IN (SELECT emp_no FROM salaries WHERE salary > 100000);
SELECT *
FROM (SELECT emp_no, salary FROM salaries WHERE salary) AS result;