본문 바로가기

Programming/DB

[MySQL]Mysql 기본적인 명령어 모음

728x90

계정관련

    -- user_id 에게 모든 권한을 부여한다 `%`localhost에서든 원거리에서든 접속허용가능한 user_id라는 계정을 생성
    grant all privileges on *.* to 'user_id'@`%` identified by 'password';

    -- 사용자 정보 조회 
    SELECT user,authentication_string,plugin,host FROM mysql.user; 

    -- 사용자 생성 
    create user 'root'@'localhost' identified by 'pass'; 

    -- 권한 부여 
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'; 
    GRANT GRANT OPTION ON *.* TO 'root'@'localhost'; 

    -- 비밀번호 plugin 변경 
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass';

Database

    -- Databases 생성
    CREATE DATABASE 'DB이름' CHARACTER SET utf8 COLLATE utf8_general_ci;

    -- 모든 DataBases 보기
    SHOW DATABASES;

    -- Database 선택하기
    USE 'DB이름';

    -- Database 삭제
    DROP DATABASE 'DB이름';

Table

    -- Table 생성
    CREATE TABLE 'TABLE이름' (
        COLUMN_Name Data_type,
        COLUMN_Name Data_type,
        COLUMN_Name Data_type
    )

    -- 모든 Table 보기
    SHOW TABLES;

    -- Table 구조 보기
    DESC 'TABLE이름';

    -- COLUMN 작성 예
    id int(10) unsigned not null primary key auto_increment comment '번호',

이름정의

PRIMARY KEY - 다른 COLUMN과 절대로 중복되어 나타날 수 없음을 정의한다. (ex: 주민등록번호, 계정ID 등)
PRIMARY KEY 로 지정된 COLUMN은 절대로 NULL 값을 가질 수 없습니다.
PRIMARY KEY 는 UNIQUE와 NOT NULL 을 동시에 정의한 것과 같은 효과를 가진다.
UNIQUE - 유일한 값만 들어가도록 정의한다.
- 데이터의 중복이 허용되지 않도록 할 경우 사용된다.
NOT NULL - 해당 필드에 NULL 값을 가질 수 없음을 정의한다. (ex: 계정ID, 회원가입 시 필수 입력 항목 등)
COMMENT ‘이름’ - COLUMN 생성 시 comment를 넣는다. ‘이름’ 에 주로 COLUMN의 이름을 넣어준다
UNSIGNED - COLUMN 내에서 음수를 포함하지 않거나 양수 쪽으로 더 넓게 가지게 할 때 사용된다 (ex: -2147483648 부터 2147483647 에서 –> 0 부터 4294967295. 로 늘어나게된다.)
AUTO_INCREMENT - 해당 COLUMN이 생성될 때 마다 자동으로 1이 늘어나게 된다 (ex: 1번 게시물의 작성 후다음 게시물을 작성할 때 해당 게시물의 ID는 2번이 된다.)
DEFAULT 0 - 해당 COLUMN의 기본값을 0 으로 지정한다. (ex: 만약 0 대신 1을 사용하면 해당 COLUMN의 기본값은 1 이 된다.)

COLUMN 숫자형 데이터 타입

  • COLUMN 의 숫자형 데이터 타입

종류정의범위UNSIGNED 사용가능 여부

TINYINT(n) 정수형 데이터 타입 - 1 Byte(2^8)
- 128 ~ + 127 또는 0 ~ 255 수 표현 가능
- 1Byte(2^8)
- 128 ~ + 127 또는 0 ~ 255 수 표현 가능
O
SMALLINT(n) 정수형 데이터 타입 - 2 Byte(2^16)
- 32,768 ~ 32,167 또는 0 ~ 65536수 표현 가능
O
MEDIUMINT(n) 정수형 데이터 타입 - 3 Byte
- 8,388,608 ~ 8,388,607 또는 0 ~ 16,777,215 수 표현 가능
O
INT(n) 정수형 데이터 타입 - 4 Byte
- 2,147,483,648 ~ 2,147,483,647 또는 0 4,294,967,295 수 표현 가능
O
BIGINT(n) 정수형 데이터 타입(LONG) - 8 byte
- 2^64 - 1 표현 가능(무한 수 표현 가능이라고도 함
O
DECIMAL(m, d) - 고정 소수형 데이터 타입고정(길이+1 byte)
- 화폐 데이터와 같이 데이터의 정확도를 요하는 경우에 주로 사용
- M의 최대값은 65, D는 소수 자릿수이며 0이면 소수점 가지지 않음
- 소수점을 사용한 형
- Default: m ⇒ 10
X
FLOAT(n) 부동 소수형 데이터 타입 - 4 byte
- 부동 소수점을 사용한 형태
X
DOUBLE(n) 부동 소수형 데이터 타입 - 8 byte
- DOUBLE을 문자열로 저장
X

표 출처 : 프론트엔드 개발자 Martin의 사적인 블로그

COLUMN 문자형 데이터 타입

  • COLUMN 의 문자형 데이터 타입

종류정의길이

CHAR(n) - 고정 길이 데이터 타입
- 지정된 길이보다 짧은 데이터 입력 시 나머지 길이는 공백으로 채워짐
- 검색시, PAD_CHAR_TO_FULL_LENGTH 모드를 설정하지 않으면 공백은 제거됨
0 ~ 255 (byte)
VACHAR(n) - 가변 길이 데이터 타입
- 지정된 길이보다 짧은 데이터 입력시 공백으로 채우지 않음
-저장시 1-byte 혹은 2-byte 길이 Prefix 데이터를 저장. 이 Prefix 데이터는 값의 바이트 수에 대한 정보를 담는다.https://dev.mysql.com/doc/refman/8.0/en/char.html
0 ~ 65,535 (byte)
TINYTEXT(n) - 문자열 데이터 타입(최대 255 byte)
- TINYBLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장) https://dev.mysql.com/doc/refman/8.0/en/blob.html
0 ~ 255 (byte)
TEXT(n) - 문자열 데이터 타입(최대 65,535 byte)
- BLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장)
0 ~ 65,535 (byte)
MEDIUMTEXT(n) - 문자열 데이터 타입(최대 16,777,215 byte) < br> - MEDIRMBLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장) 0 ~ 16,777,215 (byte)
LONGTEXT(n) - 문자열 데이터 타입(최대 4,294,967,295 byte)
- LONGBLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장)
0 ~ 4,294,967,295 (byte)

표 출처 : 프론트엔드 개발자 Martin의 사적인 블로그

COLUMN 날짜형 데이터 타입

  • COLUMN 의 날짜형 데이터 타입

종류정의길이형식길이

DATA 날짜(년,월,일) 형태의 기간 표현 데이터 3 Byte 0000-00-00(YYYY-MM-DD) 1000-01-01 ~ 9999-12-31
TIME 시간(시,분,초) 형태의 시간 표현 데이터 3 Byte 00:00:00 .
DATETIME 날짜와 시간의 기간 표현 데이터 8 Byte 0000-00-00 00:00:00 (YYYY-MM-DD hh:mm:ss) 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59.999999
TIMESTAMP 날짜와 시간 형태의 기간 표현 데어터 타입 시스템 변경 시 자동으로 그 날짜와 시간이 저장 4 Byte Integer .
YEAR 년도 표현 데이터 타입 1 Byte 0000 .

표 출처 : 프론트엔드 개발자 Martin의 사적인 블로그

'Programming > DB' 카테고리의 다른 글

[MySql] DATETIME 형식 변환하기  (0) 2022.10.24
[DB]MongoDB란?  (0) 2022.07.27