首頁 資料庫 mysql教程 MySQL 教學課程類型中的字串型

MySQL 教學課程類型中的字串型

Nov 22, 2018 pm 04:57 PM

這篇文章主要跟大家介紹mysql中列類型之字串型的相關知識介紹,希望對需要的朋友有幫助!

推薦參考教學:《mysql教學

列類型(資料型別)教學課程類型中的字串型>

所謂的列類型,其實就是指數據類型,即對資料進行統一的分類,從系統的角度出發是為了能夠使用統一的方式進行管理,更好的利用有限的空間。

在 SQL 中,將資料型別分成了三大類,分別為:數值型、字串型和日期時間型。

MySQL 教學課程類型中的字串型

字串型教學課程類型中的字串型>

在SQL 中,將字串類型分成了MySQL 教學課程類型中的字串型 類,分別為:char# 、varchartextblobenumset.

第MySQL 教學課程類型中的字串型 類:定長字串

定長字串:char,即磁碟(二維表)在定義結構的時候就已經確定了最終資料的存儲長度。

  • char(L):L 表示Length,也就是可以儲存的長度,單位為字符,最大長度為MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型;

  • char(MySQL 教學課程類型中的字串型):表示在UTFMySQL 教學課程類型中的字串型 環境下,需要MySQL 教學課程類型中的字串型*MySQL 教學課程類型中的字串型=MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型 個位元組。

第MySQL 教學課程類型中的字串型 類別:變長字串

#變長字串:varchar,即在指派儲存空間的時候,按照最大的空間分配,但是實際上用了多少,則是根據具體的數據來決定。

  • varchar(L):L 表示Length,理論長度是MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型,但是會多出MySQL 教學課程類型中的字串型 到MySQL 教學課程類型中的字串型 個位元組來決定儲存的實際長度;

  • varchar(MySQL 教學課程類型中的字串型0):例如儲存MySQL 教學課程類型中的字串型0 個漢字,在UTFMySQL 教學課程類型中的字串型 環境下,需要MySQL 教學課程類型中的字串型0*MySQL 教學課程類型中的字串型 MySQL 教學課程類型中的字串型=MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型 個位元組。

實際上,如果儲存長度超過MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型 個字符,則既不用定長字串也不用變長字串,而是用文字字串text .

如何選擇定長字串或是變長字串呢?

  • 定長字串對磁碟空間比較浪費,但是效率高:如果資料基本上確定長度都一樣,就使用定長字串,例如身分證、電話號碼等;

  • 變長字串對磁碟空間比較節省,但是效率低:如果資料無法確定長度(不同的資料有變化),就使用變長字串,例如位址、姓名等。

第 MySQL 教學課程類型中的字串型 類:文字字串

#如果資料量非常大,通常說超過 MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型 個字元就會使用文字字串。

文字字串根據儲存的格式進行分類,可以分為:

  • text:儲存文字;

  • blob:儲存二進位資料(其實都是儲存路徑),通常不用。

第MySQL 教學課程類型中的字串型 類別:枚舉字串

#列舉字串:enum,需要事先將所有可能出現的結果都設計好,實際上儲存的資料必須是規定好的資料中的一個。

枚舉字串的使用方式:

  • 定義:enum('元素MySQL 教學課程類型中的字串型','元素MySQL 教學課程類型中的字串型','元素MySQL 教學課程類型中的字串型'... ),例如enum('男','女','保密')

  • 使用:儲存的數據,只能是事先定義好的數據。

執行下列SQL 語句建立列舉表,進行測試:

