當前位置 博文首頁 > 信息技術智庫:5.一文搞懂MySQL的數據類型

    信息技術智庫:5.一文搞懂MySQL的數據類型

    作者:[db:作者] 時間:2021-09-13 18:57

    🍅 作者主頁:不吃西紅柿

    🍅 簡介:CSDN博客專家🏆、信息技術智庫公號作者?簡歷模板、PPT模板、技術資料盡管【關注】私聊我。

    🍅?歡迎點贊 👍 收藏 ?留言?📝? 歷史文章目錄:https://t.1yb.co/zHJo

    一.MySQL的數據類型

    數據類型是定義列中可以存儲什么類型的數據以及該數據實際怎樣存儲的基本規則數據類型限制存儲在數據列列中的數據。例如,數值數據類型列只能接受數值類型的的數據在設計表時,應該特別重視所用的數據類型。使用錯誤的數據類型可能會嚴重地影響應用程序的功能和性能。

    更改包含數據的列不是一件小事(而且這樣做可能會導致數據丟失)。

    數據類型: 整型、浮點型、字符串、日期等

    1、字符串數據類型

    最常用的數據類型是串數據類型。它們存儲串,如名字、地址、電 話號碼、郵政編碼等。 不管使用何種形式的串數據類型,串值都必須括在引號內 有兩種基本的串類型,分別為定長串和變長串

    定長串:char

    1. 接受長度固定的字符串,其長度是在創建表時指定的。 定長列不允許存儲多于指定長度字符的數據。

    2. 指定長度后,就會分配固定的存儲空間用于存放數據 char(7) 不管實際插入多少字符,它都會占用7個字符位置

    變長串 varchar

    存儲可變長度的字符串 varchar(7) 如果實際插入4個字符, 那么它只占4個字符位置,當然插入的數據長度不能超過7個字符。

    注意

    既然變長數據類型這樣靈活,為什么還要使用定長數據類型? 回答:因為性能,MySQL處理定長列遠比處理變長列快得多。

    Text 變長文本類型存儲

    2、數值類型

    數值數據類型存儲數值。MySQL支持多種數值數據類型,每種存儲的數值具有不同的取值范圍。支持的取值范圍越大,所需存儲空間越多

    與字符串不一樣,數值不應該括在引號內

    ?decimal(5, 2) 表示數值總共5位, 小數占2位 tinyint 1字節(8位) 0-255。-128,127 int 4字節。 -21億,21億。0-42億 float.

    MySQL中沒有專門存儲貨幣的數據類型,一般情況下使用DECIMAL(8, 2)

    有符號或無符號

    所有數值數據類型(除BIT和BOOLEAN外)都可以有符號或無符號

    • 有符號數值列可以存儲正或負的數值
    • 無符號數值列只能存儲正數。
    • 默認情況為有符號,但如果你知道自己不需要存儲負值,可以使用UNSIGNED關鍵字

    注意

    如果將郵政編碼類似于01234存儲為數值類型,則保存的將是數值1234,此時需要使用字符串類型 手機號應該用什么進行存儲呢?

    3、日期和時間類型

    MySQL使用專門的數據類型來存儲日期和時間值

    ? ?

    ?datetime 8字節1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

    4、二進制數據類型

    二進制數據類型可存儲任何數據(甚至包括二進制信息),如圖像、多媒體、字處理文檔等

    二、表的字段約束

    • unsigned 無符號(給數值類型使用,表示為正數,不寫可以表示正負數都可以) 字段類型后面加括號限制寬度
    • char(5). varchar(7) 在字符類型后面加限制 表示 字符串的長度
    • int(4) 沒有意義,默認無符號的int為int(11),有符號的int(10)
    • int(4) unsigned zerofill只有當給int類型設置有前導零時,設置int的寬度才有意義。
    • not null 不能為空,在操作數據庫時如果輸入該字段的數據為NULL ,就會報錯 default 設置默認值
    • primary key 主鍵不能為空,且唯一.一般和自動遞增一起配合使用。 auto_increment 定義列為自增屬性,一般用于主鍵,數值會自動加1
    • unique 唯一索引(數據不能重復:用戶名)可以增加查詢速度,但是會降低插入和更新速度

    三、MySQL的運算符

    • 算術運算符: +、 -、 *、 /、 %
    • 比較運算符: =、 >、 <、 >=、 <=、!=
    • 數據庫特有的比較: in、not in、is null、is not null、like、between、and
    • 邏輯運算符: and、or、not
    • like: 支持特殊符號%和_ ;

    其中%表示任意數量的任意字符,_表示任意一位字符

    四、主鍵

    1、表中每一行都應該有可以唯一標識自己的一列,用于記錄兩條記錄不能重復,任意兩行都不具有相同的主鍵值

    2、應該總是定義主鍵 雖然并不總是都需要主鍵,但大多數數據庫設計人員都應保證他們創建的每個表具有一個主 鍵,以便于以后的數據操縱和管理。

    要求

    • 記錄一旦插入到表中,主鍵最好不要再修改
    • 不允許NULL
    • 不在主鍵列中使用可能會更改的值。

    (例如,如果使用一個名字作為主鍵以標識某個供應商,當該供應商合并和更改其名字時,必須更改這個主鍵。)

    • 自增整數類型:數據庫會在插入數據時自動為每一條記錄分配一個自增整數,這樣我們就完全不用擔心主鍵重復,也不用自己預先生成主鍵
    • 可以使用多個列作為聯合主鍵,但聯合主鍵并不常用。使用多列作為主鍵時,所有列值的組合必須是唯一的
    cs
