MYSQL
-
프로그래머스 MySQL 고득점 Kit 풀이 정리MySQL 2021. 3. 3. 13:05
MAX/MIN 최소/최댓값 SELECT MAX(컬럼) FROM 테이블; SELECT MIN(컬럼) FROM 테이블; 다만 컬럼 이름이 MAX(컬럼) 처럼 나오기 때문에 원하는 컬럼명이 있다면 MAX(컬럼) as '원하는 컬럼명'처럼 써야한다. COUNT 데이터 ROW 개수 SELECT COUNT(*) FROM 테이블; ROW 개수를 세는데, 특정 컬럼에 중복값이 있고, 그건 빼고 세고싶다면 DISTINCT를 쓰면 된다. NULL 값과 중복된 값은 제외하고 세준다. SELECT COUNT(DISTINCT 컬럼) 테이블; 중복은 빼되 NULL은 포함해야 한다면 SELECT COUNT(*) FROM (SELECT * FROM 테이블 GROUP BY 컬럼)sub; GROUP BY, HAVING 특정 컬럼에 특정..
-
[Node.js & MySQL] 보안: SQL injection, Escaping생활코딩/WEBn 2021. 1. 13. 20:41
외부로부터 유입되는 정보는 필터링이 필요하다. 유저가 입력 데이터로 악성 SQL을 주입해 공격하는 경우인 SQL injection 예방법과 해당 데이터를 웹브라우저로 실행할 때 발생할 수 있는 Cross site scripting (XSS) 예방법을 살펴본다. [강의 출처] opentutorials.org/course/3347/21299 SQL injection 예방법 페이지를 아래처럼 로드한다고 할 때, var mysql = require('mysql'); var db = mysql.createConnection({ host : 'localhost', user : 'root', password : 'password', database : 'data' }) db.connect(); var app = ht..
-
[Node.js & MySQL] 테이블 생성생활코딩/WEBn 2021. 1. 13. 18:57
DB에서 가져온 데이터를 반복문을 이용해 html 테이블() 형태로 작성 +기본적인 조작에 필요한 CSS [강의 출처]opentutorials.org/course/3347/21202 테이블 생성 html에서 테이블을 생성하는 태그는 이다. 그 아래로 제목 , 행 , 컬럼(셀 하나하나 자리) 가 온다. 는 강조를 위한 제목태그로, 제목 부분에서 를 대신해서 사용하면 된다. # C1 C2 1 Data1 Data2 2 Data3 Data4 Foot . . # C1 C2 1 Data1 Data2 2 Data3 Data4 결론 . . 기본 값은 테두리 없음이다. 전체 테두리를 쳐보자. html 내에서 css를 실행하려면 # C1 C2 1 Data1 Data2 2 Data3 Data4 결론 . . 헤딩 부분은 td..
-
[Node.js & MySQL] main.js 정리 - DB접속 정보/쿼리 분리생활코딩/WEBn 2021. 1. 12. 02:08
main.js에 실제 실행 부분의 코드가 포함되어 있으면 복잡해져서 전체맥락을 파악하기 쉽지 않다. main.js는 index, 목차처럼 사용하는 것이 바람직하고, 그렇게 하기 위해서는 구체적인 정보들의 분리가 필요하다. 먼저 DB접속 정보를 분리했다. data/lib/db.js 파일 생성 후 접속 정보를 가져온다. var mysql = require('mysql'); var db = mysql.createConnection({ host : 'localhost', user : 'root', password : 'password', database : 'data' }) db.connect(); module.exports = db; // 외부에서 임포트할 모듈이 하나라면 이렇게 하면 된다 main.js에서는..
-
[Node.js & MySQL] 목록 콤보박스 생성 / 디폴트값 설정생활코딩/WEBn 2021. 1. 5. 21:03
DB에서 가져온 데이터를 반복문을 이용해 html 콤보박스() 형태로 작성 그중 원하는 데이터를 디폴트로 설정(selected) [강의 출처] opentutorials.org/course/3347/21193 html에서 콤보박스를 생성하는 태그는 select다. Value1 Value2 Value3 Value1 Value2 Value3 이 박스에서 Value1을 선택하고 해당 FormData를 전송하면, 데이터는 {"전송되는 데이터 이름": "1"}처럼 객체형태로 전달된다. 이 기능과 반복문을 이용해 특정한 데이터로 콤보박스를 생성할 수 있다. (MDN Web Docs js 루프와 반복 페이지에도 비슷한 예시가 있으니 나중에 헷갈리면 참조!) 자바스크립트의 배열을 이용해 콤보박스를 생성하는 경우: var..
-
[Node.js & MySQL] LEFT JOIN으로 가져온 데이터 출력생활코딩/WEBn 2020. 12. 9. 21:32
LEFT JOIN SELECT * FROM table1 LEFT JOIN table2 ON table1.key=table2.key 테이블에 같은 이름의 컬럼이 있는 경우, 테이블.컬럼 형태로 표시해주어야 ambiguity error가 나지 않는다. SELECT topic.id, title, author.name, author.description FROM topic LEFT JOIN author ON topic.author_id=author.id; +----+-----------+--------+-------------+ | id | title | name | description | +----+-----------+--------+-------------+ | 0 | Home | banana | fru..
-
[Node.js & MySQL] 데이터 처리방식: 파일 -> MySQL 이식생활코딩/WEBn 2020. 12. 9. 18:03
[강의 출처] opentutorials.org/course/3347 Node.js - MySQL - 생활코딩 수업소개 이 수업은 Node.js와 MySQL을 이용해서 웹애플리케이션을 만드는 방법에 대한 수업입니다. 수업대상 예를들어 1억 개의 페이지로 이루어진 웹사이트에서 필요한 정보가 파일에 하나하나 opentutorials.org 데이터 리스트 얻기 기존에는 파일 시스템을 이용했었기 때문에, 데이터 리스트를 얻으려면 아래처럼 파일 시스템을 읽어와야 했다. fs.readdir('./data', function(err, dataList){ /* code */ }; 이제 데이터는 MySQL에 저장되므로 이 부분은 이렇게 대체해야 한다. /* var db = mysql.createConnection({ ho..
-
[MySQL] 데이터 삭제 시 백업 테이블로 데이터 옮겨놓기생활코딩/DataBase 2020. 12. 1. 12:10
mysql> INSERT INTO topic_del SELECT * FROM topic WHERE id = 2; [참조 페이지] extbrain.tistory.com/116 [MySQL] 테이블 구조와 데이터 복사 (Table Structure and Data Copy) ▶MySQL 테이블 구조와 데이터 복사 (Table Structure and Data Copy) ▶설명 현재 생성된 테이블을 복사하는 방법에 대해서 정리하도록 하겠습니다. 이 글에서는 총 4가지를 설명하도록 하겠습니다. 테이 extbrain.tistory.com 기존 데이터를 삭제할 때, 백업해둘 필요성이 생겼다. 우선 백업용 테이블을 생성한다. 기존 테이블과 구조가 같아야 하므로 아래와 같이 복사한다. mysql> CREATE TABL..