728x90

Database (DB) 13

[MySQL] 08.1 연습: 3개테이블 Join

저번에 만든 이 3개의 테이블을 합치겠습니다. 먼저 MasterTable과 Nations를 합치겠습니다. SELECT * FROM masterTable LEFT JOIN nations ON masterTable.pNation_id = nations.nation_id; 이렇게 나오는데, 그 옆에 tmi도 붙혀보겠습니다. SELECT * FROM masterTable LEFT JOIN nations ON masterTable.pNation_id = nations.nation_id JOIN TMI ON MasterTable.pTMI_id = TMI.TMI_id; 3개를 조인하는 방법은, 2개의 테이블을 조인하는 방법과 매우 같습니다. 2개를 조인할때는 JOIN키워드 하나만 사용했지만, 3개일땐 2개를, 4개일..

Database (DB)/MySQL 2020.03.15

[MySQL] 08 연습: 3개테이블 생성, ALTER연습

3개의 테이블을 JOIN하는 연습을 하겠습니다. 이 3개의 테이블들 합치고, 숫자들 대신 정보들을 join시켜서 읽어보도록 하겠습니다. 이러한 테이블을 만들고, 중복되는 정보들을 따로 테이블로 빼서 관리하겠습니다. player_nation, player_tmi에 겹치는 정보가 여럿 있으니, 각각 테이블을 하나씩 만들어 주면 되겠네요. 일단 데이터베이스를 만들고(스키마), 테이블들을 만들겠습니다. CREATE DATABASE EXAMPLE_01; 그리고 이제 테이블을 만듭니다. CREATE TABLE MasterTable( -> Player_id INT NOT NULL AUTO_INCREMENT, -> Player_name VARCHAR(100) NOT NULL, -> Player_nation VARCHA..

Database (DB)/MySQL 2020.03.10

[MySQL] 07. MySQL Workbench

이번엔 MySQL Workbench를 사용해 보려고 합니다. MySQL Workbench는 MySQL Client중에 하나입니다 Client는 서버에 접속할때 필요한 툴? 같은 것들 입니다. 저희가 지금까지 cmd로 MySQL연결할때 뜨던 콘솔창 기억하시나요? 이런 모양의 창이었는데, 이건 MySQL을 다운받을때 자동으로 같이 딸려온 클라이언트 중에 하나입니다. 이번에는 좀 더 밝고 보기좋은 client를 이용해서 MySQL 서버에 접속 해보도록 하겠습니다. https://www.mysql.com/products/workbench/ 위의 링크에서 다운 받으시면 됩니다. 혹시 가입하라는 글이 뜨면, No thanks, just start my download. 를 클릭하시면 됩니다. (아래 있어요). 실행..

Database (DB)/MySQL 2020.03.10

[MySQL] 06. JOIN 그리고 테이블,스키마 삭제.

저번에 만든 두개의 테이블을 Join 해보려 합니다. 이렇게 mastetTable에 있는 author_number 뒤에 author에서 같은 번호들을 가져와서 붙히려고 합니다. SELECT * FROM masterTable LEFT JOIN author ON masterTable.author_number = author.number; Select을 이용해서 어디에 붙힐지 정하고 Join을 이용해 뭘 붙힐지 정했습니다. 뒤에 ON 다음에 오는 코드들은 마스터테이블에 있는 author_number가 author테이블에 있는 number랑 같은데 붙히겠다. 라는 의미입니다. 결과적으로 두개의 테이블이 잘 붙었습니다. 근데 author number랑 number랑 중첩인데, 굳이 보여줄 필요가 없습니다. 그래서..

Database (DB)/MySQL 2020.03.10

[MySQL] 06. 1개의 테이블을 2개로 분리하기

일단 시작하기에 앞서, 매번 하던 방법으로 TABLE까지 연결을 해야합니다. 현재 2개의 row만 있으니까, 몇줄만 더 추가해 보도록 하겠습니다. 처음 insert로 추가할때는 저희는 이런 방법으로 했는데요, INSERT INTO 테이블이름 (세로줄이름1, 세로줄이름1, 세로줄이름1....) VALUES (넣고싶은값1, 넣고싶은값2, 넣고싶은값3....); 실은 이렇게 하셔도 됩니다. INSERT INTO 테이블이름 VALUES (넣고싶은값1, 넣고싶은값2, 넣고싶은값3....); 이렇게 추가하셔도 괜찮습니다. 저는 이렇게 총 5줄을 가진 테이블을 만들었습ㄴ다. 보면 중복되는게 보이시나요? description에도 몇몇 중복이고, author도 중복이 있습니다. 이번에는 author 만으로 먼저 나눠볼게..

Database (DB)/MySQL 2020.03.10

[MySQL] 05. 관계형 데이터베이스가 중요한 이유

다른 사람들과 협업을 하다보면, 이름이 kevin인사람도 많고, 닉네임까지 같은걸 쓰는 사람이 많습니다. 여기 표에서, author이 지금은 kevin, kim, junho 이렇게 있는데 만약에 kevin이라는 사람 3명이서 협업을 하는데, 세명 다 kevin, kevin, kevin 이라고 써놓으면 다른 누군가가 이 표를 보게된다면, 아 kevin이라는 사람 한명이 이 3줄을 다 쓴거구나 하고 잘못 이해할수도 있습니다. 이러한 중복을 피하기 위해, 관계형 데이터 베이스를 사용 합니다. 중복이 있을경우, 퍼포먼스쪽에서도, 유지보수쪽에서도 여러모로 낭비가 크고 나중에 kevin이라는 사람이 쓴게 1000줄인데, 그사람이 쓴 모든 description을 none 으로 바꾼다고 할때, 1000줄을 일일이 up..

Database (DB)/MySQL 2020.03.10

[MySQL] 04. CRUD (데이터를 추가, 읽기, 수정, 삭제)

저는 새로 컴퓨터를 켰으므로, cmd를 열어서 다시 MySQL을 실행해야합니다. 경로 입력하고, mysql -uroot -p 그리고 비밀번호까지 치신다음에 저번에 만든 테이블이 잘 있나 확인하겠습니다. 처음에 바로 show tables; 를 썼다가 에러가 나왔는데, 이유가 데이터베이스를 선택 안하고 테이블을 바로 찾으려 해서 입니다. USE EXAMPLE_01;로 데이터베이스를 먼저 고르고, SHOW TABLES; 하니까 어제만든 TABLE_01이 잘 나오는데까지 확인했습니다. 이 과정은 점차 익숙해 지실겁니다. 처음에 데이터베이스를 Input, Output, 즉, 입출력에는 4가지 방법이 있다했습니다. 1. 데이터를 테이블에 추가하고 - Create / Add 2. 만들어진 데이터를 읽고 - Read ..

Database (DB)/MySQL 2020.03.08

[MySQL] 03. Table, 테이블 구조 및 생성

스키마까지 만들었으니, 이젠 본격적으로 table을 만들겠습니다. 이제 SQL 이라는 걸 배울겁니다 SQL은 Structured Query Language입니다. 간단하게 말해서 SQL이란 데이터를 관리하기 위해 만들어진 특수 목적의 프로그래밍 언어입니다. 우리가 미국인하고 대화할땐 걔네가 한국어를 하던가, 우리가 영어를 하던가 이런 공통된 언어가 필요하듯이, 우리가 MySQL하고 대화하려면 SQL이라는 언어가필요한거 입니다. 이 언어의 특징은 일단 HTML만큼 쉽기때문에, 처음 접하기 좋습니다. 그리고 그 다음 특징은 정말 중요한 언어입니다. 가성비가 좋은거죠. 저사양 고효율 느낌? 본론으로 들어가서 table의 구조와 생성을 해보겠습니다. 뭐 table은 그냥 표 입니다. word에서 표를 만들때 우..

Database (DB)/MySQL 2020.03.07

[MySQL] 02. Schema, 스키마

저번에 배운 스키마를 만들어 보겠습니다. (cmd->경로입력->mysql -uroot -p -> 비밀번호로 먼저 mysql을 실행시켜주셔야 합니다.) 스키마를 만드는 방법은 CREATE DATABASE 이름; 입니다. 이름은 말그대로 데이터베이스 이름을 정해주시면됩니다. 저는 example_01로 했습니다. 여기서 Query Ok가 뜨면 성공입니다. 만약 이 문구 외에 다른게 뜨시면, 구글 검색엔진에 그대로 가져다 붙혀넣으시면 해결하실 수 있습니다. * 제일뒤에 ; 세미콜론 잊으시면 안됩니다. 이제 우리가 만든 데이터베이스들을 보고싶습니다. 그럴때는 SHOW DATABASES; 라고 입력해 주시면 됩니다. 그러면 이렇게 데이터 베이스를 보여줍니다. 이제 우리가 만든 example_01을 사용하고 싶습니다..

Database (DB)/MySQL 2020.03.07

[MySQL] 02. MySQL 구조

저희는 서버에 들어왔으니 이제 무언가를 해야합니다. 무언가를 하기에 앞서 MySQL의 구조에 대해 간략히 보겠습니다. 최종적으로 완성되는 거는 table이라고 합니다. table이라고 하면 뭐.. 표 입니다 일단은. 저희 저번에 보던 database ranking 2020 스크린샷 같은 표들을 table 이라고 합니다 (https://devkevin0408.tistory.com/6 참고) 이런거 뿐만이 아니라, 댓글 아니면 게시판에 달린 글들 이런 모든게 table에 속합니다. 그리고 이러한 table들을 모은걸 schema 즉, 스키마 라고 합니다 이러한 스키마들을 모은게 database 입니다. 좀 설명이 복잡한데 간단히 말해서 저희가 어떤 게시글들을 저장하기위해 mysql을 사용할겁니다. 게시글들의..

Database (DB)/MySQL 2020.03.07
728x90