GDSC/웹기초

[생활코딩] MySQL

Hanee_ 2021. 11. 23. 15:18

MySQL의 구조

  • 정보를 표의 형태로 저장

 

 

mySQL 서버 접속

db 서버의 역할

  • 자체 보안기능
  • 권한(여러 권한을 가진 사용자들이 존재) - shcema/table에 대해 CRUD 각각에 대한 사용자의 권한을 부여/관리할 수 있음

 

1) Schema 생성

CREATE DATABSE <database name>;

2) Schema 삭제

DROP DATABSE <database name>;

3) 존재하는 Schema Database server 안에서 조회

SHOW DATABSES;

4) 특정 Schema(database) 안으로 이동

USE <databse name>;

 

테이블 구조 & 테이블 생성

table의 형태 : Column & Row

테이블 생성 예제

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)
);

mysql> source <path to .sql file>

 

MySQL의 CURD
Insert - 레코드를 삽입하는 명령어

INSERT INTO 테이블명 (컬럼명1, 컬럼명3, ...) VALUES (값1, 값3, ...);

INSERT INTO <table name>(parm1, parm2, ...) VALUES(var1, var2, ...);

 

select - db 테이블을 보는 명령어

SELECT 컬럼명1, 컬럼명2, .. FROM 테이블명;

SELECT [<column name>] FROM <table name> [WHERE <condition>] [ORDER BY <column name> [HOW]] [LIMIT <number>]

 

update - 데이터를 업데이트하는 명령어

SET [필드명1] = [수정할값1], [필드명2] = [수정할값2] WHERE [필드명2] = [필드값2] AND [필드명3] = [필드값3]]

UPDATE [LOW_PRIORITY] [IGNORE] table_name
    SET assignment list
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

 

delete - 레코드를 삭제하는 명령어

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

 

관계형 데이터베이스

기존의 single database로 다룰 수 없는 복잡성을 다룰 때 사용


author 컬럼을 따로 빼서 작성하는 것이 중복 피함

 

 

drop - 데이터베이스/테이블 삭제

DROP DATABASE <db_name>
DROP TABLE <tbl_name>

 

join - 일치하는 id값들을 가진 column을 이용하여 서로 다른 table을 이어줌

SELECT < * | <col_name> > FROM <tbl_name_normal> LEFT JOIN <tbl_name_mapped> ON <col_name_for_JOIN>

'GDSC > 웹기초' 카테고리의 다른 글

[생활코딩] React(1)  (0) 2021.12.21
[생활코딩] MySQL+Node.js  (0) 2021.11.30
[생활코딩] JAVASCRIPT  (0) 2021.11.08
[생활코딩]git  (0) 2021.11.02
[생활코딩] CSS  (0) 2021.10.12