-
테이블 디자인
-
데이터베이스 이름, 테이블 이름, 필드 이름은 "_", 분할 소문자되지해야하며 이름을 더 이상 12 자 이하와 이탈리아 알고 이름을보고 싶어요.
-
우리는 사용하는 것이 좋습니다 이노 스토리지 엔진을.
-
정밀 부동 소수점 저장소는 다른 DECIMAL의 FLOAT 및 DOUBLE을 사용해야합니다.
-
UNSIGNED는 음이 아닌 값을 저장하는 것이 좋습니다.
-
INT UNSIGNED 스토리지 권장 IPV4를 .
-
정의의 길이 쉐이핑 INT 대신에, 이러한 INT의 사용으로 첨가되지 않은 경우 (도 4).
-
TINYINT UNSIGNED 사용 예 0-80 범위에서 짧은 데이터 유형을 사용.
-
, ENUM 유형을 사용하는 대신 TINYINT 사용을 권장하지 않습니다.
-
같은 텍스트를 사용하지 마십시오 BLOB의 유형입니다.
-
VARCHAR (N)은, N은 VARCHAR 같은 바이트 (255), 최대 255 개 저장할 수의 수보다도 문자 수가 나타내는 문자를 , 그 실제 폭 N.을 선택할 필요
-
모든 MySQL의 VARCHAR 최대 필드 길이의 테이블 정렬 65535 바이트이며, 그리고 클래스의 임시 테이블을 생성하기 때문에 가능한 N 작은 VARCHAR (N)을, 메모리 동작, 어플리케이션은 N의 길이 사용될 메모리 .
-
테이블 문자 세트 UTF8을 선택합니다.
-
사용 VARBINARY는 가변 길이 문자열을 저장.
-
메모리 사용 YEAR 유형, 날짜 입력 (제 정확한) 축적 시간 소인 4 바이트, 8 바이트를 사용하므로 DATETIME TIMESTAMP 권장 형식을 사용하여 날짜를 저장한다.
-
제안 필드는 NULL로 정의된다.
-
분할은 다른 테이블에 필드를 오버 사이즈.
-
데이터베이스에서 사용 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 32767
3 개 이상의 디지털 저장한다면 중간은 여전히에 저장하도록 허용 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 기본 수
![](https://img2018.cnblogs.com/blog/1159786/201906/1159786-20190602094751460-1366956513.png)