-- 创建枚举表create table my_enum(
    gender enum(&#MySQL 教學課程類型中的字串型9;男&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;女&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;保密&#MySQL 教學課程類型中的字串型9;)
)charset utfMySQL 教學課程類型中的字串型;
登入後複製

MySQL 教學課程類型中的字串型

再執行如下SQL 語句,向表格my_enum中插入測試資料:

-- 插入测试数据insert into my_enum values (&#MySQL 教學課程類型中的字串型9;男&#MySQL 教學課程類型中的字串型9;),(&#MySQL 教學課程類型中的字串型9;女&#MySQL 教學課程類型中的字串型9;),(&#MySQL 教學課程類型中的字串型9;保密&#MySQL 教學課程類型中的字串型9;);insert into my_enum values (&#MySQL 教學課程類型中的字串型9;male&#MySQL 教學課程類型中的字串型9;);
登入後複製

MySQL 教學課程類型中的字串型

#透過上面的測試,咱們可以發現使用枚舉字串有一個好處,那就是:規範資料格式,插入表中的資料只能是事先定義好的某個資料。

此外,枚舉字串還有一個作用,那就是:節省儲存空間(枚舉資料通常都有一個別名),枚舉實際上儲存的是數值而不是字串本身。

在 MySQL 中,系統是有自動轉換資料格式的功能的。在這裡,咱們可以證明枚舉字段存儲的是數值,具體方法為:將資料取出來 0,如果是字串最終結果永遠為0,否則就是其他值。

-- 验证枚举字段实际存储的格式select gender + 0,gender from my_enum;
登入後複製

MySQL 教學課程類型中的字串型

觀察上述結果,咱們可以找出枚舉元素的實際規律,即按照元素出現的順序,從MySQL 教學課程類型中的字串型開始編號。接下來,咱們再來了解枚舉的原理

#
  • 枚举在进行数据规范(定义)的时候,系统会自动建立一个数字与枚举元素的对应关系(放在日志中);在进行数据插入的时候,系统自动将字符串转换为对应的数值进行存储;在进行数据提取的时候,系统自动将数值转换成对应的字符串进行显示。

通过阅读以上枚举的原理,咱们可以知道:使用枚举的效率并不高(低于其他类型的数据),但能规范数据和节省存储空间。

第 MySQL 教學課程類型中的字串型 类:集合字符串

集合字符串:set,跟枚举类似,实际存储的是数值而不是字符串。

集合字符串的使用方式:

  • 定义:set,元素列表;

  • 使用:可以使用元素列表中的多个元素,用逗号分隔。

执行如下 SQL 语句创建枚举表,进行测试:

-- 创建集合表create table my_set(
    hobby set(&#MySQL 教學課程類型中的字串型9;音乐&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;电影&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;旅行&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;美食&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;摄影&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;运动&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;宠物&#MySQL 教學課程類型中的字串型9;)
)charset utfMySQL 教學課程類型中的字串型;
登入後複製

MySQL 教學課程類型中的字串型

再执行如下 SQL 语句,向表my_set中插入测试数据:

-- 插入测试数据insert into my_set values (&#MySQL 教學課程類型中的字串型9;电影,美食,宠物&#MySQL 教學課程類型中的字串型9;);insert into my_set values (MySQL 教學課程類型中的字串型);
登入後複製

MySQL 教學課程類型中的字串型

再执行如下 SQL 语句,查看表my_set中的数据:

-- 查看数据select hobby + 0,hobby from my_set;
登入後複製

MySQL 教學課程類型中的字串型

观察上面的结果,相信大部分童鞋也懵啦!对于MySQL 教學課程類型中的字串型还好理解,MySQL 教學課程類型中的字串型=MySQL 教學課程類型中的字串型+MySQL 教學課程類型中的字串型,对应于集合中数据的编号,也正是音乐电影;但是MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型是什么鬼啊?在此,咱们不妨将集合(&#MySQL 教學課程類型中的字串型9;音乐&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;电影&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;旅行&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;美食&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;摄影&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;运动&#MySQL 教學課程類型中的字串型9;,&#MySQL 教學課程類型中的字串型9;宠物&#MySQL 教學課程類型中的字串型9;)中的元素选中的记为MySQL 教學課程類型中的字串型,没有选中的记为0,表示成二进制,也就是:

  • 0MySQL 教學課程類型中的字串型0MySQL 教學課程類型中的字串型00MySQL 教學課程類型中的字串型

再将上面的二进制反过来:

  • MySQL 教學課程類型中的字串型00MySQL 教學課程類型中的字串型0MySQL 教學課程類型中的字串型0

不妨算算,上述二进制对应的十进制数,即为MySQL 教學課程類型中的字串型MySQL 教學課程類型中的字串型.

到这里,相信大家已经恍然大悟啦,原来:集合字符串中每一个元素都对应一个二进制位,其中被选中的为MySQL 教學課程類型中的字串型,未选中的为0,最后在反过来,这个二进制数对应的十进制数即为其数据库中实际存储的是数值。

此外,集合字符串中插入元素的顺序并没有影响,最终系统都会自动去匹配集合的顺序,即:

-- 插入测试数据insert into my_set values (&#MySQL 教學課程類型中的字串型9;电影,美食,旅行&#MySQL 教學課程類型中的字串型9;);insert into my_set values (&#MySQL 教學課程類型中的字串型9;旅行,电影,美食&#MySQL 教學課程類型中的字串型9;);
登入後複製

上述两个 SQL 语句会产生相同的结果:

MySQL 教學課程類型中的字串型

如上图所示,显然咱们的结论得到了验证。

最后,集合的原理同枚举类似,因此可以的到相同的结论,即:使用集合的效率并不高(低于其他类型的数据),但能规范数据和节省存储空间。

以上是MySQL 教學課程類型中的字串型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

與MySQL中使用索引相比,全表掃描何時可以更快? 與MySQL中使用索引相比,全表掃描何時可以更快? Apr 09, 2025 am 12:05 AM

全表掃描在MySQL中可能比使用索引更快,具體情況包括:1)數據量較小時;2)查詢返回大量數據時;3)索引列不具備高選擇性時;4)複雜查詢時。通過分析查詢計劃、優化索引、避免過度索引和定期維護表,可以在實際應用中做出最優選擇。

說明InnoDB全文搜索功能。 說明InnoDB全文搜索功能。 Apr 02, 2025 pm 06:09 PM

InnoDB的全文搜索功能非常强大,能够显著提高数据库查询效率和处理大量文本数据的能力。1)InnoDB通过倒排索引实现全文搜索,支持基本和高级搜索查询。2)使用MATCH和AGAINST关键字进行搜索,支持布尔模式和短语搜索。3)优化方法包括使用分词技术、定期重建索引和调整缓存大小,以提升性能和准确性。

