DROP DATABASE IF EXISTS a6;
CREATE DATABASE a6;
USE a6;
CREATE TABLE dept(
id INT PRIMARY KEY AUTO_INCREMENT
,regDate DATETIME
,`name` VARCHAR(10)
);
INSERT INTO dept
SET regDate = NOW()
,`name` = '홍보';
INSERT INTO dept
SET regDate = NOW()
,`name` = '기획';
SELECT * FROM dept;
CREATE TABLE emp(
id INT PRIMARY KEY AUTO_INCREMENT
,regDate DATETIME
,`name` VARCHAR(10)
,deptId INT
,sal INT
);
INSERT INTO emp
SET regDate = NOW()
,`name` = '홍길동'
,deptId = 1
,sal = 5000;
INSERT INTO emp
SET regDate = NOW()
,`name` = '홍길순'
,deptId = 1
,sal = 6000;
INSERT INTO emp
SET regDate = NOW()
,`name` = '임꺽정'
,deptId = 2
,sal = 4000;
SELECT * FROM emp;
SELECT COUNT(*)
FROM emp;
SELECT MAX(id) AS '사원번호' FROM emp;
SELECT *
FROM emp
ORDER BY id DESC
LIMIT 1;
SELECT *
FROM emp
WHERE id = (
SELECT MAX(id)
FROM emp);
SELECT MAX(sal) AS '고액 연봉'
FROM emp;
SELECT MIN(sal) AS '저액 연봉'
FROM emp;
SELECT `name`, sal
FROM emp
ORDER BY sal
LIMIT 1;
SELECT AVG(sal) AS '1년 고정 지출(인건비)'
FROM emp;
SELECT deptId,SUM(sal)
FROM emp
GROUP BY deptId;
SELECT deptId,MAX(sal)
FROM emp
GROUP BY deptId;
SELECT deptId, MIN(sal)
FROM emp
GROUP BY deptId;
SELECT deptId, TRUNCATE(AVG(sal),1) AS 평균연봉
FROM emp
GROUP BY deptId;
SELECT d.`name`, TRUNCATE(AVG(sal),1) AS 평균연봉
FROM `emp` e
JOIN `dept` d
ON e.deptId = d.id
GROUP BY `deptId`;
SELECT deptId,
GROUP_CONCAT(`name`) AS '사원리스트',
AVG(sal) AS '평균연봉',
MAX(sal) AS '최고연봉',
MIN(sal) AS '최소연봉',
COUNT(*) AS '사원수'
FROM emp
GROUP BY `deptId`;
SELECT d.`name`, GROUP_CONCAT(e.`name`) AS '사원리스트',
AVG(sal) AS '평균연봉', MAX(sal) AS '최고연봉',
MIN(sal) AS '최소연봉', COUNT(*) AS '사원수'
FROM `emp` e
JOIN `dept` d
ON e.deptId = d.id
GROUP BY `deptId`
HAVING `평균연봉` >= 5000;
SELECT * FROM dept;