lj663的博客 原創內容,個人筆記,僅供參考。篠AP中導出物料 lj663的博客 原創內容,個人筆記,僅供參考。宏P于作者博文的 lj663的博客 原創內容,個人筆記,僅供參考。荷昝鳎罕救瞬┛ lj663的博客 原創內容,個人筆記,僅供參考。宏P于VIP文章的 程序員springmeng:??爆肝熬夜開發了一個SpringBoot活動管理系統 相太陽的博客:CSS font-size字體大小樣式屬性 Jqcode:配置文件中propertyConfigurer類的使用 Jqcode:Eclipse插件使用Mybatis-generator代碼生成器 Jqcode:命令行使用Mybatis-generator代碼生成器 Jqcode:SpringMVC工作原理 Jqcode:MD5Utils Jqcode:mysql中自連接查詢與case-when-then用法 Jqcode:json相關轉換 Jqcode:使用Pipeline管道技術快速寫入百萬級別緩存數據 Jqcode:mysql查詢中常用的函數整理 Jqcode:Eclipse中Debug調試時各個快捷鍵的作用 Jqcode:Controller返回json格式數據報反序列化異常的解決辦法 Jqcode:java配置相關參數啟動項目 Jqcode:初步了解mysql存儲過程 Jqcode:layDate,一款來自layui的強大日期插件 Jqcode:layer,一款來自layui的強大彈出層插件 Jqcode:java實現線程間的通信 Jqcode:java導出EXCEL表格―實戰篇 Jqcode:Redis常問面試題整理 Jqcode:List數據去重方法 Jqcode:初識mysql觸發器 Jqcode:數據庫設計規范之三大范式 Jqcode:關于mysql用戶安全管理的一些命令 Jqcode:關于哈希表必須了解的一些知識 Jqcode:本地環境nexus搭建私服jar包站點 Jqcode:使用Dom4j中的Document與Element解析XML文檔 Jqcode:postman調用https接口方式 Jqcode:簡單記錄Spring中輕量級任務調度@Scheduled注解的使用 Jqcode:項目啟動后控制臺自定義輸出圖案或內容 Jqcode:RabbitMQ消息隊列中間件――安裝與配置 Jqcode:RabbitMQ消息隊列中間件――“Hello World”入門 Jqcode:nginx反向代理實踐:將某個指定的域名代理到指定的服務 Jqcode:Spring Cloud微服務架構――Eureka注冊中心 Jqcode:Spring Cloud微服務架構――Eureka服務注冊 Jqcode:Spring Cloud微服務架構――Eureka服務發現與消費 Jqcode:Spring Cloud微服務架構――Ribbon客戶端負載均衡 Jqcode:Spring Cloud微服務架構――Feign客戶端負載均衡 Jqcode:es+kibana在windows平臺下的搭建記錄 Jqcode:kibana安裝中文插件 Jqcode:mongodb常用語法 Jqcode:關于原碼、反碼、補碼的學習 Jqcode:@Autowired、@Resource還分不清嗎? 英雄哪里出來:??13萬字《C語言動漫對話教程(入門篇)》??(建議收 lyndon:CSDN 去除圖片水印 lyndon:Android 手機修改 WiFi MAC 地址 php怎么將漢字轉成拼音 php 50.00怎么轉換成50 一文帶你分析php7的zval 聊聊關于PHP定時器的那些事 微信推廣 如何做好微商 必看微信朋友圈購物八大準則 如何避免朋友圈購物存在問題 JavaScript循環遍歷的24個方法 關于@PostConstruct、afterPropertiesSet和init-method的執行順序 Redis數據過期策略的實現詳解 Java設計模式之java觀察者模式詳解 java工程師進階之MyBatis延遲加載的使用 提高網站收錄率請從建站開始! php pthreads的使用方法 php分頁有幾種實現方法 Yaf遇上PHP7.1會有什么火花? 這個php-cs-fixer編碼格式化工具,你還不會用嗎? 微信朋友圈曬成交、曬對話有圖不等于有真相 交易量是這么來的 揭秘微商驚天陷阱 微信朋友圈里的面膜都賣給了誰? .net平臺的rabbitmq使用封裝demo詳解 C++類的特種函數生成機制詳解
A级免费视频