七、Mysql數據庫的數據類型和表屬性


一、SQL介紹

結構化查詢語言
5.7 以后符合SQL92嚴格模式(常用標准為SQL92和SQL99)
通過sql_mode參數來控制

二、常用SQL分類

DDL:數據定義語言
DCL:數據控制語言
DML:數據操作語言
DQL:數據的查詢語言

三、數據類型、表屬性、字符集

1、數據類型

作用:保證數據的准確性和標准性。

2、種類

數值類型

 

常用的數值類型為:

tinyint  : -128~127
int       :-2^31~2^31-1
說明:手機號是無法存儲到int的。一般是使用char類型來存儲收集號

字符類型

 

常用的字符類型

char(11) :
定長 的字符串類型,在存儲字符串時,最大字符長度11個,立即分配11個字符長度的存儲空間,如果存不滿,空格填充。
varchar(11):
變長的字符串類型看,最大字符長度11個。在存儲字符串時,自動判斷字符長度,按需分配存儲空間。
enum('bj','tj','sh'):
枚舉類型,比較適合於將來此列的值是固定范圍內的特點(該列的取值只能為括號內定義的值),可以使用enum,可以很大程度的優化我們的索引結構。

時間類型

 

常用的時間類型為

DATETIME 
范圍為從 1000-01-01 00:00:00.0000009999-12-31 23:59:59.999999。
TIMESTAMP 
1970-01-01 00:00:00.0000002038-01-19 03:14:07.999999。
timestamp會受到時區的影響

二進制類型(基本上不用)

 

存放圖片和音視頻文件,這些文件一般不存放在數據庫中。

3、表的屬性

列屬性

約束(一般建表時添加):
**primary key** :主鍵約束
設置為主鍵的列,此列的值必須非空且唯一,主鍵在一個表中只能有一個,但是可以有多個列一起構成。
**not null**      :非空約束
列值不能為空,也是表設計的規范,盡可能將所有的列設置為非空。可以設置默認值為0
**unique key** :唯一鍵
列值不能重復
**unsigned** :無符號
針對數字列,非負數。

其他屬性:
**key** :索引
可以在某列上建立索引,來優化查詢,一般是根據需要后添加
**default**           :默認值
列中,沒有錄入值時,會自動使用default的值填充
**auto_increment**:自增長
針對數字列,順序的自動填充數據(默認是從1開始,將來可以設定起始點和偏移量)
**comment ** : 注釋

表的屬性

存儲引擎:
InnoDB(默認的)
字符集和排序規則:
utf8       
utf8mb4

4、字符集和校對規則

一般建議使用的字符集為

utf8    (3個字符)
utf8mb4 (4個字符,支持表情包)

校對規則(排序規則)

大小寫是否敏感,默認為大小寫不敏感;如有特殊字符時,需要改為大小敏感。比如:ü(默認下該字符會被保存為u)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM