Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

tjddndk17

[MySQL] 정리 본문

개발/MySQL

[MySQL] 정리

뚜루루또또 2021. 12. 5. 22:52

데이터베이스

SQL( Structured Query Language ) 은 DB에서 데이터를 정의,조작,제어하기 위한 언어

속성 명렁어 설명
DDL
(Data Definition Language)
CREATE, ALTER, DROP 테이블을 생성,변경,삭제
DML
(Data Manipulation Language)
INSERT, UPDATE, DELETE, SELECT  데이터를 생성,변경,삭제,조회
DCL
(Data Control Language)
GRANT, REVOKE  데이터의 보안성 및 무결정 제어
권한 부여, 회수

스키마(Schema)

데이터베이스의 전체적인 구조와 제약조건에 대한 명세

  • 외부 스키마: 사용자 관점에서의 논리적 구조
  • 개념 스키마: 논리점 관점에서 본 전체적인 데이터 구조
  • 내부 스키마: 물리적 저장 장치 관점에서 본 DB의 물리적인 구조


character & collation & mb4

MySQL / MariaDB에서만 일어나는 문제

  • 다국어를 처리할수 있는 UTF-8 원래는 가변 4byte
  • 전세계 모든 언어문자를 다 카운트 해봤는데 3byte가 안되서 가변 3byte로 설계함
  • Emoji(ex:특수문자)같은 새로나온 문자가 4byte필요
  • 가변 4byte 인 utf8mb4 를 추가함 ( MySQL 5.5.3 )
character : 문자집합
collation : 정렬 ( number, date 같은 경우는 명확하지만 text는 명확하지 않아서 정렬기준 필요 )
주요 collation

utf8mb4_unicode_ci : 공식 유니코드 규칙을 기반으로 광범위한 언어에서 정확하게 정렬
utf8mb4_general_ci : 속도 향상을 위해 설계된 단순화된 정렬, 특정 언어나 문자를 사용할때 정렬 제대로 안됨

* 컴퓨터 성능이 발전하면서 큰차이는 없음

데이터 타입

타입 저장공간 범위 signed 범위 unsigned
TINYINT(n) 1바이트 -128 ~ 127 0 ~ 255
SMALLINT(n) 2바이트 -32768 ~ 32767 0 ~ 65535
MEDIUMINT(n) 3바이트 -8388608 ~ 8388607 0 ~ 16777215
INT(n) 4바이트 -2147483648 ~ 2147483647 0 ~ 4294967295
BIGINT(n) 8바이트 -9223372036854775808
~ 9223372036854775807
0 ~ 18446744073709551615
FLOAT(m,d) 4바이트 -3.402823466×1038 
~ 3.402823466×1038
X
DOUBLE(m,d) 8바이트 -1.7976931348623157×10308 
~ 1.7976931348623157×10308
X
DECIMAL(m,d) 가변 전체자리수와 소수점자리수를 가짐
  • DECIMAL(5)의 경우: -99999 ~ 99999
  • DECIMAL(5, 2)의 경우: -999.99 ~ 999.99
X
(n) - 숫자의 개수를 제약하는것이 아님, ZeroFill(자동으로 unsigned) 속성이 지정되었을때 쓰임
       ex) int(5) UNSIGNED ZEROFILL 경우: '3' => '00003'
(m) - 소수 부분을 포함한 실수의 총 자릿수
(d) - 소수 부분의 자릿수, 0이면 소수 부분X
Comments