mysql(13)
-
[DB] JOIN
1. JOIN 둘 이상의 테이블에서 데이터가 필요할 때 관련 있는 속성을 기준으로 복수의 테이블을 ‘관계’ 지어주는 연산. 그래서 관계형 데이터베이스의 꽃이라 부른다. 일반적으로 각 테이블의 PK 및 FK로 구성된 조인 조건을 포함하는 WHERE 절을 작성해야 한다. 가. JOIN의 종류 조인은 크게 일반적인 조인(혹은 내부 조인)과 외부 조인으로 나눌 수 있다. INNER JOINOUTER JOINLEFT OUTER JOINRIGHT OUTER JOIN 2. INNER JOIN 두 테이블 모두에서 일치하는 값을 가진 행만 반환. select e.employee_id, e.first_name, e.salary, d.department_namefrom employees e inner join depart..
2024.06.22 -
[mySQL] 사용자 추가, 권한 부여,삭제
1. 사용자 추가 CREATE USER 'USERNAME'@'ipaddr' IDENTIFIED BY 'password'; 'USERNAME'@'ipaddr' : 특정 ipaddr에서 접속하는 유저. 'USERNAME'@'localhost' : localhost에서 접속하는 유저. 'USERNAME'@'%' : 모든 ip에서 접속하는 유저. //확인 SELECT USER, HOST FROM mysql.user; 2. 권한 부여 GRANT 문을 사용해서 생성한 유저의 권한을 설정한다. //example GRANT ALL PRIVILEGES ON opentutorials.* to 'USERNAME'@'ipaddr'; 3. 사용자 삭제 DROP 문으로 유저를 삭제한다. DROP USER 'USERNAME'@'i..
2023.07.04 -
[Node.js] 리팩터링
Node.js - MySQL - 생활코딩 수업소개 이 수업은 Node.js와 MySQL을 이용해서 웹애플리케이션을 만드는 방법에 대한 수업입니다. 수업대상 예를들어 1억 개의 페이지로 이루어진 웹사이트에서 필요한 정보가 파일에 하나하나 opentutorials.org 생활코딩 Node.js - MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. 현재 상황 대충 이렇다. 겁나 복잡하다. 학습과 구현을 병행했기 때문에 아주 이상한 프로그램이 되었다. 보다 유지보수가 쉽도록 리팩토링을 수행한다. 2. 개선 방안 리팩터링의 핵심 포인트를 짚어보자. 가. DB 사용 template.js에 위치한 메서드들이 readAndRes를 거치지 않고 바로 DB에 접근할 수 있도록 해보자. 우선 db.js를 만..
2023.03.27 -
[Node.js] 작성자 표시
Node.js - MySQL - 생활코딩 수업소개 이 수업은 Node.js와 MySQL을 이용해서 웹애플리케이션을 만드는 방법에 대한 수업입니다. 수업대상 예를들어 1억 개의 페이지로 이루어진 웹사이트에서 필요한 정보가 파일에 하나하나 opentutorials.org 생활코딩 Node.js - MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. JOIN문을 이용한 상세 보기 구현 topic과 author 테이블을 조인해서 글마다 작성자가 누구인지 표시할 수 있도록 한다. `SELECT * FROM topic LEFT JOIN author ON topic.author_id= author.id WHERE topic.id=?`, HTML 코드를 수정해서 작성자를 표시하는 p 태그를 추가한다. m..
2023.03.27 -
[Node.js] MySQL로 기능 구현 (Update, Delete)
Node.js - MySQL - 생활코딩 수업소개 이 수업은 Node.js와 MySQL을 이용해서 웹애플리케이션을 만드는 방법에 대한 수업입니다. 수업대상 예를들어 1억 개의 페이지로 이루어진 웹사이트에서 필요한 정보가 파일에 하나하나 opentutorials.org 생활코딩 Node.js - MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. Update } else if (pathname === "/update") { const filteredTitle = path.parse(queryData.id).base; const description = fs.readFileSync(`${dataDir}/${filteredTitle}`, "utf8"); const updateForm = ` ${..
2023.03.27 -
[Node.js] MySQL로 기능 구현 (Create, Read)
Node.js - MySQL - 생활코딩 수업소개 이 수업은 Node.js와 MySQL을 이용해서 웹애플리케이션을 만드는 방법에 대한 수업입니다. 수업대상 예를들어 1억 개의 페이지로 이루어진 웹사이트에서 필요한 정보가 파일에 하나하나 opentutorials.org 생활코딩 Node.js - MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. 상세 보기 구현 MySQL에서 DB의 정보를 가져와서 상세 보기 페이지를 만들고 클라이언트에게 전송하기. if (pathname === "/") { if (queryData.id === undefined) { ... } else { db.query(`SELECT * FROM topic WHERE id=?`, [queryData.id], functio..
2023.03.27 -
[Node.js] npm install mysql2
Node.js - MySQL - 생활코딩 수업소개 이 수업은 Node.js와 MySQL을 이용해서 웹애플리케이션을 만드는 방법에 대한 수업입니다. 수업대상 예를들어 1억 개의 페이지로 이루어진 웹사이트에서 필요한 정보가 파일에 하나하나 opentutorials.org 생활코딩 Node.js - MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. MySQL 연결하기 const mysql = require('mysql'); const db = mysql.createConnection({ host: 'localhost', user: 'nodejs', password: '123456', database: 'opentutorials' }); db.connect(); ... db.end(); 2. E..
2023.03.13 -
[Node.js] MySQL 제어하기
Node.js - MySQL - 생활코딩 수업소개 이 수업은 Node.js와 MySQL을 이용해서 웹애플리케이션을 만드는 방법에 대한 수업입니다. 수업대상 예를들어 1억 개의 페이지로 이루어진 웹사이트에서 필요한 정보가 파일에 하나하나 opentutorials.org 생활코딩 Node.js - MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. file의 한계 소규모의 단순한 기능을 구현하기에는 파일이 좋다. 단순하고 쉽고 특별한 설치나 학습이 필요하지 않다. 하지만 파일은 한계가 있다. 우리가 만든 웹 페이지가 저장한 파일의 수가 커질수록 원하는 파일, 원하는 내용을 찾는 것이 오래 걸린다. 뿐만 아니라 파일은 제목과 본문이라는 두 가지 요소만을 표현할 수 있다. 부가적으로 작성자의 이름..
2023.03.10