弦
1、シャア
固定長文字:指定された長さの後、システムは指定されたデータを格納するためのスペースが割り当てられます
基本的な構文: CHAR(L)は、Lは、(中国語、英語などの文字)文字の数を表し、L 0〜255の長さ |
2 、VARCHAR
可変長文字:指定された長さの後に、システムが実際に格納されたデータの長さを算出し、適切な長さを割り当て(データ長を超えていません)
基本的な構文: VARCHAR(L)は、Lは、文字の数を表し、Lは、0〜65535の理論値ビットの長さであります |
VARCHAR長データは、各データ生成VARCHAR後、システムは後ろオーバーヘッドデータの1~2バイトを増加させるように、(自動的に領域を割り当てる方式に係るデータ長)を記録するため:データ長が占めるスペースを節約するために使用され
データ自体未満127個の文字である場合:オーバーヘッドバイト;場合127以上、両者のオーバーヘッドバイトに
(1)CHARとVARCHAR比較データ記憶(UTF8、3つのバイトを占有する文字)
データストレージ |
CHAR(2) |
VARCHAR(2) |
バイトのシャアシェア |
バイトのVARCHAR |
A |
A |
A |
2 * 3 = 6 |
1 * 3 + 1 = 4 |
AB |
AB |
AB |
2 * 3 = 6 |
2 * 3 + 1 = 7 |
差(2)CHARとVARCHAR
1、チャーはスペース与えられたデータに基づいて、それはVARCHAR、指定されたスペースを使用します
2、CHARデータクエリ効率がVARCHARよりも高い:VARCHARが後ろに必要なレコードの数で計算されます
説明:
データは、指定された長さのために考慮しなければならないと判断した場合は、char型の使用。
あなたが最後にそこにあるどのくらいのデータが不明な場合は、varchar型のタイプを使用します。
データが255文字を超える場合、固定長かどうかにかかわらず、一切のcharとvarcharを使用していない、テキストを使用します
3、テキスト
テキストタイプ:mysqlのは、基本的にテキストの2種類を提供します
テキスト:プレーンテキスト文字の格納
ブロブ:バイナリテキスト(画像、文書)を格納するには、通常、通常、対応するファイル自体を指すリンクを使用して、ファイル自体を格納するBLOBを使用していません。
(1)テキスト:システムは、4つのテキストを提供します
(2)TINYTEXTは次のようにシステムを格納するために1つのバイトを使用し、実際のデータを格納することができる:1 + 2 ^ 8
(3)本文:2 + 16 ^ 2:2つのバイトを節約が実際として格納します
MEDIUMTEXT(4) :ストレージの3つのバイトを用いては、実ストレージは、2 ^ 24 + 3
LONGTEXT(5):2 ^ 32 + 4:4バイト、実際のストレージを使用して格納されています
注意:
(1)故意にテキストのタイプを選択しないように選択されたメモリ内のテキストに対応する、システムは自動的に保存されたテキストのデータ長に基づいて、適切なタイプを選択します。
選択された文字が格納されている場合、データが255文字を超えた場合(2)、その後、格納されたテキストを選択
4、列挙型
列挙型:データが挿入される前に、いくつかの項目を設定するには、これらの項目は、最終的にデータが表示されることがあります。
データはわずか数の値のフィールドを決定する場合は、次のように性別、男性と女性、機密性として、システムが指定できる値の唯一の固定数を保持することができ、現在のフィールドのフィールドを設定するときに:私たちは、列挙型を使用します
基本的な構文: 列挙型(データ値、データ値2、...) |
システムは、列挙されたデータを格納するための1つのまたは2バイトを提供する:実際の記憶スペース具体的に列挙列挙値の計算を選択します。リスト255内のデータ値は、その後、バイト以上255未満であれば、十分である場合65535は、システムが保存された2つのバイトを使用しています。
表の①を作成します。
②データを挿入:ときに決定された値フィールド値に対応する有効データは、テーブルに設定する必要があります
③データエラー:列挙機能仕様データは、データが設定範囲内に挿入されなければならないことを確実にするために、他のタイプはできません
列挙型列挙④ストレージ原理は:実際にはフィールドの値は、実際に文字列を格納していないが、文字列に対応するインデックスは:システムが列挙型を設定されている場合、各要素が列挙されます指標の定義、最初からインデックス・ルール
列挙(1 => 'M'、2 => 'F'、3 => '秘密')
特性:在mysql中系统是自动进行类型转换的:如果数据碰到“+、-、*、/”系统就会自动将数据转换成 数值,而普通字符串转换成数值为0
范例:查看enum元素的值
Select 字段名 + 0 from 表名; |
⑤ 既然实际enum字段存储的结果是数值:那么在进行数据插入的时候,就可以使用对应的数值来进行。
枚举的意义:
(1) 规范数据本身,限定只能插入规定的数据项
(2) 节省存储空间
5、Set
集合:是一种将多个数据选项可以同时保存的数据类型,本质是将指定的项按照对应的二进制位来进行控制:1表示该选项被选中,0表示该选项没有被选中。
基本语法: set(‘值1’,’值2’,’值3’…) |
系统为set提供了多个字节进行保存,但是系统会自动计算来选择具体的存储单元
1个字节:set只能有8个选项 |
2个字节:set只能有16个选项 |
3个字节:set只能表示24个选项 |
8个字节:set可以表示64个选项 |
Set和enum一样,最终存储到数据字段中的依然是数字而不是真实的字符串
① 创建表
② 插入数据:可以插入多个数据,就是在数据插入的字符串中,使用对应的逗号“,”将选项进行隔开
③ 数据选项所在的数据与数据插入的顺序无关:最终都会变成选项对应的顺序
④ 分析数据存储的方式
(1) 系统将对应的数据选项(设计)按照顺序进行编排:从第一个开始进行占位,每一个都对应一个二进制位。
(2) 数据在存储的时候,如果被选中,那么对应的位的值就为1,否则为0
(3) 系统在进行存储的时候会自动将得到的最终的二进制颠倒过来,然后再进行转换成十进制存储
⑤ 查看数据:按照自动转换成数值来查看
⑥ 既然是数值,那么就可以插入数值来代替实际插入数据
注意:数字插入的前提是对应的二进制位上都有对应的数据项
Set集合的意义: 规范数据、节省存储空间
Enum:单选框
Set:复选框