본문 바로가기
DATABASE/MySQL

[MySQL] 관계형 데이터베이스 소개와 기본 사용법: MySQL의 생성, 읽기, 수정, 삭제

by sjs_2215 2019. 8. 21.

출처: https://opentutorials.org/course/3161

 

DATABASE2 - MySQL - 생활코딩

수업소개 무료이면서, 오픈소스이고, 3대 데이터베이스 중에 하나인 MySQL의 입문 수업입니다.  수업대상 정보기술의 심장인 데이터베이스가 어떻게 동작하는지 궁금하신 분 데이터를 보다 전문적으로 관리하고 싶은 분 웹, 앱, 게임, 데이터분석 엔지니어가 되고자 하는 분 참여조건 데이터베이스가 처음인 분들은 DATABASE1 수업을 먼저 볼 것을 권해드립니다.  https://opentutorials.org/course/3162 데이터베이스에 대한 경험이 이

opentutorials.org



  1. 개발환경 설치 가이드&수련: https://github.com/egoingsb/offline/wiki/database---mysql
  2. bitnami 비번 - 비스타 문 비번
  3. mysql port 3307
  4. Bitnami 경로
cd C:\Bitnami\wampstack-7.3.8-0\mysql\bin

 

mysql 켜기 (항상 켜져 있어야 함) - 아래 사진 참고

 


 

1. 관계형 데이터베이스 소개와 기본 사용법

 

  • 데이터베이스 쓰는 이유
    • 큰 규모 커버 가능
    • 자동화된 처리 가능

 

  • db의 종류: 객체형, 관계형, 그래프, 문서형 db 등등

sql - 관계형 데이터베이스에서 사용하는 컴퓨터 언어

Structured, Query, Language

 

 

[관계형 데이터베이스]

오랫동안 시장을 장악, but 이게 다는 아님. 상황에 따라 다른 db 모델을 사용할 수도 있음. (ex. sns를 만들고 싶다. - 관계형 db로는 만들기 어렵)

 

<혜성처럼 등장한 다른 db들>

nosql - not only sql

mongodb

elasticsearch

redis

지금은 또 산업이 AI로 가서 혜성 flow가 죽음

MySQL 창시자가 ORACLE한테 빡쳐서 새로운 코드로 만든 게 MariaDB.

mysql과 완벽히 호환.



 

2. MySQL의 생성, 읽기, 수정, 삭제

 

  • 공부법

INSTALL & RUN

CRUD & GROUP & CONNECT

 


 

mysql 구동하기

cd C:\Bitnami\wampstack-7.3.8-0\mysql\bin
mysql -uroot -p
비번입력

 

데이터베이스=표들을 그룹핑한 것

3개의 표를 그룹핑 => 3개의 스키마가 있는 것

 

핵심 스텝

  1. 인증 통과 (mysql -uroot -p)
  2. 스키마(=연관된 표를 그루핑함)를 생성 (create database 이름)
  3. 내가 쓸 스키마 선택 (use 이름)
  4. 표를 만든다 [column 열 먼저]

 

table 용어

열: column 데이터의 종류

행: row 각각의 데이터 한 건

 


 

2-1. 스키마 read, create

 

Read (스키마 보기)

SHOW DATABASES;

디폴트로 생성되어있는 스키마들을 볼 수 있음.

 

Create (스키마 생성)

CREATE DATABASE 이름;

 

해당 스키마로 들어가기

USE 이름;

이후의 모든 명령어들은 해당 스키마의 표에 적용됨

 


 

2-2. 표 create, read

 

표를 만들자 - [column 열 먼저]

CREATE TABLE 테이블이름 (
    id INT(11),
    title VARCHAR(20),
    description text,
    created datetime,
    author_name VARCHAR(20),
    author_profile VARCHAR(100)
);

 

형(data type) 설명:

  • VARCHAR와 text 차이

VARCHAR로 글자 수를 제한하지 않고 긴 문자열을 사용할 때는 text 사용하기

VARCHAR 원하는 길이로 자를 수 있다는 장점

text - 경제적 x, 메모리 많이 잡아먹음. text로 하지 않아도 되는 경우는 VARCHAR를 사용하기

 

 

  • datetime

시간 형식, 시간도 나옴

 

 

존재하는 table 보기

SHOW TABLES;

 

table 구조 보기

DESC 테이블이름;

 

표를 만들자 - [row 행 추가]

INSERT INTO 테이블이름
    (id, title, description, created, author_name, author_profile)
    VALUES(
        1,
        'MySQL',
        'MySQL is ...',
        NOW(),
        'soojin',
        'developer'
        );

행을 먼저 기술해주고

정확한 데이터를 VALUES에 행의 순서대로 적어주면 됨.

created는 datetime 형이기에 _NOW()_로 하면 현재 시각이 추가됨.

 

Read 표

SELECT * from topic;

*는 모든 column을 다 가져오겠다는 말

 


 

원하는 column 가져오기

SELECT id, title, created from 테이블이름;

 

원하는 row 가져오기

SELECT * FROM 테이블이름 WHERE id =1;

SELECT * FROM 테이블이름 WHERE author_name="soojin";

SELECT id, title FROM 테이블이름 WHERE id=1;

 


 

2-3. delete 하기

delete는 항상 조심하기

where 절을 꼭 붙여야 나중에 큰 실수를 방지할 수 있

delete from 테이블이름 where id=4;

 


 

2-4. update 하기

where절을 꼭 붙여야 나중에 큰 실수를 방지할 수 있

UPDATE 테이블이름
    SET title = 'nosql'
    WHERE id=2;

 

 


 

3. GUI 방식으로 DB 서버 제어하는 방법

 

localhost/phpmyadmin 접속

 

 

 


Comments