MySQL의 데이터베이스 지식 요약을 만들

  • 테이블 디자인

  1. 데이터베이스 이름, 테이블 이름, 필드 이름은 "_", 분할 소문자되지해야하며 이름을 더 이상 12 자 이하와 이탈리아 알고 이름을보고 싶어요.

  2. 우리는 사용하는 것이 좋습니다 이노 스토리지 엔진을.

  3. 정밀 부동 소수점 저장소는 다른 DECIMAL의 FLOAT 및 DOUBLE을 사용해야합니다.

  4. UNSIGNED는 음이 아닌 값을 저장하는 것이 좋습니다.

  5. INT UNSIGNED 스토리지 권장 IPV4를 .

  6. 정의의 길이 쉐이핑 INT 대신에, 이러한 INT의 사용으로 첨가되지 않은 경우 (도 4).

  7. TINYINT UNSIGNED 사용 예 0-80 범위에서 짧은 데이터 유형을 사용.

  8. , ENUM 유형을 사용하는 대신 TINYINT 사용을 권장하지 않습니다.

  9. 같은 텍스트를 사용하지 마십시오 BLOB의 유형입니다.

  10. VARCHAR (N)은, N은 VARCHAR 같은 바이트 (255), 최대 255 개 저장할 수의 수보다도 문자 수가 나타내는 문자를 , 그 실제 폭 N.을 선택할 필요

  11. 모든 MySQL의 VARCHAR 최대 필드 길이의 테이블 정렬 65535 바이트이며, 그리고 클래스의 임시 테이블을 생성하기 때문에 가능한 N 작은 VARCHAR (N)을, 메모리 동작, 어플리케이션은 N의 길이 사용될 메모리 .

  12. 테이블 문자 세트 UTF8을 선택합니다.

  13. 사용 VARBINARY는 가변 길이 문자열을 저장.

  14. 메모리 사용 YEAR 유형, 날짜 입력 (제 정확한) 축적 시간 소인 4 바이트, 8 바이트를 사용하므로 DATETIME TIMESTAMP 권장 형식을 사용하여 날짜를 저장한다.

  15. 제안 필드는 NULL로 정의된다.

  16. 분할은 다른 테이블에 필드를 오버 사이즈.

  17. 데이터베이스에서 사용 VARBINARY을 금지 BLOB의 등 매장 사진, 문서 및.

-------------------------------------------------- ------------------------------- 완벽한 구분선 ---------------- -------------------------------------------------- ----------------------------------

정수 데이터 정보

① TINYINT : 0-2 8-1 ^ 부호 서명 7 ~ 2 ^ -2 ^ 7-1].
② SMALLINT : 부호 0 ~ 2 ^ -2 ^ 16-1 부호 15 ~ 2 ^ 15-1;
; ③ MEDIUMINT 부호 0 ~ 2 ^ 24-1 ~ 23 (2) -2 ^ 23-1 ^ 서명
부호 32-1 0 ^ 2 서명 -2 ^ 31-1 ^ 31 2; ④ INT를 가장 일반적으로 사용되는.
⑤ BIGINT : 부호 0 ~ 2 ^ 64-1 서명 -2 ^ 63-1 ^ 63 (2)와;

 

많은 기업들이 데이터베이스 정수 데이터의 많은 사람들이에 대해 분명히 길이를하지 정의 찾기 "제로 기능을 보완 / ZEROFILL."우리가 잘못 될 수 추측 "INT 길이,"의미 잘못 즉, "정수"수를 나타냅니다 뒤에 생각 예를 들어, 실수로 그 "저장 최대 너비를 허용"생각  int(1) 을 저장할 수 없습니다  10.

INT (M) M은 디스플레이의 최대의 폭을 나타낸다. 유효 표시부 (255)의 최대 폭에 관계없이 크기 또는 저장된 값의 종류의 폭의 설정 범위가 포함되어 있습니다.

디스크는 INT에서 (3), INT (4), INT (8) 4 btyes 저장 공간을 점유. 동일한 데이터 유형 INT와 약간 다른 방식으로 외부 INT (M)는 사용자에게 추가로 명백히 넣어.

