MySQL技術內幕第三章 資料型別

2021-09-30 00:02:49 字數 2768 閱讀 7170

(1)數值:mysql所能識別的數字包括整數、定點數或浮點數,以及位域值。

(2)字串值:字串值兩端的引號既可以是單引號,也可以是雙引號。請盡量使用單引號。字串一般可以分別為兩類,既二進位制串和非二進位制串。二進位制串是一組位元組序列,非二進位制串是乙個字串行。非二進位制都與字符集相關,字符集決定了哪些字元可以用;每個字符集都有一組或多種排序規則。

(3)時態(日期/時間)值:時態值包括日期值、時間值以及各種表示時間的值。

(4)空間值

(5)布林值:布林常量true和false將分別被當作1和0.它們不區分帶下寫。

(6)null值:null是一種「沒有型別的「值。它通常用來表示」無值「、」未知值「。

(在資料值的基礎上更加具體化

1.每種資料型別都有以下幾個特點:

(1)它可以表示何種型別的值。

(2)這種型別的值要占用多少儲存空間。

(3)值的長度是固定的還是可變的。

(4)mysql會如何比較這種型別的值,如何對它進行排序。

(5)是否可以對這種型別進行索引,如何索引。

2.數字資料型別(4大類:整數型別,浮點數型別,定點數型別,位型別)

m:數值的總位數。 通俗點講,就是看有多少個數字,比如,5.6789,m就是5

d:小數點後面能保留幾位。 比如上面的5.6789 ,d就是4。

位元組:1位元組=8位二進位制數

位型別:bit型別,bit資料型別用於儲存bit值,能夠儲存長度範圍為1~64。採用 b』value』標記方式指定bit值,其中value是0或者1的序列,例如:b』111』代表7,b』10000000』代表128。

數字資料型別特有的屬性:

(1)unsigned屬性(去符號)

(2)zerofill屬性(填充0)

(3)auto_increment(自增屬性),可用於整數或浮點數型別。(一般用在整數值)

如何選擇數字資料型別:

(1)看取值範圍 (2)看精確度

3.字串資料型別

(2大類:非二進位制串二進位制串。二進位制串以位元組為單位,非二進位制串以字元為單位。)

非二進位制型別:

二進位制型別:

字串資料型別特有的屬性:

(1)charcter set (指定字符集) (2)collation (指定排序規則)

注:這兩個屬性只適用於非二進位制字串。

如何選擇字串資料型別

(1)這些值是字元資料(用非二進位制字串型別)還是二進位制資料(用二進位制字串型別)。

(2)比較操作需要區分大小寫嗎?如果是,則選擇非二進位制字串型別。

(3)想要少占用儲存空間嗎?如果是,則選擇一種可變長度的型別。

(4)列的取值總是從固定的某些值裡選取嗎?如果是,則選擇enum或set型別。

(5)尾部的填充值很重要嗎?如果要求資料必須原樣存入和取出,不能增加和移除尾部的空格,那麼應該選用text或varchar列來存放非二進位制串,二選用blob或varbinary列來存放二進位制串。

4.時態(日期/時間)資料型別

如何選擇時態資料型別:

(1)看儲存日期的精度(2)如果想要日期時間型別,但有時候時間可以置空,那麼可以不用 datetime型別,而用兩列分別表示date型別和time型別。

(3)datetime和timestamp型別可以在default子句中用current_timestamp函式預設當前日期

考慮的問題:

列要儲存什麼型別的值(數字,字串,日期)

值是否都在某個特定區間內(需要考慮取值範圍和字串長度)

效能和效率方面要考慮哪些問題 (速度:數字型別》字串型別,占用儲存空間越小,效能越好。)

mysql第三章關係模型 第三章 關係資料模型

一 資料模型概述 資料庫設計中兩種不同的模型 1 概念模型 面向現實世界,與計算機無關。2 資料模型 面向計算機實現。分為邏輯資料模型,物理資料模型。一 資料模型三要素 1 資料結構 資料庫資料,以及資料之間的聯絡。2 資料操作 資料庫物件允許執行操作的集合。3 資料的約束條件 資料庫完整性規則的集...

第三章,檢索資料

select prod name from products 上述語句利用select 語句從products表中檢索乙個名為prod name的列,所需要的列名在select 關鍵字之後給出,from關鍵字指出從其中檢索資料的表名 select prod name,prod id,prod nam...

第三章 資料定義

建立資料庫 creat database 資料庫名稱 開啟資料庫 use 資料庫名稱 刪除資料庫 drop database 資料庫名稱 更改資料庫名字 sp renameedp 原資料庫名稱 更改後資料庫名稱 建立資料庫student,並開啟 create database student gou...