G's days

[정리]21/08/15~16 Database-MySQL (생활코딩) 본문

일지

[정리]21/08/15~16 Database-MySQL (생활코딩)

Hi☆G 2021. 8. 15. 15:11

Node.js - My SQL 강좌를 듣기 위한 사전학습

Oracle을 살짝 배웠기 때문에 복습하는 느낌으로 빠르게 들었다.

나중에 내용을 상기하기 좋도록 강의를 들으며 핵심적인 내용을 적으며 들었다.

단점은, 나만 이해할 수 있다는 점 :-)

 

관계형 데이터베이스 - MySQL 

MySQL 설치 - Apach서버 설치할 때 WAMP로 설치했음으로 pass

(현재는 MariaDB로 설치된다 - mysql과 같은 오픈소스를 사용)

https://gsdays.tistory.com/126

 

내 PC에 웹서버를 설치해보자.(윈도우/bitnami WAMP)

AJAX관련 실습을 해보고자 한다. 웹서버가 필요하다. 내 PC에 설치해보자. Apache HTTP서버를 사용해 보자. bitnami WAMP를 통해 사용해 보자. 그럼 아래에서 다운을 받자. https://bitnami.com/stack/wamp/instal..

gsdays.tistory.com

 

MySQL 구조

(작은 순서대로) TABLE(표) -> DATABASE(SCHEMA) -> DATABASE SERVER

 

MySQL 서버에 접속해보자.

cmd창을 열자.

1) 먼저 mysql.exe가 들어있는 폴더로 디렉토리를 설정한다.

2) mysql -u(username) -p enter

(uroot: 관리자권한)

3) 지정한 password를 입력하면 접속 성공

 

database(schema)를 사용해보자.

CREATE DATABASE : 데이터베이스 생성

DROP DATABASE : 데이터베이스 삭제

USE DATABASE : 데이터베이스 사용

 

SQL과 table의 구조

- SQL : Structured Query Language

구조화된 (해줘!)(DB서버에게)질의하는 약속된 언어

database server와 소통하는 언어

 

- table의 구조

   row = record = 행 ; 데이터 자체

   column = 열 ; 데이터 타입, 테이블 구조


 

실습

table 생성

tip 쓰고자 하는 명령어, 데이터 타입은 cheat sheet를 검색해서 참조하자.

 

수업에서 생성한 'TOPIC'이라는 TABLE이다.

순서: column이름, 데이터타입(크기), NULL가능 여부, 기타 (콤마로 구분한다)마지막 줄에서 Primary Key(기본키)를 지정해 주었다. 

  * Primary Key(기본키): 식별자로 쓰기에 적합한 것을 table마다 설정하는 것

 

이름과 데이터타입을 지정해서 테이블의 필드를 만들자.

 

*auto_increment: 자동으로 부여됨

잘 만들어졌다.

 

 

SQL의 INSERT구문

INSERT INTO 테이블(필드이름1, 필드이름2, 필드이름3, ..) VALUES(데이터값1, 데이터값2, 데이터값3, ..)

(auto_increment가 설정된 필드는 생략가능)

 

읽기)  SELECT, FROM을 써서 row가 잘 만들어졌는지 확인해보자.
잘 만들어졌다.

 

 

SQL의 SELECT구문

SELECT 필드명 or 데이터

FROM 테이블명

WHERE 찾고싶은 조건

ORDER BY ... DESC (내림차순으로 정렬)

LIMIT 갯수

 

author가 JJ인 것만 찾는다
id를 내림차순으로 정렬

SQL의 UPDATE구문

UPDATE 테이블 SET 필드 = 내용 WHERE 조건

 

id값이 2인 행에서 description과 title을 바꿔보자
잘 바뀌었다.

SQL의 DELETE구문

DELETE FROM 테이블 WHERE 조건

실습end


관계형 데이터베이스의 필요성

저장은 나눠서 보여줄 때는 합쳐서!

 

실습

테이블 분리하기

두 개의 테이블을 만들자: author, topic

JOIN

topic테이블의 author_id값과 author테이블의 id값이 같은 row끼리 붙여서 테이블을 합치자;

   ===> SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;

 

SELECT topic.id AS topic_id ,title,description,created,name,profile FROM topic LEFT JOIN author ON topic.author_id = author.id;

   ===> AS는 다음의 이름으로 필드를 표시해 달라는 것.

   ===> topic.id라고 명시해준 이유는 두 테이블 모두 'id'값을 가지고 있기 때문이다.

실습end

 


인터넷과 데이터베이스, MySQL클라이언트

 

database client와 database server구분

MySQL monitor, MySQL Workbench: database client

 

 

MySQL Workbench

: MySQL에서 기본으로 제공하는 GUI기반의 MySQL Client

 

설치, 사용해보자

느낀점

1) 버튼이 하는 일을 다 기억하게 되면 편할 것 같다.

2) 데이터베이스와 테이블 목록을 한눈에 볼 수 있다.

3) 깔끔하고 예쁘다.

그래도 결국은 명령어를 써서 적용하는 것이기 때문에 MySQL monitor로 컨트롤하는 게 덜 복잡한 것 같다.

 

수업을 마치며

 

data modeling

data backup

cloud

(종류: AWS RDS, Google Cloud SQL for MySQL, AZURE Database for MySQL)

programming언어로 데이터베이스 핸들링하기

 


완강