일주일만에 끝내는 mysql
TRANSCRIPT
서버, DB, +a
3달 동안 공부할 것 세달동안,저는서버개발자로서의공부를할것이고,크게서버와데이터베이스를공부할것입니다.언제나그렇듯이예상하지못했던 +a도공부해야겠지요?
3달 동안 공부할 것
Node.JS,�AWS,MySQL,�MongoDB,�
Angular.JS
Restful�API,�DB 설계&구축,�디버깅&리팩토링
등등
기본적으로Node.js,AWS, MySQL,좀더나아가서는MongoDB,Angular.js를공부할것입니다.구체적으로는클라이언트를 API설계, DB설계/구축이되겠지요ㅎ
3달 동안 공부할 것 - 계획
1주차 (4.4~4.8)
2주차 (4.11~4.15)
3주차 (4.18~4.22)
4주차 (4.25~4.29)
5주차 (5.2~5.6)
6주차 (5.9~5.13)
7주차 (5.16~5.20)
8주차 (5.23~5.27)
9주차 (5.30~6.3)
10주차 (6.6~6.10)
11주차~
15주차
일주일만에끝내는 MySQL
Node.JS 기본과정(Socket.io까지)
JS, 처음과끝
DB 설계와 구축+ DDD
Node.JS 심화과정(DB,�AWS,�API)
깃헙, Angular.JS 기본과정
프론트엔드와협업
프론트엔드와협업 딥하게 하기
Node.JS 마스터과정
디버그, 리팩토링
MongoDB
Angular.JS
웹을 지탱하는기술
후니의 쉽게쓴즘스코 네트워킹
…
JS 디자인 패턴
자료구조, 알고리즘
3달이라는시간이의미없이흘러가지않도록구체적으로계획을짰습니다.바뀔수도있고,어떤과정이더
오래걸릴수도있지만나침반은있어야하기에!
3달 동안 공부할 것 - 계획
1주차 (4.4~4.8)
2주차 (4.11~4.15)
3주차 (4.18~4.22)
4주차 (4.25~4.29)
5주차 (5.2~5.6)
6주차 (5.9~5.13)
7주차 (5.16~5.20)
8주차 (5.23~5.27)
9주차 (5.30~6.3)
10주차 (6.6~6.10)
11주차~
15주차
일주일만에끝내는 MySQL
Node.JS 기본과정(Socket.io까지)
JS, 처음과끝
DB 설계와 구축+ DDD
Node.JS 심화과정(DB,�AWS,�API)
깃헙, Angular.JS 기본과정
프론트엔드와협업
프론트엔드와협업 딥하게 하기
Node.JS 마스터과정
디버그, 리팩토링
MongoDB
Angular.JS
웹을 지탱하는기술
후니의 쉽게쓴즘스코 네트워킹
…
JS 디자인 패턴
자료구조, 알고리즘
이번주, RDB의대표, MySQL을공부할것입니다.
일주일 만에 끝내는
MySQL
1주차 첫번째 스터디 - MySQL
교재1.�헤드퍼스트 교재
2. Udemy 강의 - https://www.udemy.com/sql-for-newbs
3. T아카데미 수업 - https://tacademy.sktechx.com
1주차 첫번째 스터디 - MySQL 교재는헤드퍼스트 SQL책을볼것이고, Udemy의강의와 T아카데미의수업을기본으로할것입니다.
1주차 첫번째 스터디 - MySQL
SQL?�DB?
SQL과 DB개념을위키피디아에서복/붙하고싶지만,전그래요..직접부딪히고,코드를짜보고,고치고,또고치다보면그개념,자연스럽게알게되지않을까요?
1주차 첫번째 스터디 - MySQL
DML,�DDL,�DCL
Database�Manipulation�Language
Database�Definition�Language
Database�Control�Language
1주차 첫번째 스터디 - MySQL
DML.CRUD.
Create�Read�Update�Delete생성 조회 수정 삭제
1주차 첫번째 스터디 - MySQL
DML.CRUD.
Create�Read�Update�Delete생성 조회 수정 삭제
INSERT SELECT UPDATE DELETE
1주차 첫번째 스터디 - MySQL
DML.CRUD.
1주차 첫번째 스터디 - MySQL
DML�핵심.쿼리 스켈레톤
SELECTFROMWHERE
1주차 첫번째 스터디 - MySQL
DML�핵심.쿼리 스켈레톤
SELECTFROMWHERE
컬럼테이블조건
1주차 첫번째 스터디 - MySQL
SELECT name
FROM city
WHERE�CountryCode=‘KOR’;;���=
SELECT *
FROM city
WHERE�Population�> 50000;*���>
1
2
SELECT *
FROM city
WHERE�CountryCode=‘KOR’�and Population�>�100000;
and���or���not���between3
1주차 첫번째 스터디 - MySQL
DML�양념 1.ORDER�BY
SELECT *
FROM city
WHERE�CountryCode=‘KOR’�order�by�Population�desc;
내림차순: desc,�오름차순: asc(default)
1주차 첫번째 스터디 - MySQL
더 다룰 것
DML:�JOIN,�LIKE,�GROUP�BY,�HAVING,�etc.DDL�등등
1주차 첫번째 스터디 - MySQL
더 다루라고 하시는것1.서브쿼리(Select결과를 가지고 한 번 더)
2. 오라클&MS-SQL의 경우 숫자의 차이를 가지고 추가진행이 가능
3. projection,�union
SQL 심화내용 & DDL
신촌 크레바스 스터디 - 1주차 두번째
JOINLIKEHAVINGGROUP�BY
SUBQUERYUNIONPROJECTION DDL
1주차 두번째 스터디 - JOIN
JOIN
정규화제1정규화
조인
제2정규화
…
중복 vs.
내부/외부조인
외래키
1주차 두번째 스터디 - JOIN
JOINSELECT city.Population,�country.GNP
FROM city�join country�on city.CountryCode=�country.Code;
Inner�Left�Right�Full
1주차 두번째 스터디 - JOIN
Inner�Left�Right�Full
1주차 두번째 스터디 - JOIN
내부조인
외부조인
외부조인(레프트)
외부조인(라이트)
1주차 두번째 스터디 - JOIN
내부조인
외부조인
1주차 두번째 스터디 - LIKE
LIKE�검색
Select�컬럼명From�테이블명Where�조건절LIKE 패턴
와일드카드%_
주의사항- 논리연산자와함께사용하
는경우 무리- Full-Text�Search�참고
< 패턴검색 >
1주차 두번째 스터디 - LIKE
LIKE�검색SELECT CountyCode FROM�city�WHERE�name�like ‘K%’;
SELECT CountyCode FROM�city�WHERE�name�like ‘%K’;
SELECT CountyCode FROM�city�WHERE�name�like ‘%K%’;
SELECT CountyCode FROM�city�WHERE�name�like ‘K__’;
1주차 두번째 스터디 - GROUPBY
GROUP�BY
1주차 두번째 스터디 - HAVING
HAVING
SELECT�CountyCode,�count(CountryCode)�FROM�city�group�by
CountryCode having�count(CountryCode)�>=�3;
Having은 집합연산에 WHERE 조건절 대체로 사용
group�by�결과물에 다시 조건을 걸고 싶을 때
1주차 두번째 스터디 SubQuery
SUB-QUERY쿼리문 내의 또 다른 쿼리문이있는 형태
SELECT�count(*)�FROM�city�WHERE�CountyCode=
(SELECT�code�FROM�country�WHERE�name=‘South�Korea’);
SELECT�count(*)�FROM�city�WHERE�CountyCode=‘KOR’;
1주차 두번째 스터디 SubQuery
SUB-QUERY단일행 서브쿼리말고도
다중행, 멀티컬럼서브쿼리가 있다.
SELECT�CountyCode,�count(*)�FROM�city�WHERE�CountyCode IN
(SELECT�code�FROM�country�WHERE�name�in�(‘South�Korea’,�
‘China’,�‘Japan’));
ALL,�ANY,�IN/EXISTS
1주차 두번째 스터디 UNION
UNION집합연산 합집합(union),교집합(intersect),차집합(minus)
SELECT�name�FROM�city�where�CountyCode=‘KOR’�UNION
SELECT�name�FROM�city�where�CountryCode=‘CHN’;
SELECT�name�FROM�city�where�CountyCode=‘KOR’�or
CountryCode=‘CHN’;
1주차 두번째 스터디 - MySQL
더 다루라고 하시는것1. Join� Driving�Table�/�Driven�Table
2. Left�Join�방식 ANSI방식 / 오라클(+)방식
3. Union�&�Unionall 실례
4. 교집합(intersect)� /�차집합(minus)
5. Projection
1주차 세번째 스터디 Driving/Driven
Driving/Driven�테이블
성능이슈로인해 어떤테이블을드라이빙테이블로할지
다른테이블을드리븐으로할지결정해야하며다음과같은요소들을고려함
1. 인덱스의여부
2. ROW가적은테이블
Driving�테이블: 결합하기위해기준이되는테이블(먼저읽는테이블)
Driven�테이블: 결합되어지는테이블
1. Nested�Loop�Join����2.�Merge�Join����3.�Hash�Join
1주차 세번째 스터디 ANSI�vs.�Oracle
ANSI�/�Oracle(+)Oracle�9i부터 Oracle�SQL이 ANSI방식의문법을지원
SELECT�DISTINCT(emp.deptno),�dept.deptno
FROM�emp LEFT�OUTER�JOIN dept ON dept.deptno =�emp.deptno;�
Dept:�부서tbl, Emp:�직원tbl
SELECT�DISTINCT(emp.deptno),�dept.deptno
FROM�emp,�dept WHERE�emp.deptno =�dept.deptno(+);
Table을 여러개 join하려고할 때 ansi가 불편하다?
미국 국립표준 협회(ANSI,�American�National�Standards�Institute
Right?
1주차 세번째 스터디 UNIONALL
UNION�ALL 실례SELECT�name, sentences�FROM�event1�WHERE�sentences�>�50�
UNIONALL
SELECT�name,�sentences�FROM�event2�WHERE�sentences�>�50;
1주차 세번째 스터디 - 교집합
교집합(intersect)SELECT�CountryCode FROM�city�WHERE�LifeExpectancy >=�80�
Intersect SELECT�Code�FROM�country�WHERE�Population�>=�10000;�
SELECT�CountryCode FROM�city�WHERE�LifeExpectancy >=�80�
And�CountryCode IN (SELECT�Code�FROM�country�WHERE�
Population�>=�10000);�
1주차 세번째 스터디 - 차집합
차집합(minus)SELECT�CountryCode FROM�city�WHERE�Population�>�5000000�
Minus SELECT�CountryCode FROM�city�WHERE�CountryCode=‘CHN’;
SELECT�distinct�CountryCode FROM�city�WHERE�Population�>�
5000000�And�CountryCode NOT�IN (SELECT�distinct�CountryCode
FROM�city�WHERE�CountryCode=‘CHN’);
1주차 세번째 스터디 - DDL
DDLDatabase�Definition�Language
DML이 정보하나하나에대한CRUD였다면,
DDL은 DB와 Table에 대한 CRUD.
스키마 생성뿐만아니라수정, 삭제까지!!!
1주차 세번째 스터디 - DDL
DDL
CREATE�DATABASE�sample_DB;
- SHOW�DATABASES;
USE�sample_DB;
1주차 세번째 스터디 - DDL
DDLCREATE�table�BusinessCard(
id�int ,
Name�varchar(255),
Address�varchar(255),
Telephone�char(255)
);
1. SHOW�tables;
2. DESC�BusinessCard;
1주차 세번째 스터디 - DDL
자료형- 정수형(int)
- 실수형(float),
- 문자열(char,�varchar)
- Text문자열(text)
- BLOB(Binary�Large�Object)
- 시간관련(date,�time,�datetime,�timestamp)
1주차 세번째 스터디 - DDL
제약조건- not�null
- unique
- Primary�key
- check
- default
- auto_increment
- 외래키
CREATE�table�BusinessCard(
id�int auto_increment,
Name�varchar(255)�not�null,
Address�varchar(255)�default�‘SEOUL’,
Telephone�char(255)�unique,
Age�int,
check(100>Age>0),
primary�key(id)
);
1주차 세번째 스터디 - DDL
제약조건 - 외래키
1주차 세번째 스터디 - DDL
참조무결성외래키
1. 외래키를참조하면원래테이블에해당레코드
값이반드시존재해야함
2. 만약원래레코드를삭제하려면참조하는외래
키(FK)값을먼저 NULL로만들어야함
1주차 세번째 스터디 - DDL
더 다룰 것DCL,�indexing, DB백업/복원,파티셔닝/복제, full-text�search, 트랜잭션, …