원본 : http://blog.gqylpy.com/gqy/248
"
디렉토리
문자 유형
공식 웹 사이트 : https://dev.mysql.com/doc/refman/5.7/en/char.html
참고 : 매개 변수 길이 문자 고정 괄호 안에 숯불과 VARCHAR을 말한다
문자 유형
고정 길이, 간단하고 원유, 공간의 낭비, 액세스 속도 빠른
- 문자 길이 : 0-255 (중국어 문자는 UTF8 인코딩은 3 바이트)
(10)의 특정 길이, 로비까지 10 개 문자가 공백 10 채워진다 <저장 부여되는> 10자를 저장 : 예를 들어, 문자 매장. - 검색 : 검색 결과가 표시되면 자동으로 후행 공백을 삭제 열린 pad_char_to_full_length의 SQL 모드를 제외
합니다 (SQL 모드 설정 : 다음 SET sql_mode = 'pad_char_to_full_length을'; 쿼리의 SQL 기본 모드 : 은 SELECT @@ sql_mode; )
VARCHAR 타입
이상되고, 정확, 공간 절약, 느린 액세스 속도
- 문자 길이 : 0 ~ 65535 (다른 종류보다가, 경우 21,845 프롬프트 MySQL의 행 최대 한계는 65535 바이트이며, 문자 인코딩 UTF8 : 공식 문서 )
- 저장 : 사실 콘텐츠 형식 VARCHAR 공백이 후행 공백으로 채워되지 않은 데이터를 저장하는 쿼리에 필터링되지 않습니다.
스트레스 : VARCHAR 타입은 실제 데이터를 표현하는 데 사용되는 접두사 인, 실제 데이터 1-2bytes 전에 접두사를 추가합니다 바이트의 바이트 수 . (65535 최대 길이, MySQL이 로우 제한 맞는 최대 바이트가 사용하기에 충분할 수를 나타낸다 1-2bytes)
[만일 실제 데이터 <255bytes, 프리픽스 1bytes의 필요성 (1bytes = 8 비트 2 ** 8 나타내는 최대 값 255), 실제 데이터가> 255bytes은 프리픽스의 2 바이트가 요구되는 경우 (2 바이트 = 2 ** 16 65535 16 비트에 의해 표현되는 최대 수)] - 검색 : 후행 공백이 공간은 검색시 정상의 내용을 표시합니다 포함하여 유지됩니다.
CHAR 및 VARCHAR의 공식 설명은 :
! [여기에 사진 설명을 삽입 (http://blog.gqylpy.com/media/ai/2019-03/19ee0315-2e73-4b2a-b94a-598f26d0a8d1.png)
측정
시험 전에 먼저 두 가지 기능을 찾을 수 있습니다 :
- 길이 () # 바이트의 수를보기
- CHAR_LENGTH () # 바이트의 수를보기
-
# 创建测试表,分别指明字段x为char类型,字段y为varchar类型
-
mysql>
create
table
test(x
char(
5), y
varchar(
5));
-
Query OK, 0 rows affected (0.11 sec)
-
-
# 插入数据,后面加空格
-
mysql>
insert
into
test
values(
"数据库 ",
"数据库 ");
-
Query OK, 1 row affected (0.00 sec)
-
-
# 在检索时,char类型会过滤掉后面的空格,而varchar正常显示
-
mysql>
select x,
char_length(x), y,
char_length(y)
from
test;
-
+
-----------+----------------+------------+----------------+
-
| x | char_length(x) | y | char_length(y) |
-
+
-----------+----------------+------------+----------------+
-
| 数据库 | 3 | 数据库 | 4 |
-
+
-----------+----------------+------------+----------------+
-
1 row in
set (
0.00 sec)
-
-
-
mysql>
set sql_mode =
'pad_char_to_full_length';
-
Query OK, 0 rows affected, 1 warning (0.00 sec)
-
-
# 查当前SQL模式
-
mysql>
select @@sql_mode;
-
+
-------------------------+
-
| @@sql_mode |
-
+
-------------------------+
-
| PAD_CHAR_TO_FULL_LENGTH |
-
+
-------------------------+
-
1 row in
set (
0.00 sec)
-
-
# 再次检索,发现
char类型的数据是占满规定的长度的(在后面填充空格)
-
mysql>
select x,
char_length(x), y,
char_length(y)
from
test;
-
+
-------------+----------------+------------+----------------+
-
| x | char_length(x) | y | char_length(y) |
-
+
-------------+----------------+------------+----------------+
-
| 数据库 | 5 | 数据库 | 4 |
-
+
-------------+----------------+------------+----------------+
-
1 row in
set (
0.00 sec)
-
-
# 查看字节数
-
#
char类型:
3个中文字符 + 两个空格 =
11
bytes
-
#
varchar类型:
3个中文字符 +
1个空格 =
10
bytes
-
mysql>
select x,
length(x), y,
length(y)
from
test;
-
+
-------------+-----------+------------+-----------+
-
| x | length(x) | y | length(y) |
-
+
-------------+-----------+------------+-----------+
-
| 数据库 | 11 | 数据库 | 10 |
-
+
-------------+-----------+------------+-----------+
-
1 row in
set (
0.01 sec)
개요
일반 직렬 스트링 : CHAR 및 VARCHAR VARCHAR 유연 사용할 수 있지만, 전체 시스템의 성능의 관점에서, 비록 문자 데이터 처리 속도를 입력하고, 때로는 50 % VARCHAR 처리 속도를 초과 할 수있다. 따라서, 데이터베이스 사용자의 설계에 최적의 균형을 달성하기 위해, 모든 요소를 고려해야한다
다른 직렬 스트링 (효율성 : 문자> VARCHAR> 텍스트) :
- TEXT 시리즈 TINYTEXT의 텍스트 MEDIUMTEXT LONGTEXT
- BLOB 系列 TINYBLOB BLOB MEDIUMBLOB의 LONGBLOB
- BINARY 系列 BINARY VARBINARY
TEXT 시리즈 : 큰 가변 길이 스트링을 저장하기위한 텍스트 데이터 타입은 최대 65,535 (2 ** 16--1)는 문자가 될
텍스트 컬럼 최대 : MEDIUMTEXT - 문자 16,777,215 (12 ** 24)의 길이 .
LONGTEXT 다음 텍스트 열 또는 4,294,967,295 최대 4GB 길이. (2의 32 - 1)의 캐릭터.
열거 된 유형 및 수집 유형
즉, 그러한 라디오 버튼 등의 선택, 미리 정해진 범위 내의 필드의 값이 체크 박스
ENUM 열거 : 즉 라디오, 소정의 범위 내에서만 선택된 값 (예 : 보이 성별 성별 / 여자)
SET를 설정 : 즉 객관식, 소정의 범위 내에서 선택 될 수 있거나, 두 개 이상의 값 ( 예를 들면 : 취미, 2 취미, 관심사 3)
-
mysql>
create
table information(
-
->
name
char(
3),
-
-> sex enum(
"男",
"女"),
-
-> hobby
set(
"抽烟",
"喝酒",
"烫头")
-
-> );
-
Query OK, 0 rows affected (0.05 sec)
-
-
mysql>
insert
into information
values
-
-> (
"张三",
"男",
"抽烟,喝酒"),
-
-> (
"李四",
"女",
"烫头");
-
Query OK, 2 rows affected (0.00 sec)
-
Records: 2 Duplicates: 0 Warnings: 0
-
-
mysql>
select *
from information;
-
+
---------+------+---------------+
-
| name | sex | hobby |
-
+
---------+------+---------------+
-
| 张三 | 男 | 抽烟,喝酒 |
-
| 李四 | 女 | 烫头 |
-
+
---------+------+---------------+
-
2 rows in
set (
0.00 sec)
"