프로그래밍 / C++ / 언리얼

Programming/DB

[DB] MySQL CRUD 작업하기

아트성 2022. 9. 19. 14:55

데이터 베이스 생성   

Create schema

create schema `nodejs` default character set utf8;
use nodejs

create schema [스케마 이름] : 새로운 데이터베이스 생성 (``를 붙여야함)

use [스케마 이름] : 특정 데이터베이스 사용 (``를 붙이지 않음.)

 

 

테이블 생성   

Create table

create table [스키마 이름].[테이블 이름](
    -> id INT NOT NULL AUTO_INCREMENT,
    -> name VARCHAR(20) NOT NULL,
    -> age INT UNSIGNED NOT NULL,
    -> married TINYINT NOT NULL,
    -> comment TEXT NULL,
    -> created_at DATETIME NOT NULL DEFAULT now(),
    -> PRIMARY KEY(id),
    -> UNIQUE INDEX name_UNIQUE(name ASC))
    -> COMMENT = 'artsung'
    -> DEFAULT CHARACTER SET = utf8
    -> ENGINE = InnoDB;

 

Options

컬럼에 대한 설정

PRIMARY KEY (PK) | 기본 키 여부를 설정하는 옵션 / 모든 자료형

NULL / NOT NULL (NN) | 빈칸을 허용할지 허용안할지 여부를 묻는 옵션 / 모든 자료형

UNIQUE INDEX (UQ) | 해당값이 고유해야하는지에 대한 옵션 / 정수형 & char형

        // ex)

        UNIQUE INDEX name_UNIQUE(name ASC) : 오름차순으로 정렬

        UNIQUE INDEX name_UNIQUE(name AESC) : 내림차순으로 정렬

 

BINARY (B) | 데이터를 이진 문자열로 저장함.

UNSIGNED (UN) | 양수만 허용 / 정수형

ZEROFILL (ZF) | 숫자 자릿수가 고정되어있을때 공백에 0을 채움. / 정수형

     // ex) INT(4)인데 숫자 1을 넣었다면 0001이 된다.

 

AUTO_INCREMENT (AI) | 숫자를 저절로 올리는 옵션 / 정수형

GENERATED ALWAYS (수식) (G) | 문자열 합치기, 삽입등 수식을 이용해서 새로운 열을 만들어냄 

 

 

 

테이블에 대한 설정

COMMENT | 테이블에 대한 보충 설명

DEFAULT CHARACTER SET | 문자열 타입 정의 (utf8로 설정하지 않으면 한글이 입력되지 않음)

ENGINE | DB엔진을 설정해준다.

 

 

 

자료형   

INT | 정수형 

TINYINT | 부울 

FLOAT / DOUBLE | 소수형 

VARCHAR(자릿수) / CHAR(자릿수) | 문자열 

     // ex) VARCHCHAR(10) 이면 길이가 0 ~ 10인 문자열을/ CHAR(10) 이면 반드시 길이가 10인 문자열만 넣어야함.

TEXT | 긴 글 

DATETIME | 날짜 

 

 

명령어   

DROP TABLES [테이블명] | 특정 테이블 제거

SHOW TABLES | 테이블 전부 확인

 

생성

INSERT INTO [테이블명] ( [컬럼1], [컬럼2], ....) VALUES ( [값1], [값2], ....) | 행 삽입

 

조회

SELECT * FROM [테이블명] | 데이터 조회 (모든 컬럼)

SELECT [컬럼1], [컬럼2], ... FROM [테이블명] | 데이터 조회 (특정 컬럼)

SELECT [컬럼1], [컬럼2], ... FROM [테이블명] WHERE [조건식] | 조건식에 맞는 데이터 조회

SELECT [컬럼1], [컬럼2], ... FROM [테이블명] ORDER BY [컬럼] ASC or DESC | 특정 컬럼 기준 오름 / 내림차순 정렬

SELECT [컬럼1], [컬럼2], ... FROM [테이블명] ORDER BY [컬럼] LIMIT (num) | num만큼만 조회할 때

SELECT [컬럼1], [컬럼2], ... FROM [테이블명] ORDER BY [컬럼] OFFSET (num) | num만큼 건너뛰고 조회할 때

 

수정

UPDATE [테이블명] SET [컬럼1] = '바꿀내용' WHERE id = (num) | id가 num인 로우를 수정

 

삭제

DELETE FROM [테이블명] WHERE id = 조회할 값 | id  = (num) | id가 num인 로우를 삭제

반응형