Home mySQL
Post
Cancel

mySQL

  • 관계형 데이터베이스는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이다. 관계형 데이터 베이스는 엑셀 시트처럼 행과 열이 있는 표 그래프 형태를 가지고 있다. 하나의 데이터베이스 안에 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타낸다. mySQL은 관계형 데이터베이스 중 하나이다. 관계형 데이터베이스의 테이블(table)은 다음 그림처럼 구성된다.

mysql 설치


local

  • 아래 폴더로 이동한다.

    1
    2
    
       cd /usr/local/mysql/bin
    
    
  • 루트 유저로 사용하겠다는 명령어를 입력한 후 패스워드를 입력한다.

    1
    2
    
      ./mysql -uroot -p
    
    

RDS

  • mysql install

    1
    
     brew install mysql
    
  • 데이터베이스 연결

    1
    2
    3
    
     mysql -u <MASTERUSER> --host 엔드포인트 -P <DBPORT> -p
    
     패스워드 입력
    
  • 데이터베이스 리스트 보기

    1
    
     show databases;
    
  • 데이터베이스 생성하기

    1
    
     CREATE DATABASE <YOUR DATABASE> default CHARACTER SET UTF8;
    
  • 데이터베이스 사용하기

    1
    
     use <DATABASE NAME>
    
  • 테이블 리스트 확인

    1
    
     show tables;
    

datebase 생성


  • 데이터를 생성한다.
1
CREATE DATABASE <data name>;
  • SHOW DATABASES; 로 데이터베이스가 생성되었는지 확인할 수 있다.
1
SHOW DATABASES;

https://images.velog.io/images/760kry/post/29013552-9c27-4634-8549-5a58fe3a63fd/Screen%20Shot%202020-06-16%20at%202.52.08%20PM.png

  • 해당 데이터를 사용하겠다는 명령어를 입력한다.
1
USE <data name>;

CRUD


table 생성

  • NOT NULL (정보가 없으면 안 된다.)
  • AUTO_INCREMENT (id 값은 자동으로 증가한다.)
  • VARCHAR(사이즈 값) - 사이즈 값만큼의 문자가 저장된다.
  • 아래와 같이 여러 종류의 Data Type이 있다.

  • PRIMARY KEY(id)는 중복을 방지한다.
1
2
3
4
5
6
7
8
 CREATE TABLE topic(
    -> id INT(11) NOT NULL AUTO_INCREMENT,
    -> title VARCHAR(100) NOT NULL,
    -> description TEXT NULL,
    -> created DATETIME NOT NULL,
    -> author VARCHAR(15) NULL,
    -> profile VARCHAR(200) NULL
    -> PRIMARY KEY(id));
  • 테이블 삭제
1
DROP TABLE <table name>;
  • 생성한 테이블을 확인할 수 있다.

    1
    
      SHOW TABLES;
    

    https://images.velog.io/images/760kry/post/eaf389ad-aac2-457a-be0f-2942d680fa85/Screen%20Shot%202020-06-16%20at%202.58.25%20PM.png

  • table 이름을 바꾸는 방법은 아래와 같다.

1
2
RENAME TABLE <databaseName> TO <renameDatabaseName>;

  • table 구조 확인하기

    1
    
      DESC <table name>;
    

    https://images.velog.io/images/760kry/post/16d6aa13-1177-4484-bd18-8cb5050de4dd/Screen%20Shot%202020-06-16%20at%202.59.12%20PM.png

  • you must reset your password

    • 비밀번호 바꾸는 방법

      1
      
        SET PASSWORD = PASSWORD('your password');
      

Create


insert

  • 칼럼 만들기
    • INSERT INTO 뒤에 <해당 테이블 네임>과 (괄호 안에 칼럼들을 넣어주고) VALUE (칼럼 순서에 맞는 값들을 넣어준다.)

      1
      2
      
        INSERT INTO <table name> (title, description, created, author, profile) VALUES('mysql', 'my sql is ....', NOW(), 'raeyoung', 'developer');
      
      

Read


Select

  • 테이블 전체 확인하기

    1
    
      SELECT * FROM < tableName >;
    

    https://images.velog.io/images/760kry/post/16a36fac-8f73-418f-8bd9-f987a55eacbe/Screen%20Shot%202020-06-16%20at%203.01.51%20PM.png

  • 원하는 부분만 데이터 확인하기

    1
    
      SELECT <칼럼(id)>, <칼럼(title)> FROM <tableName(topic)> WHERE <칼럼(author)>=<('raeyoung')>;
    
  • 원하는 부분 정렬한 데이터 확인하기
    • id 큰 숫자 순으로 정렬
    1
    
      SELECT <컬럼(id)>, <컬럼(title)> FROM <tableName(topic)> WHERE <칼럼(author)>=<('raeyoung')> ORDER BY id DESC;
    
  • limit 부분만큼 데이터 확인하기

    1
    
      SELECT <칼럼(id)>, <칼럼(title)> FROM <tableName(topic)> WHERE <칼럼(author)>=<('raeyoung')> ORDER BY id DESC LIMIT <limit(2)>;
    
  • 테이블 구조 확인하기

    1
    
      DESC <table name>;
    

    https://images.velog.io/images/760kry/post/16d6aa13-1177-4484-bd18-8cb5050de4dd/Screen%20Shot%202020-06-16%20at%202.59.12%20PM.png

Update


  • WHERE 문을 꼭 사용해야 한다.
1
UPDATE <tableName> SET <칼럼이름>=<수정할 >, <칼럼이름>=<수정할 > WHERE id=2;

Delete


  • WHERE 문을 꼭 사용해야 한다.

https://images.velog.io/images/760kry/post/004b616f-26c0-4b72-83fb-1acb7d759d84/Screen%20Shot%202020-06-16%20at%203.27.10%20PM.png

1
DELETE FORM topic WHERE id=2;

https://images.velog.io/images/760kry/post/e03343d0-3897-43da-a721-d25facc8b51b/Screen%20Shot%202020-06-16%20at%203.29.01%20PM.png

join


  • 각 테이블마다 중복되는 데이터들의 관계를 이어준다.
1
SELECT * FROM <table1 name> LEFT JOIN <table2 name> ON <table1.id> = <table.exmpleId>;
This post is licensed under CC BY 4.0 by the author.