DROP DATABASE IF EXISTS a7;
CREATE DATABASE a7;
USE a7;
CREATE TABLE dept (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
name CHAR(100) NOT NULL UNIQUE
);
INSERT INTO dept
SET regDate = NOW(),
name = '홍보';
INSERT INTO dept
SET regDate = NOW(),
name = '기획';
INSERT INTO dept
SET regDate = NOW(),
name = 'IT';
CREATE TABLE emp (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
name CHAR(100) NOT NULL,
deptId INT UNSIGNED NOT NULL,
salary INT UNSIGNED NOT NULL
);
INSERT INTO emp
SET regDate = NOW(),
name = '홍길동',
deptId = 1,
salary = 5000;
INSERT INTO emp
SET regDate = NOW(),
name = '홍길순',
deptId = 1,
salary = 6000;
INSERT INTO emp
SET regDate = NOW(),
name = '임꺽정',
deptId = 2,
salary = 4000;
SELECT D.name , E.deptId, E.name
FROM dept as D INNER JOIN emp as E
GROUP BY E.deptId = D.id;
SELECT D.name, E.deptId, e.name
FROM dept as D LEFT JOIN emp as E
ON D.id = E.deptId
GROUP BY E.deptId;
SELECT D.name as 부서명, IFNULL(E.deptId,0) as 사원번호, IF(E.name IS NULL , "-", E.name) as 사원명
FROM dept as D LEFT JOIN emp as E
ON D.id = E.deptId
GROUP BY E.deptId;
SELECT D.name, CONCAT(FORMAT(IFNULL(MAX(E.salary),0),0),"만원") as 최고연봉
FROM emp as E RIGHT JOIN dept as D
ON E.deptId = D.id
GROUP BY D.id;
SELECT D.name, CONCAT(FORMAT(IFNULL(MIN(E.salary),0),0),"만원") as '최저연봉'
FROM dept as D LEFT JOIN emp as E
ON E.deptId = D.id
GROUP BY E.id;
SELECT D.name as 부서명, CONCAT(FORMAT(IFNULL(AVG(salary),0),0),"만원") as 평균연봉
FROM dept as D LEFT JOIN emp as E
ON D.id = E.deptId
GROUP BY D.id;
SELECT FROM dept;
SELECT FROM emp;
DROP DATABASE IF EXISTS a8;
CREATE DATABASE a8;
USE a8;
CREATE TABLE dept (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
name CHAR(100) NOT NULL UNIQUE
);
INSERT INTO dept
SET regDate = NOW(),
name = '홍보';
INSERT INTO dept
SET regDate = NOW(),
name = '기획';
INSERT INTO dept
SET regDate = NOW(),
name = 'IT';
CREATE TABLE emp (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
name CHAR(100) NOT NULL,
deptId INT UNSIGNED NOT NULL,
salary INT UNSIGNED NOT NULL
);
INSERT INTO emp
SET regDate = NOW(),
name = '홍길동',
deptId = 1,
salary = 5000;
INSERT INTO emp
SET regDate = NOW(),
name = '홍길순',
deptId = 1,
salary = 6000;
INSERT INTO emp
SET regDate = NOW(),
name = '임꺽정',
deptId = 2,
salary = 4000;
(SELECT name as 사원명, '최고연봉자' AS 타입, salary as 연봉
FROM emp
ORDER BY salary DESC LIMIT 1)
UNION
(SELECT name as 사원명, '최저연봉자' as 타입, salary as 연봉
FROM emp
ORDER BY salary LIMIT 1)
ORDER BY 타입;
SELECT FROM dept;
SELECT FROM emp;
ONLY_FULL_GROUP_BY 모드 끄기, 이 부분은 이해하지 않으셔도 됩니다.SET SESSION sql_mode = (SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''));
SET sql_mode = (SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''));
DROP DATABASE IF EXISTS a9;
CREATE DATABASE a9;
USE a9;
CREATE TABLE dept (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
name CHAR(100) NOT NULL UNIQUE
);
INSERT INTO dept
SET regDate = NOW(),
name = '홍보';
INSERT INTO dept
SET regDate = NOW(),
name = '기획';
INSERT INTO dept
SET regDate = NOW(),
name = 'IT';
CREATE TABLE emp (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
name CHAR(100) NOT NULL,
deptId INT UNSIGNED NOT NULL,
salary INT UNSIGNED NOT NULL
);
INSERT INTO emp
SET regDate = NOW(),
name = '홍길동',
deptId = 1,
salary = 5000;
INSERT INTO emp
SET regDate = NOW(),
name = '홍길순',
deptId = 1,
salary = 6000;
INSERT INTO emp
SET regDate = NOW(),
name = '임꺽정',
deptId = 2,
salary = 4000;
SELECT D.name AS 부서명,
CASE
WHEN D.id = 1
THEN 2
WHEN D.id = 2
THEN 1
ELSE 0
END AS 사원수
FROM dept AS D
ORDER BY D.id ASC;
SELECT E.deptId, COUNT(deptId)
FROM emp as E
GROUP BY E.deptId;
SELECT D.name as 부서명, COUNT(deptId) 사원수
FROM emp as E INNER JOIN dept as D
ON E.deptId = D.id
GROUP BY D.id;
SELECT D.name, D.id as 부서번호, E.id as 사원번호, CONCAT(IF(E.id IS NOT NULL , 1, 0),"명") as 인원
FROM dept as D LEFT JOIN emp as E
ON E.deptId = D.id;
SELECT D.name as 부서명, IF(E.id IS NOT NULL, 1, 0) 사원수
FROM dept as D LEFT JOIN emp as E
ON D.id = e.deptId
GROUP BY D.id
ORDER BY D.id;
SELECT * FROM emp;
SELECT D.name as 부서명, COUNT(E.id) as 사원수
FROM dept as D LEFT JOIN emp as E
ON D.id = E.deptId
GROUP BY D.id
ORDER BY D.id;
DROP DATABASE IF EXISTS a4;
CREATE DATABASE a4;
USE a4;
nameCREATE TABLE member(
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
loginId CHAR(50) NOT NULL,
loginPw VARCHAR(100) NOT NULL,
name CHAR(100) NOT NULL
);
name = '홍길동')name = '홍길순')INSERT INTO member(regDate, loginId, loginPw, name) VALUES(NOW(), "user1", "user1", "홍길동");
INSERT INTO member(regDate, loginId, loginPw, name) VALUES(NOW(), "user2", "user2", "홍길순");
tableName (col1, col2, col3, col4)INSERT INTO member(regDate, loginId, loginPw, name)
SELECT NOW(), UUID(), "pw", "아무개"
FROM member;
SELECT COUNT(*) FROM member;
member WHERE loginId = 'user1';SELECT * FROM member WHERE loginId = "user1";