可以在 Windows 7 上安裝 mysql 嗎 可以在 Windows 7 上安裝 mysql 嗎 Apr 08, 2025 pm 03:21 PM

是的,可以在 Windows 7 上安裝 MySQL,雖然微軟已停止支持 Windows 7,但 MySQL 仍兼容它。不過,安裝過程中需要注意以下幾點:下載適用於 Windows 的 MySQL 安裝程序。選擇合適的 MySQL 版本(社區版或企業版)。安裝過程中選擇適當的安裝目錄和字符集。設置 root 用戶密碼,並妥善保管。連接數據庫進行測試。注意 Windows 7 上的兼容性問題和安全性問題,建議升級到受支持的操作系統。

InnoDB中的聚類索引和非簇索引(次級索引)之間的差異。 InnoDB中的聚類索引和非簇索引(次級索引)之間的差異。 Apr 02, 2025 pm 06:25 PM

聚集索引和非聚集索引的區別在於:1.聚集索引將數據行存儲在索引結構中,適合按主鍵查詢和範圍查詢。 2.非聚集索引存儲索引鍵值和數據行的指針,適用於非主鍵列查詢。

mysql:簡單的概念,用於輕鬆學習 mysql:簡單的概念,用於輕鬆學習 Apr 10, 2025 am 09:29 AM

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

說明不同類型的MySQL索引(B樹,哈希,全文,空間)。 說明不同類型的MySQL索引(B樹,哈希,全文,空間)。 Apr 02, 2025 pm 07:05 PM

MySQL支持四種索引類型:B-Tree、Hash、Full-text和Spatial。 1.B-Tree索引適用於等值查找、範圍查詢和排序。 2.Hash索引適用於等值查找,但不支持範圍查詢和排序。 3.Full-text索引用於全文搜索,適合處理大量文本數據。 4.Spatial索引用於地理空間數據查詢,適用於GIS應用。

mysql用戶和數據庫的關係 mysql用戶和數據庫的關係 Apr 08, 2025 pm 07:15 PM

MySQL 數據庫中,用戶和數據庫的關係通過權限和表定義。用戶擁有用戶名和密碼,用於訪問數據庫。權限通過 GRANT 命令授予,而表由 CREATE TABLE 命令創建。要建立用戶和數據庫之間的關係,需創建數據庫、創建用戶,然後授予權限。

mysql 和 mariadb 可以共存嗎 mysql 和 mariadb 可以共存嗎 Apr 08, 2025 pm 02:27 PM

MySQL 和 MariaDB 可以共存,但需要謹慎配置。關鍵在於為每個數據庫分配不同的端口號和數據目錄,並調整內存分配和緩存大小等參數。連接池、應用程序配置和版本差異也需要考慮,需要仔細測試和規劃以避免陷阱。在資源有限的情況下,同時運行兩個數據庫可能會導致性能問題。

See all articles