# a5 데이터베이스 삭제/생성/선택
DROP DATABASE IF EXISTS a5;
CREATE DATABASE a5;
USE a5;
# 부서(dept) 테이블 생성 및 홍보부서 기획부서 추가
CREATE TABLE dept();
id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENET
regDate DATETIME NOT NULL,
`name` CHAR(100) NOT NULL,
);
INSERT INTO dept();
SET regDate = NOW(),
`name` = '기획';
SELECT * FROM dept;
# 사원(emp) 테이블 생성 및 홍길동사원(홍보부서), 홍길순사원(홍보부서), 임꺽정사원(기획부서) 추가
CREATE TABLE emp();
id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENET
regDate DATETIME NOT NULL,
`name` CHAR(100) NOT NULL,
deptName CHAR(100) NOT NULL
);
INSERT INTO emp
SET regDate = NOW(),
`name` = '홍길동',
deptNAME = '홍보';
INSERT INTO emp
SET regDate = NOW(),
`name` = '홍길순',
deptName = '홍보';
INSERT INTO emp
SET regDate = NOW(),
`name` = '임꺽정',
deptName = '기획';
# 홍보를 마케팅으로 변경
UPDATE dept
SET `name` = '홍보'
WHERE `name` = '마케팅';
UPDATE emp
SET `deptName` = '홍보'
WHERE `deptName` = '마케팅';
# 마케팅을 홍보로 변경
UPDATE dept
SET `name` = '마케팅'
WHERE `name` = '홍보';
UPDATE emp
SET `deptName` = '마케팅'
WHERE `deptName` = '홍보';
# 홍보를 마케팅으로 변경
UPDATE dept
SET `name` = '홍보'
WHERE `name` = '마케팅';
UPDATE emp
SET `deptName` = '홍보'
WHERE `deptName` = '마케팅';
# 구조를 변경하기로 결정(사원 테이블에서, 이제는 부서를 이름이 아닌 번호로 기억)
ALTER TABLE emp ADD COLUMN deptId INT(10) UNSIGEND NOT NULL;
UPDATE emp
SET deptId = 1
WHERE deptName = '마케팅';
UPDATE emp
SET deptId = 2
WHERE deptName = '기획';
ALTER TABLE emp DROP COLUMN deptName;
# 사장님께 드릴 인명록을 생성
SELECT * FROM emp;
# 사장님께서 부서번호가 아니라 부서명을 알고 싶어하신다.
# 그래서 dept 테이블 조회법을 알려드리고 혼이 났다.
SELECT * FROM dept WHERE id = 1;
# 사장님께 드릴 인명록을 생성(v2, 부서명 포함, ON 없이)
# 이상한 데이터가 생성되어서 혼남
SELECT * FROM dept,emp;
# 사장님께 드릴 인명록을 생성(v3, 부서명 포함, 올바른 조인 룰(ON) 적용)
# 보고용으로 좀 더 편하게 보여지도록 고쳐야 한다고 지적받음
SELECT emp.*, dept.name AS deptName
FROM dept
INNER JOIN emp;
ON dept.id = emp.deptId;
# 사장님께 드릴 인명록을 생성(v4, 사장님께서 보시기에 편한 칼럼명(AS))
SELECT emp.id AS `사원번호`,
emp.regDate AS `입사날짜`,
dept.name AS `부서명`,
emp.name AS `이름`
FROM dept
INNER JOIN emp
ON dept.id = emp.deptId;
*전체적인 일상은 노션을 통해 작성하고 있습니다.
'SQL' 카테고리의 다른 글
#075 ArticleDao 의 getArticles에 MySQLUtil 적용하기 (3차 - 로그인/로그아웃 & 내 정보) (0) | 2021.01.14 |
---|---|
#074 ArticleDao 의 getArticles에 MySQLUtil 적용하기 (2차 - Delete & Modify) (0) | 2021.01.14 |
#073 ArticleDao 의 getArticles에 MySQLUtil 적용하기 (1차 ) (0) | 2021.01.14 |
#072 [MySQL 과제] Article Map List 응용문제 (0) | 2021.01.05 |
#071 Map과 List의 차이점 (0) | 2021.01.05 |