Database/MySQL

[MySQL 기초] 5. CRUD

  • -
728x90

이전 포스팅에 이어서 진행하기 위해 db1을 사용.

CREATE

INSERT INTO 구문을 이용하여 행을 추가할 수 있다.

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

 

topic 테이블 구조   

 

DESC topic;

id값은 auto_increment로 지정해놓았기 때문에 별도의 추가가 필요없다.  (물론 원한다면 해도 됨)

 

INSERT INTO topic (title, description, created, authr, profile) VALUES('MySQL', 'MySQL is ...',NOW(),'wonillism','devaloper');
INSERT INTO topic (title, description, created, authr, profile) VALUES('ORACLE','ORACLE IS ...', NOW(), 'egoing', 'developer');
INSERT INTO topic (title, description, created, authr, profile) VALUES('SQL server','SQL server is ...', NOW(), 'duru', 'database administrator');
INSERT INTO topic (title, description, created, authr, profile) VALUES('PostgreSQL','PostgreSQL is ...', NOW(), 'taeho', 'data scientist, developer');
INSERT INTO topic (title, description, created, authr, profile) VALUES('MongoDB','MongoDB is ...', NOW(), 'egoing', 'developer');

 

READ

SELECT column1, column2, ...
FROM table_name;

현재 topic 테이블의 모든 데이터를 보여줌

 

원하는 column을 보고싶을 때, column값을 직접 입력해준다.

SELECT id, title, description FROM topic;

 

 

MySQL :: MySQL 8.0 Reference Manual :: 13.2.10 SELECT Statement

13.2.10 SELECT Statement SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr] ... [into_option] [FROM table_referenc

dev.mysql.com

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}

대괄호에 있는 값들은 생략가능하다.  

 

UPDATE

수정해야 할 부분 

authr -> author

id 1 의 profile : devaloper -> developer

 

컬럼명을 변경하기 위해서는 ALTER 구문을 사용해야 한다.  

(ALTER문은 DDL(Data Definition Language) 데이터 정의어 입니다. sql에는 DDL, DML, DCL 세가지가 있는데 데이터배이스 포스팅에서 따로 다루겠습니다.)

ALTER TABLE table_name
MODIFY COLUMN column_name datatype;

authr 를 author로 바꾸려면 

ALTER TABLE topic CHANGE authr author VARCHAR(30);

id 1 의 profile : devaloper -> developer를 위해서는 UPDATE 구문을 사용해야 한다.

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
UPDATE topic SET profile='developer' WHERE id=1; 

아래와 같이 잘 수정되었다.

 

더보기

Single-table syntax:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
    SET assignment_list
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

value:
    {expr | DEFAULT}

assignment:
    col_name = value

assignment_list:
    assignment [, assignment] ...

 

Multiple-table syntax:

UPDATE [LOW_PRIORITY] [IGNORE] table_references
    SET assignment_list
    [WHERE where_condition]

※ WHERE문을 빠트리면 테이블 전체에 영향이 있으므로 항상 조심하여야 한다.

 

DELETE

가장 마지막에있는 행을 삭제해보자.

DELETE FROM topic WHERE id = 5;

더보기

Single-Table Syntax

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [[AS] tbl_alias]
    [PARTITION (partition_name [, partition_name] ...)]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

 

Multiple-Table Syntax

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    tbl_name[.*] [, tbl_name[.*]] ...
    FROM table_references
    [WHERE where_condition]

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    FROM tbl_name[.*] [, tbl_name[.*]] ...
    USING table_references
    [WHERE where_condition]

 

참조 :
MySQL Reference
W3Schools

 

728x90
300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.