일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- #nodejs#express
- 생활코딩
- Drawing Book
- A Very Big Sum
- hackerrank
- Apple and Orange
- alogrithim
- Migratory Birds
- nodejs
- Divisible Sum Pairs
- Ellectronics Shop
- 자료구조
- algorithim
- 노드
- javascirpt
- git
- Javascript
- Data Structure
- Sock Merchant
- 프로그래머스
- #nodejs#노드js
- Breaking the Records
- Between Two Sets
- 짝수와 홀수
- Algorithm
- Grading Students
- 자바스크립트
- Birthday Chocolate
- 알고리즘
- Time Conversion
- Today
- Total
ian의 개발일기장
19. 데이터베이스 - MySQL 소개 및 기본사용법 본문
1. MySQL 소개
- 관계형 데이터베이스 시스템
- 웹에서 성공
- MariaDB - MySQL과 호환가능
2. MySQL 설치 - 맥(OS X)
bitnami 이용
MySQL에서 홈페이지 다운
homebrew를 이용한 설치
3. root 비밀번호 설정 - 터미널에 mysql_secure_installation 입력
터미널에 입력을 하면 여러가지 설정들이 뜬다.
복잡한 비밀번호 설정을 위한 과정을 거칠 것인가? 저는 no로 대답.
root 비밀번호 입력 및 확인 - 개인비번 입력
익명 사용자를 삭제할 것인가? 저는 yes (mysql -uroot로 접속해야함. no를 하면 mysql만으로 접속가능)
원격접속을 허용할것인가? 저는 yes(원격접속불가)
test 데이터베이스를 삭제할것인가? No
수정할 것이 있어서, 위의 과정을 다시 거치시겠습니까? NO
위의 메세지와 함께 종료된다.
4. MySQL 사용 - root비번을 설정하였다면, 터미널에 mysql -uroot -p 입력, 설정을 하지 않았다면 mysql -uroot입력으로 접속가능
터미널에 입력하면 비번을 입력하는 문구가 나오고, 비번을 입력하면 mysql로 접속한 터미널이 뜬다.
5. MySQL 종료 - 터미널에 exit 입력
3. MySQL 구조
- Database Server - 데이터베이스 서버 안에 데이터를 저장하고, 저장된 데이터를 조회, 수정, 삭제등 제어를 할 수 있다.
- Database - Table들을 비슷한것 끼리 그룹핑한 것, 비슷한 카테고리로 분류한 것.
- Table - database의 가장 기본적인 단위, 수평은 row(행), 수직은 column(열)
4. MySQL 사용하기
- 터미널에 mysql -uroot -p 입력, 설정을 하지 않았다면 mysql -uroot입력으로 접속가능
- Database 만들기 (Database Server 와 Database는 다름!!) - 터미널에 CREATE DATABASE 데이터베이스이름(위의 그림을 따라할 것이므로, o2로 입력, 더자세하기 하기위해 생활코딩코드 복붙!)
- Database 확인 - 터미널에 SHOW DATABASES; 입력 (;꼭 붙여야함!)
- Database 접속(Database 선택) - use 데이터베이스이름
- Table 생성 - 자세한건 MySQL수업을 봐야하므로, 주어진 코드를 복붙하였다.
- 생성된 Table 확인 - SHOW 테이블이름
- 데이터 추가(INSERT) - INSERT INTO 테이블명 (테이블컬럼2, 테이블컬럼3, 테이블컬럼4) VALUES(테이블컬럼2값, 테이블컬럼3값, 테이블컬럼4값) => ex)INSERT INTO topic (title, description, author) VALUES('JavaScript', 'Computer language for web.', 'egoing'); (위의 테이블 참고!)
- 추가한 데이터 가져오기 - SELECT * FROM 테이블명; (* - 모든)
id는 자동생성됨(데이터를 구분하는 식별자)
- 특정한 하나의 행 데이터 가져오기 - SELECT * FROM 테이블명 WHERE 식별자
5. MySQL - UPDATE & DELETE
- 데이터 수정 - UPDATE 테이블명 SET 바꿀컬럼=바꿀값 WHERE 식별자
입력 후, 표를 확인하면 수정된 것을 확인 할 수 있다. 그러나 WHERE를 입력안하면, 큰일이 난다. 모든데이터가 바뀐다.
- 데이터 삭제 - DELETE FROM 테이블명 WHERE 식별자
정말 id=2인 행이 삭제가 되었다. WHERE를 입력안하면, 모든데이터가 삭제된다.
6. node-mysql 1 : 접속
- node-mysql 설치 - 터미널에 npm install -S mysql 입력
- node로 mysql 접속
node-mysql 깃허브에 예제가 나와있다. 예제를 통해 확인해보자.
database_mysql.js를 만든후, 위와같이 입력후, 서버를 켜보자. 대신 password 부분은 sql 접속할때 만든 비번으로 입력해야한다. 임의로 11111 입력한것이다.
만약 에러가 나면, stackoverflow에 검색을 하니 mysql에서 ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘사용할패스워드’ 이것을 통해 해결했다.
이렇게 되야 정상 작동 하는 것이다. 다만 위코드에서 database: 'o2'가 아닌 다른이름을 입력하면 에러가 난다. 왜냐하면 우리 mysql에 존재하지 않기 때문이다. Ctrl+C를 누르면 서버는 종료된다.
코드를 다시 추가해서, 서버를 껏다가 켜보자.
err가 없어서 else문이 실행되었다. rows는 우리가 만든 mysql table의 행들을 보여준다. fields는 열을 보여준다.
7. node-mysql 2 : SELECT & INSERT
- 데이터 추가해보기 - MySQL INSERT문을 이용하자!
아까 작성한 databas_mysql.js를 저부분만 수정해보자. sql문에 INSERT문이 있으므로 데이터를 추가 할 수 있다. 수정 후, 서버를 키자.
mysql에서 확인해보면, 정말 데이터가 table에 추가되었다.
8. node-mysql 3 : UPDATE & DELETE
- 데이터 업데이트 - MySQL UPDATE문 이용하자!
코드를 입력 후, 서버를 키고, mysql에서 확인해보자. title과 author가 변경되었다.
- 데이터 삭제 - MySQL DELETE문을 이용하자!
코드를 변경 후, 서버를 키고 , sql에서 확인해보면 정말로 데이터가 삭제된다.
출처 - 생활코딩, homebrew mysql 설치
'Front-End > Node.js' 카테고리의 다른 글
21. HTTP (0) | 2018.10.23 |
---|---|
20. 데이터베이스 - MySQL로 웹애플리테이션 구현 (0) | 2018.10.02 |
18. 데이터베이스 - 데이터베이스 수업소개 (0) | 2018.09.29 |
17. 파일업로드 (1) | 2018.09.28 |
16. 웹애플리케이션 제작 (0) | 2018.09.26 |