참고

"고성능 MySQL은"설명

책 "4.1 선택 최적화 된 데이터 유형"에서 언급 한 "고성능의 MySQL"

로가 유효한 값의 범위를 제한하지 않지만, MySQL은 (예 : MySQL의 명령 줄 클라이언트로) 대화 형 도구를 제공합니다 : MySQL은 같은 INT (11)와 같은 정수 유형의 폭을 지정할 수 있습니다, 대부분의 응용 프로그램은 말도 안돼 (20)은 동일한 저장 및 INT (1) 및 INT를 계산하는 문자의 수를 표시

"MySQL의 매뉴얼"설명

MySQL의 5.7 手册은 "12.2.5 숫자 형식 속성"

MySQL이 같은 괄호에 포함 된 정수 번호에 의해 정의 된 디스플레이 길이 지원  INT(4) 정수의 표시 크기를 정의하는 4 자 미만, 일부 데이터베이스 소프트웨어 미만 4 비트의 "공간"으로 채워질 것이다 번호 네 자 디지털 숫자.

이것은 디지털 저장 필드의 표시 범위의 길이를 제한하지 않으며, 또한 지정된 길이 필드에 기록 된 것보다 더 큰 디스플레이 번호를 방해하지 않는다. 예를 들어  SMALLINT(3) 필드 및  SMALLINT 디지털 저장 범위가  -32768 to 327673 개 이상의 디지털 저장한다면 중간은 여전히에 저장하도록 허용  SMALLINT(3) 필드, 원래 자리.

함께 결합 될 때  ZEROFILL 사용되는 속성  0 과 같은 패드,  INT(4) ZEROFILL 필드 번호  5 로 저장된다  0005.

 

-------------------------------------------------- ------------------------------- 완벽한 구분선 ---------------- -------------------------------------------------- ----------------------------------

VARCHAR 소개

MySQL은 제 버전 결정해야
기억 UTF8 문자 경우,도 16의 (각 캐릭터가 3 바이트)를 저장할 수 있고, 50 바이트를 지칭 4.0 이하 VARCHAR (50)를 
5.0 이상, VARCHAR (50) 수단 그것은, (각 문자에 대한 3 바이트) 숫자, 문자 또는 UTF8 문자가 저장되어있는 50 저장할 수 있는지 여부, 50 자입니다

사실을, 가장 좋은 방법은 자신의 데이터베이스에 Jianzhong의 중국 문자의 수를 이제 넣어하려고 테이블 5.0 MySQL은 이미에, VARCHAR (50) (50 개) 문자를 저장할 수있다

은 CREATE varchar_test TABLE ( 
`id`의 INT ( . 11 )에 NOT NULL, 
` 문자열 `VARCHAR ( 10 ) 
) ENGINE = InnoDB의는 
초기 상태의 문자가 SET = utf8COLLATE = utf8_general_ci이 

(varchar_test 값 INTO INSERT . 1 , ' 12345678 구십 ' ) 
VALUE (의 INSERT INTO Test02 2 , ' 123456789 열한 ' );
결과 : 
INSERT (. 1, '12345678 구십'VALUE의 varchar_test INTO ) 
영향을받는 행 :. 1 
시간 : 0 .041s는 
 , VALUE (2 varchar_test INTO INSERT '123456789 열한 ' )  1406 - 긴 데이터 열에 TOO에 대한'행 AT 문자열 '1. 시간 : 0


-------------------------------------------------- ------------------------------- 완벽한 구분선 ---------------- -------------------------------------------------- ----------------------------------

 

MySQL의 날짜 및 시간 유형

유형 MySQL의 날짜와 시간이 오가지, 즉, 날짜, 시간, 년, DATETIME, TIMESTAMP의 시간 값을 나타냅니다.

TIMESTAMP 유형이 고유의 자동 업데이트 기능을 가지고 MYSQL5.7는 CURRENT_TIMESTAMP 기본 수



 

 

추천

출처www.cnblogs.com/mark-luo/p/10962021.html