본문 바로가기
WEB/웹 프로젝트

[생활코딩] DATABASE - MySQL 정리

by 단월໒꒱ 2022. 1. 9.

생활코딩 DATABASE - MySQL 2강 ~ 20강 정리

1. 데이터베이스

 - 데이터를 표의 형태로 표현 가능

 - 컴퓨터 언어를 통해 데이터를 제어 가능

 - MySQL은 관계형 데이터베이스

 - 권한 기능이 있어서 사용자에 따라 권한 설정 가능

 

2. MySQL 접속

 (1) MySQL 설치했을 때

   1) MySQL start

   2) terminal 열고 아래의 명령어 입력

          (-uroot : root라는 사용자로 접속하겠다는 의미)

             ㄴ root는 모든 권한이 열려있기 때문에 데이터베이스 직접 다루는 건 위험

          (-p : 아래로 비밀번호를 물어보게끔 함)

 

 

password에는 처음에 설정된 비밀번호를 입력해주면 된다.

내 컴퓨터에서도 해보려고 했는데 아무리 찾아도 mysql 폴더가 안 보여서 나중에 다시 찾아보기로 했다...

 

 (2) MySQL 설치 안 했을 때

   1) Codeanywhere 페이지 들어가기

   2) 로그인 후 container 생성하고 명령어 입력

 

 

 

실제로 따라 해보니 접속할 수 있었다.

 

3. MySQL의 구조

 1) 표 : 데이터가 저장된 곳

 2) 데이터베이스(≒ 스키마) : 서로 연관된 데이터들의 표들을 그룹핑하는데 사용하는 폴더

 3) 데이터베이스 서버 : 스키마들이 저장된 곳

 

 

 

4. 스키마의 사용

 - 데이터베이스의 생성, 삭제, 존재 확인, 이용

 

mysql> CREATE DATABASE 데이터베이스이름; // 데이터베이스 생성
mysql> DROP DATABASE 데이터베이스이름; // 데이터베이스 삭제
mysql> SHOW DATABASES; // 존재하는 데이터베이스 확인
mysql> USE 데이터베이스이름; // 데이터베이스 사용

 

5. SQL과 테이블의 구조

 1) SQL (Structured Query Language)

     : 데이터베이스 서버를 제어할 때 사용

 

 2) 표(table)의 구조

 

 

 

6. 테이블의 생성

 

 

 

mysql> CREATE TABLE 테이블이름(
            c1 datatype(length) // column 생성, 데이터타입 지정
            c2 datatype(length)
            ...
            PRIMARY KEY(c1)
       )

 

datatype : 데이터 타입 지정

length : 숫자 노출 범위

PRIMARY KEY : 해당 column이 테이블의 메인키라는 것을 알려줌 

 

NOT NULL : 값이 없는걸 허용 x

AUTO_INCREMENT : 자동으로 1씩 증가

 

cf) 비밀번호 관련 오류 발생 시, 비밀번호 다시 설정

 

mysql> SET PASSWORD = PASSWORD('비밀번호');

 

 

7. CRUD

 - 데이터베이스가 기본적으로 갖고 있는 4가지 작업

  1) C : Create (생성)

  2) R : Read (읽음)

  3) U : Update (수정)

  4) D : Delete (삭제)

 

8. INSERT

 

INSERT INTO 테이블이름 (column1, column2, ...)
VALUES (value1, value2, ...);

 

 - value1은 column1에 해당하는 내용

 - 순서 주의하기

 

9. SELECT

 

SELECT * FROM 테이블이름; // 해당 테이블의 모든 데이터 출력
SELECT column이름 FROM 테이블이름; // 해당 테이블의 column에 해당하는 데이터 출력

 

 - 데이터 출력해서 내용 확인 가능

  WHERE : 해당 내용 있는 부분 출력

  ORDER : 순서 정렬

  LIMIT : 개수 제한

 

10. UPDATE

 

UPDATE 테이블이름
    SET assignment_list
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

