Dieser Artikel stellt Ihnen hauptsächlich das relevante Wissen über den String-Typ im MySQL-Spaltentyp vor. Ich hoffe, dass er Freunden in Not hilfreich sein wird!
Empfohlenes Referenz-Tutorial: „MySQL-Tutorial“
Der sogenannte Spaltentyp bezieht sich tatsächlich auf Der Datentyp, also eine einheitliche Klassifizierung von Daten, besteht aus Systemsicht darin, sie einheitlich verwalten und den begrenzten Platz besser nutzen zu können.
In SQL werden Datentypen in drei Hauptkategorien unterteilt: Numerischer Typ, Zeichenfolgentyp und Datums- und Uhrzeittyp.
In SQL ist der String-Typ in String-Typ im Spaltentyp im MySQL-Tutorial Kategorien unterteilt, nämlich: char
, varchar
, text
, blob
, enum
und set
.
Kategorie String-Typ im Spaltentyp im MySQL-Tutorial: Zeichenfolge fester Länge
Zeichenfolge fester Länge: char
, das heißt , Die Festplatte (zweidimensionale Tabelle) hat bei der Definition der Struktur bereits die Speicherlänge der endgültigen Daten bestimmt.
char(L)
: L steht für Länge, also die Länge, die in Zeichen gespeichert werden kann. Die maximale Länge beträgt
char(4)
: Zeigt an, dass in der UTFString-Typ im Spaltentyp im MySQL-Tutorial-Umgebung 4*String-Typ im Spaltentyp im MySQL-Tutorial=String-Typ im Spaltentyp im MySQL-TutorialString-Typ im Spaltentyp im MySQL-Tutorial Bytes erforderlich sind.
Kategorie String-Typ im Spaltentyp im MySQL-Tutorial: Zeichenfolge variabler Länge
Zeichenfolge variabler Länge: varchar
, d. h. bei der Zuweisung von Speicherplatz gemäß Die maximale Platzzuteilung, aber wie viel tatsächlich genutzt wird, wird anhand konkreter Daten ermittelt.
varchar(L)
: L bedeutet Länge, die theoretische Länge beträgt String-Typ im Spaltentyp im MySQL-TutorialString-Typ im Spaltentyp im MySQL-TutorialString-Typ im Spaltentyp im MySQL-TutorialString-Typ im Spaltentyp im MySQL-TutorialString-Typ im Spaltentyp im MySQL-Tutorial, es werden jedoch String-Typ im Spaltentyp im MySQL-Tutorial bis String-Typ im Spaltentyp im MySQL-Tutorial weitere Bytes benötigt, um die tatsächliche Speicherlänge zu bestimmen; 🎜 >
varchar(String-Typ im Spaltentyp im MySQL-Tutorial0)
Wie wähle ich eine Zeichenfolge mit fester Länge oder eine Zeichenfolge mit variabler Länge aus? text
Textzeichenfolge wird verwendet, wenn die Datenmenge sehr groß ist, normalerweise mehr als String-Typ im Spaltentyp im MySQL-TutorialString-Typ im Spaltentyp im MySQL-TutorialString-Typ im Spaltentyp im MySQL-Tutorial Zeichen.
Textzeichenfolgen werden nach dem Speicherformat klassifiziert und können unterteilt werden in:text
blob
Verwendung der Aufzählungszeichenfolge:
Definition: enum
, wie
-- 创建枚举表create table my_enum( gender enum(&#String-Typ im Spaltentyp im MySQL-Tutorial9;男&#String-Typ im Spaltentyp im MySQL-Tutorial9;,&#String-Typ im Spaltentyp im MySQL-Tutorial9;女&#String-Typ im Spaltentyp im MySQL-Tutorial9;,&#String-Typ im Spaltentyp im MySQL-Tutorial9;保密&#String-Typ im Spaltentyp im MySQL-Tutorial9;) )charset utfString-Typ im Spaltentyp im MySQL-Tutorial;
enum(String-Typ im Spaltentyp im MySQL-Tutorial9;元素String-Typ im Spaltentyp im MySQL-TutorialString-Typ im Spaltentyp im MySQL-Tutorial9;,String-Typ im Spaltentyp im MySQL-Tutorial9;元素String-Typ im Spaltentyp im MySQL-TutorialString-Typ im Spaltentyp im MySQL-Tutorial9;,String-Typ im Spaltentyp im MySQL-Tutorial9;元素String-Typ im Spaltentyp im MySQL-TutorialString-Typ im Spaltentyp im MySQL-Tutorial9;...)
enum(String-Typ im Spaltentyp im MySQL-Tutorial9;男String-Typ im Spaltentyp im MySQL-Tutorial9;,String-Typ im Spaltentyp im MySQL-Tutorial9;女String-Typ im Spaltentyp im MySQL-Tutorial9;,String-Typ im Spaltentyp im MySQL-Tutorial9;保密String-Typ im Spaltentyp im MySQL-Tutorial9;)
-- 插入测试数据insert into my_enum values (&#String-Typ im Spaltentyp im MySQL-Tutorial9;男&#String-Typ im Spaltentyp im MySQL-Tutorial9;),(&#String-Typ im Spaltentyp im MySQL-Tutorial9;女&#String-Typ im Spaltentyp im MySQL-Tutorial9;),(&#String-Typ im Spaltentyp im MySQL-Tutorial9;保密&#String-Typ im Spaltentyp im MySQL-Tutorial9;);insert into my_enum values (&#String-Typ im Spaltentyp im MySQL-Tutorial9;male&#String-Typ im Spaltentyp im MySQL-Tutorial9;);
Durch den obigen Test können wir feststellen, dass die Verwendung von Aufzählungszeichenfolgen einen Vorteil bietet, das heißt:
standardisieren Sie die Datenformat, einfügen Die Daten in der Tabelle können nur bestimmte Daten sein, die im Voraus definiert wurden. Darüber hinaus haben Aufzählungszeichenfolgen noch eine weitere Funktion, nämlich:Speicherplatz sparen (Aufzählungsdaten haben normalerweise einen Alias, in dem tatsächlich numerische Werte anstelle der Zeichenfolge selbst gespeichert werden). my_enum
In MySQL verfügt das System über die Funktion, Datenformate automatisch zu konvertieren. Hier können wir beweisen, dass das Aufzählungsfeld numerische Werte speichert: Nehmen Sie die Daten heraus Wenn es sich um eine Zeichenfolge handelt, ist das Endergebnis immer
, andernfalls sind es andere Werte.-- 验证枚举字段实际存储的格式select gender + 0,gender from my_enum;
Anhand der obigen Ergebnisse können wir die tatsächlichen Regeln für die Aufzählung von Elementen herausfinden, d. h. die Nummerierung beginnt bei in der Reihenfolge, in der die Elemente erscheinen. Als nächstes lernen wir das Prinzip der Aufzählung
kennen:枚举在进行数据规范(定义)的时候,系统会自动建立一个数字与枚举元素的对应关系(放在日志中);在进行数据插入的时候,系统自动将字符串转换为对应的数值进行存储;在进行数据提取的时候,系统自动将数值转换成对应的字符串进行显示。
通过阅读以上枚举的原理,咱们可以知道:使用枚举的效率并不高(低于其他类型的数据),但能规范数据和节省存储空间。
第 String-Typ im Spaltentyp im MySQL-Tutorial 类:集合字符串
集合字符串:set
,跟枚举类似,实际存储的是数值而不是字符串。
集合字符串的使用方式:
定义:set
,元素列表;
使用:可以使用元素列表中的多个元素,用逗号分隔。
执行如下 SQL 语句创建枚举表,进行测试:
-- 创建集合表create table my_set( hobby set(&#String-Typ im Spaltentyp im MySQL-Tutorial9;音乐&#String-Typ im Spaltentyp im MySQL-Tutorial9;,&#String-Typ im Spaltentyp im MySQL-Tutorial9;电影&#String-Typ im Spaltentyp im MySQL-Tutorial9;,&#String-Typ im Spaltentyp im MySQL-Tutorial9;旅行&#String-Typ im Spaltentyp im MySQL-Tutorial9;,&#String-Typ im Spaltentyp im MySQL-Tutorial9;美食&#String-Typ im Spaltentyp im MySQL-Tutorial9;,&#String-Typ im Spaltentyp im MySQL-Tutorial9;摄影&#String-Typ im Spaltentyp im MySQL-Tutorial9;,&#String-Typ im Spaltentyp im MySQL-Tutorial9;运动&#String-Typ im Spaltentyp im MySQL-Tutorial9;,&#String-Typ im Spaltentyp im MySQL-Tutorial9;宠物&#String-Typ im Spaltentyp im MySQL-Tutorial9;) )charset utfString-Typ im Spaltentyp im MySQL-Tutorial;
再执行如下 SQL 语句,向表my_set
中插入测试数据:
-- 插入测试数据insert into my_set values (&#String-Typ im Spaltentyp im MySQL-Tutorial9;电影,美食,宠物&#String-Typ im Spaltentyp im MySQL-Tutorial9;);insert into my_set values (String-Typ im Spaltentyp im MySQL-Tutorial);
再执行如下 SQL 语句,查看表my_set
中的数据:
-- 查看数据select hobby + 0,hobby from my_set;
观察上面的结果,相信大部分童鞋也懵啦!对于String-Typ im Spaltentyp im MySQL-Tutorial
还好理解,String-Typ im Spaltentyp im MySQL-Tutorial=String-Typ im Spaltentyp im MySQL-Tutorial+String-Typ im Spaltentyp im MySQL-Tutorial
,对应于集合中数据的编号,也正是音乐
和电影
;但是String-Typ im Spaltentyp im MySQL-Tutorial4
是什么鬼啊?在此,咱们不妨将集合(String-Typ im Spaltentyp im MySQL-Tutorial9;音乐String-Typ im Spaltentyp im MySQL-Tutorial9;,String-Typ im Spaltentyp im MySQL-Tutorial9;电影String-Typ im Spaltentyp im MySQL-Tutorial9;,String-Typ im Spaltentyp im MySQL-Tutorial9;旅行String-Typ im Spaltentyp im MySQL-Tutorial9;,String-Typ im Spaltentyp im MySQL-Tutorial9;美食String-Typ im Spaltentyp im MySQL-Tutorial9;,String-Typ im Spaltentyp im MySQL-Tutorial9;摄影String-Typ im Spaltentyp im MySQL-Tutorial9;,String-Typ im Spaltentyp im MySQL-Tutorial9;运动String-Typ im Spaltentyp im MySQL-Tutorial9;,String-Typ im Spaltentyp im MySQL-Tutorial9;宠物String-Typ im Spaltentyp im MySQL-Tutorial9;
)中的元素选中的记为String-Typ im Spaltentyp im MySQL-Tutorial
,没有选中的记为0
,表示成二进制,也就是:
0String-Typ im Spaltentyp im MySQL-Tutorial0String-Typ im Spaltentyp im MySQL-Tutorial00String-Typ im Spaltentyp im MySQL-Tutorial
再将上面的二进制反过来:
String-Typ im Spaltentyp im MySQL-Tutorial00String-Typ im Spaltentyp im MySQL-Tutorial0String-Typ im Spaltentyp im MySQL-Tutorial0
不妨算算,上述二进制对应的十进制数,即为String-Typ im Spaltentyp im MySQL-Tutorial4
.
到这里,相信大家已经恍然大悟啦,原来:集合字符串中每一个元素都对应一个二进制位,其中被选中的为String-Typ im Spaltentyp im MySQL-Tutorial
,未选中的为0
,最后在反过来,这个二进制数对应的十进制数即为其数据库中实际存储的是数值。
此外,集合字符串中插入元素的顺序并没有影响,最终系统都会自动去匹配集合的顺序,即:
-- 插入测试数据insert into my_set values (&#String-Typ im Spaltentyp im MySQL-Tutorial9;电影,美食,旅行&#String-Typ im Spaltentyp im MySQL-Tutorial9;);insert into my_set values (&#String-Typ im Spaltentyp im MySQL-Tutorial9;旅行,电影,美食&#String-Typ im Spaltentyp im MySQL-Tutorial9;);
上述两个 SQL 语句会产生相同的结果:
如上图所示,显然咱们的结论得到了验证。
最后,集合的原理同枚举类似,因此可以的到相同的结论,即:使用集合的效率并不高(低于其他类型的数据),但能规范数据和节省存储空间。
Das obige ist der detaillierte Inhalt vonString-Typ im Spaltentyp im MySQL-Tutorial. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!