요구사항 명세서
수행계획서
ERD설계
(기획 진행)
1차프로젝트 때는 시연은 DB로만 해도 충분
1차 DB회원, 데이터리스트 쯤
역량되시면 스캐너 => DB에 접근해서 불러오는 정도, 그게 힘들면 쿼리문 써서 디비 불러오는
(수업때 선생님이 내용 다루실 예정)
예)
회원목록 보여주고
id / 작가 / 명언
데이터가 어느경로로 접근해서 어떻게 쓰인다 정도
우리조는 양식 나오고 DB설계 한 번같이 해보기로
실제 구현하는건 수업 진도 나가야 가능한 일이라
양식지는 구글독스로 전달해주실 예정이고
시연땐 mySQL CLI 창에서 시연할거라 쿼리문 사용해서 시연할거면 다 알고있어야됨
SQLyog를 사용하지 않을 계획임.
INNER JOIN
CREATE DATABASE a7;
USE a7;
CREATE TABLE emp (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
regDate DATETIME NOT NULL,
`name` CHAR(100) NOT NULL,
deptName CHAR(100) NOT NULL
);
CREATE TABLE dept (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
regDate DATETIME NOT NULL,
`name` CHAR(100) NOT NULL UNIQUE
);
SHOW TABLES;
SHOW DATABASES;
USE a7;
SHOW TABLES;
DESC emp;
DESC dept;
INSERT INTO emp
SET regDate = NOW(),
`name` = '홍길동',
deptName = '홍보';
INSERT INTO emp
SET regDate = NOW(),
`name` = '홍길순',
deptName = '홍보';
INSERT INTO emp
SET regDate = NOW(),
`name` = '임꺽정',
deptName = '기획';
INSERT INTO dept
SET regDate = NOW(),
`name` = '홍보';
INSERT INTO dept
SET regDate = NOW(),
`name` = '기획';
SELECT * FROM emp;
SELECT * FROM dept;
# 부서명 변경(홍보 => 마케팅)
UPDATE dept
SET `name` = '마케팅'
WHERE `name` = '홍보';
UPDATE dept
SET `name` = '홍보'
WHERE `name` = '마케팅';
UPDATE emp
SET `name` = '홍보'
WHERE `name` = '마케팅';
ALTER TABLE emp ADD COLUMN deptId INT UNSIGNED 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;
SELECT * FROM dept;
SELECT *
FROM emp
INNER JOIN dept
ON emp.deptId = dept.id;
# ON키워드를 이용하여 사원테이블에 부서id값(emp.dpetId)과 부서테이블에 id값(dept.id)이 일치하는부분만 보여줘
SELECT emp.id AS `사원번호`, emp.name AS `사원이름`, dept.name AS `부서명` # Name으로 컬럼을 나타내주겠다.
FROM emp
INNER JOIN dept
ON emp.deptId = dept.id;
SELECT emp.id AS `사원번호`, emp.name AS `사원이름`, dept.name AS `부서명` # Name으로 컬럼을 나타내주겠다.
FROM emp
INNER JOIN dept
ON emp.deptId = dept.id
ORDER BY emp.id ASC;
# 순방향 정렬도 가능(DESC로 역방향 정렬도 가능.)
SELECT emp.id AS `사원번호`, emp.name AS `사원이름`, dept.name AS `부서명`
FROM emp
INNER JOIN dept
ON emp.deptId = dept.id
ORDER BY `부서명`ASC, `사원이름` DESC
LIMIT 3;
# LIMIT문도 붙여서 사용 가능.
숙제(아래 내용을 차넘버, 차색깔, 차종 별로 데이터를 나열해보기)
CREATE DATABASE a9;
USE a9;
CREATE TABLE car (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
typeid INT NOT NULL,
color CHAR(100) NOT NULL
);
SELECT * FROM car;
INSERT INTO car
SET typeid = 2,
`color` = 'red';
INSERT INTO car
SET typeid = 1,
`color` = 'white';
INSERT INTO car
SET typeid = 5,
`color` = 'black';
INSERT INTO car
SET typeid = 3,
`color` = 'green';
INSERT INTO car
SET typeid = 4,
`color` = 'white';
DESC car;
CREATE TABLE `type` (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
`name` CHAR(100) NOT NULL
);
SELECT * FROM `type`;
DESC `type`;
INSERT INTO `type`
SET `name` = 'audi';
INSERT INTO `type`
SET `name` = 'bmw';
INSERT INTO `type`
SET `name` = 'benz';
INSERT INTO `type`
SET `name` = 'kia';
INSERT INTO `type`
SET `name` = 'tesla';
SELECT * FROM car
INNER JOIN `type`;
정답.
SELECT car.typeid AS `차넘버`, car.`color` AS `차색깔`, type.name AS `차이름` # Name으로 컬럼을 나타내주겠다. FROM car INNER JOIN `type` ON car.id = type.id;