value:
    {expr | DEFAULT}

assignment:
    col_name = value

assignment_list:
    assignment [, assignment] ...

 

 - WHERE문 안 쓰면 값이 다 바뀌므로 주의!

 

11. DELETE

 

DELETE FROM 테이블이름 WHERE column이름 = value값;

 

 - WHERE문 안 쓰면 다 삭제되므로 주의!

 

12. 테이블 분리하기

 

RENAME TABLE 변경전테이블이름 TO 변경후테이블이름;

 

 

 

13. JOIN

 

SELECT * FROM table1 LEFT JOIN table2 ON table1.column1 = table2.column2;

 

 - 테이블 결합

 

SELECT table1.column FROM table1 LEFT JOIN table2 ON table1.column1 = table2.column2;

 

 - 이름이 같은 column이 여러개 있을 경우 어디에 있는 column을 이용할건지 앞에 테이블이름.을 붙여줘서 구분

 - AS 를 이용하면 이름 변경 가능

 

14. 인터넷과 데이터베이스

 

 1) 인터넷

   - 각자 흩어져있는 컴퓨터들이 인터넷으로 연결되면서 형성된 컴퓨터들 간의 사회

   - 한쪽은 다른 쪽으로 정보 요청(client), 다른 쪽은 요청한 정보를 응답(server)

   - 인터넷이 동작하기 위해서 최소한 2대의 컴퓨터가 필요

 

 

 2) MySQL

   - 설치하면 두 개의 프로그램 동시에 설치 (데이터베이스 클라이언트, 데이터베이스 서버)

   - 데이터베이스 서버에 실제 데이터 저장

   - 데이터베이스 클라이언트를 이용하여 데이터베이스 서버에 접속 가능

   - 데이터베이스 서버는 반드시 데이터베이스 클라이언트를 사용해야 함

   - MySQL 모니터 : 데이터베이스 클라이언트 중 하나, 명령어 기반 프로그램

   - MySQL Workbench : 데이터베이스 클라이언트 중 하나, GUI 기반 프로그램

 

15. MySQL Client

 1) MySQL 모니터 

   - 명령어 기반 프로그램

   - 명령어를 기억해야 사용 가능

 

 2) MySQLWorkbench

   - GUI 기반 프로그램

   - 조작하기 간편

 

16. MySQL Workbench

 - GUI 기반 MySQL Client

 

 - 스키마를 만들고 테이블에 값을 입력하는 과정

 

 

 

New schema 버튼을 눌러 새로운 스키마를 생성한다.

 

 

 

 

New table 버튼을 눌러 위와 같은 화면으로 넘어와준다.

 

 

 

 

column, datatype, PK, NN, AI 등등 필요한 부분에 값을 넣거나 체크박스에 체크를 함으로써 필요한 설정을 해준다.

여기서 PK는 Primary key, NN은 Not Null, AI는 Automatic Increment의 약자이다. (이들의 기능은 위에서 이미 설명했다.)

 

 

 

 

Apply 버튼을 누르면 위의 화면처럼 sql문이 나온다.

여기서 또 다시 Apply 버튼을 눌러주면 

 

 

 

 

위의 화면처럼 그리드가 생성되고 각각의 부분에 설정한 대로 값을 입력할 수 있다.

 

 

 

 

실제로 첫번째 행에 값들을 입력한 후에 Apply 버튼을 누르면 위의 화면처럼 테이블이 채워짐을 확인할 수 있다.

 

 

 

'WEB > 웹 프로젝트' 카테고리의 다른 글

[8주차] 웹프로젝트 진행  (0) 2022.02.19
[6주차] 웹프로젝트 진행  (0) 2022.02.06
[4주차] 웹프로젝트 진행  (0) 2022.01.23
[생활코딩] WEB2-PHP 정리  (0) 2022.01.03
[웹프첫] 기말과제 - 웹페이지 제작  (0) 2021.07.10

댓글