电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

mysql數據類型和字段屬性原理與用法詳解

瀏覽:4日期:2023-10-15 15:54:27

本文實例講述了mysql數據類型和字段屬性。分享給大家供大家參考,具體如下:

本文內容: 數據類型 數值類型 整數型 浮點型 定點型 日期時間類型 字符串類型 補充: 顯示寬度與zerofll 記錄長度 字段屬性 空不為空值:NULL、NOT NULL 主鍵:primary key 唯一鍵:unique key 自增長:auto_increment 默認值:default 字段描述:comment 補充: 復合鍵

首發日期:2018-04-08

數據類型:

mysql的數據類型就是存儲數據的類型。

數值類型: 整數類型:tinyint,smallint,mediumint,integer,bigint 默認是有符號,如果需要使用無符號的數據類型要在后面加'UNSIGNED'類型 簡寫 字節大小 (signed)范圍 (unsigned)范圍 備注 整數型: TINYINT 1 0~255 -128~127 SMALLINT 2 0~65535 -32768~32767 MEDIUMINT 3 0~16777215 -8388608~8388607 INTEGER INT 4 0~4294967295 -2147483648~2147483647 BIGINT 8 0~264-1 -263~263-1 小數類型: 浮點類型:float(size,d),double(size,d) size是數值的最大位數,d是小數點右側的位數(即使你沒輸夠那么多位也會補全那么多位)。 FLOAT的精度為6~7位(依據情況不同?畢竟機器是以二進制存儲的),DOUBLE的精度為14~15位 整數部分的個數為SIZE-D,直接存入的值的個數不能多于這個,但如果浮點數四舍五入導致整數進位而溢出超過最大位數的,系統允許成立(某些版本貌似已經不允許了,所以一般小數位也不要超過)。 很多時候沒必要關注兩個浮點的數值范圍大小(是極大的),注重點應該是它的精度。 mysql數據類型和字段屬性原理與用法詳解mysql數據類型和字段屬性原理與用法詳解 定點型:decimal(size,d) size是數值的最大位數,最大為65,d是小數點右側的最大位數,最大為30。 定點型不允許因為小數部分四舍五入導致整數部分長度超出范圍。 DECIMAL是不會損失精度的。可以理解成使用“字符串”存儲(MYSQL權威指南這么說)。 mysql數據類型和字段屬性原理與用法詳解 直接不帶括號的數據類型float、double、decimal代表沒有小數部分 時間日期類型:

時間日期類型包括date,time,datetime,timestamp,year;

Datetime:時間日期,格式是YYYY-MM-DD HH:II:SS,表示的范圍是從1000到9999年(有些版本已經允許0-9999?不確定); mysql數據類型和字段屬性原理與用法詳解 Date:日期,格式是YYYY-MM-DD ,表示的范圍是從1000到9999年 mysql數據類型和字段屬性原理與用法詳解 Time:時間段,格式是HH:II:SS, 指定的時間在某個區間之間,有正負。表示的范圍 -838:59:59~838:59:59,這代表某個日期的前后時間范圍【如果你僅僅想要用來表示24小時內的時間,可以忽略它的時間范圍】 mysql數據類型和字段屬性原理與用法詳解 Timestamp:格式是YYYY-MM-DD HH:II:SS,表示的范圍從1970-01-01 00:00:00到2038-01-19 03:14:07 【一旦該行記錄被修改,那么timestamp會修改成當前時間?!? mysql數據類型和字段屬性原理與用法詳解 Year:年份,表示的范圍1901-2156mysql數據類型和字段屬性原理與用法詳解 原本有兩種格式,year(2)和year(4),但5.7中移除了year(2)。 字符串類型 : set :集合字符串。將一個個特定的字符串放到集合里面。 定義了集合之后,不能插入集合元素之外的字符串,(可以插入多個符合條件的字符串)集合字符串實際上也是僅僅存儲數值,系統自動轉換成對應的字符串。集合中每一個元素對應一個二進制位,被選中的為1,沒選中的為0,左邊為二進制中的低位,右邊為高位,從右到左得到二進制結果

create table my_set(hobby set(’football’,’basketball’,’pingpong’,’computer’))charset utf8;insert into my_set values(’basketball,computer’);insert into my_set values(3);-- 3=0011insert into my_set values(5);-- 5=0101

mysql數據類型和字段屬性原理與用法詳解

enum :枚舉字符串 有點類似set,但這里只能插入一個字符串(set類型的字段的值可以是多個set元素,但enum只能是其中一個元素)將可能出現的數據列舉出來,實際存儲的數據只能是列舉出來的數據。使用枚舉有利于統一數據,以及節省存儲空間(枚舉只是存儲數值,系統轉換成字符串)。枚舉元素實際上按定義的順序標號,從1開始,所以可以直接插入枚舉元素對應的數值。如:

create table my_enum(gender enum(’male’,’female’,’unknown’))charset utf8;

mysql數據類型和字段屬性原理與用法詳解

blob :二進制數據字符串 存儲二進制數據(少用) text :文字字符串 存儲文字,當字符大于255時,一般使用text; varchar :變長字符串 varchar(L),L代表字符長度,單位為字符,最大長度為65536。在實際存儲中需要1到2個字節來存儲長度(1還是2由實際大小決定,216=35536,<=255的一般一個字節),在使用時根據定義的大小來分配空間,但會根據實際需要使用的縮小空間(比如規定60大小,實際只有30,那么實際空間就是31~32)。 當L大于255時,建議使用Text,而不是varchar; mysql數據類型和字段屬性原理與用法詳解 char :定長字符串 char(L),L代表字符長度,單位為字符,最大長度為255,不使用L時默認為1 不同環境中根據字符大小,實際占有的空間不同;在UTF8環境下,char(4)所用的字節數為4*3=12; 補充: 顯示寬度 與填充 : 在列類型后面顯示的數值,代表數據最終顯示的最少位數(包含符號)。一般不夠顯示寬度的數據都會采用空格填充,也可以使用zerofill來使用零填充(零填充會導致數據類型自動變成無符號的)。tiny(3)的空格填充效果:mysql數據類型和字段屬性原理與用法詳解,zerofill效果:mysql數據類型和字段屬性原理與用法詳解

create table myInt(t1 TINYINT(3));drop table myInt;insert into myInt values(127),(1);select * from myInt;alter table myInt modify t1 tinyint(3) zerofill;select * from myInt; 不要輕易的使用最大限度來存儲字符串,因為涉及記錄長度問題 : MySQL中規定任何一條數據最長不能超過65535個字節 如果有任何一個字段允許為空,那么系統會自動從整個記錄中保存一個字節來存儲NULL; text文本不占用記錄長度,額外存儲。 UTF8中varchar的最大限度:65535-2(需要兩個字節來存儲長度) /3=21844,所以最大字符數為21844 GBK中varchar的最大限度:65535-2(需要兩個字節來存儲長度) /2=32766 字段屬性:

字段屬性是字段除數據類型外的屬性,一般有空不為空值、主鍵、唯一鍵、自增長、默認值、描述等屬性。

空不為空值:NULL、NOT NULL 字段的數據默認情況下是允許為空的,比如說一條人的信息記錄中可以沒有郵箱(或許有些人考慮用“空字符串”來代表),我們允許可以不填入數據的字段可以設置為null;但比如說某些必填數據,我們不想填入的時候留空,可以設置這個字段為not null 允許為空時的數據,空的數據顯示為null:mysql數據類型和字段屬性原理與用法詳解 不為空的字段,插入null時,會報錯:mysql數據類型和字段屬性原理與用法詳解 nullnot null屬性的定義方式(因為默認允許空,所以主要關注not null):mysql數據類型和字段屬性原理與用法詳解;當然也可以通過修改字段的形式來給字段定義not null屬性 主鍵:primary key 主鍵用于唯一標識每一條記錄(每個人都有自己唯一的身份證) 每一張表只能有一個主鍵。 因為唯一標識,所以主鍵字段的數據不能為空,并且主鍵字段的數據值不能重復 主鍵也是一種索引,可以提高查找速率。 主鍵的定義: 1.定義表結構的時候定義成字段的屬性。mysql數據類型和字段屬性原理與用法詳解mysql數據類型和字段屬性原理與用法詳解 2.修改表結構,增加一個帶主鍵的字段。 3.修改表結構,給某一字段增加主鍵屬性。mysql數據類型和字段屬性原理與用法詳解 主鍵的用途:主鍵的主要用途是用來唯一標識每一條記錄,比如我們想將兩個表(學生表跟老師表)的多對多關系封裝到一個表中,這個抽取的映射字段一般都是各自的主鍵。mysql數據類型和字段屬性原理與用法詳解;并且由于主鍵的數據的不可重復性,也用來約束數據的唯一性。 主鍵的刪除:

alter table 表名 drop primary key; 唯一鍵:unique key 唯一鍵的功能與主鍵有點類型,但不同的是主鍵只能有一個,唯一鍵可以有多個,而且唯一鍵的字段的數據允許為空。 唯一鍵可以約束字段,使得字段的數據不能重復 如果唯一鍵同時也有not null,并且表中沒有主鍵的話,在desc查看表結構中會顯示成主鍵 如果唯一鍵也不允許為空,那么功能與主鍵相同 唯一鍵的定義方法可以參考主鍵的。 唯一鍵的刪除:

alter table 表名 drop index 唯一鍵名; -- 唯一鍵默認使用字段名來定義名字 自增長:auto_increment 自增長的功能是可以使某個字段的數據隨著記錄的插入而進行增長(不給這個字段插入數據的情況下) 自增長的前提是這個字段必須是一個“索引”,比如主鍵、唯一鍵 自增長的前提這個字段的數據類型是一個數值型的,(如果給了float,也不會增長成小數,而僅僅是整數) 一個表只能有一個自增長。 只有不給值,或者給null的情況下,才能正確自增長;如果某一次自增長失敗了,那么下一次會從當前字段的最大值開始繼續自增長。 自增長的定義方法:mysql數據類型和字段屬性原理與用法詳解;當然也可以通過修改字段的形式來給字段定義not null屬性 自增長的修改: 修改增長速度:set auto_increment = 值; 修改下次增長的值:alter table 表名 auto_increment = 值; 【修改的值只能變大,不能變小,因為可能導致數據重復問題】 自增長的查看:show vairable like 'auto_increment%'; 自增長的刪除:利用alter來刪除,alter修改字段屬性的時候如果不帶上原來的屬性就會被刪掉: 默認值:default 默認值的功能是當我們不給一個字段賦值的時候,使用默認值作為數據,比如不選擇性別的時候,默認使用“保密”; 默認值的定義方式:mysql數據類型和字段屬性原理與用法詳解 mysql數據類型和字段屬性原理與用法詳解 字段描述:comment 字段描述是用來描述字段的,能在查看數據表創建語句的時候顯示出來(不會再select結果中顯示出來),可以幫助我們了解某一個字段的意義。 定義方式:mysql數據類型和字段屬性原理與用法詳解 mysql數據類型和字段屬性原理與用法詳解 補充: 復合鍵:可以將多個字段組成一個鍵,比如學生可以選多門課,但學生號跟課程號一起的時候應該是唯一的,這里使用主鍵來限制這個情況 定義方法(復合以主鍵為例):mysql數據類型和字段屬性原理與用法詳解 數據約束(以上面的表為例):mysql數據類型和字段屬性原理與用法詳解

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數據庫鎖相關技巧匯總》及《MySQL常用函數大匯總》

希望本文所述對大家MySQL數據庫計有所幫助。

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 硬度计,金相磨抛机_厂家-莱州华煜众信试验仪器有限公司 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 电液推杆生产厂家|电动推杆|液压推杆-扬州唯升机械有限公司 | 深圳宣传片制作-企业宣传视频制作-产品视频拍摄-产品动画制作-短视频拍摄制作公司 | 谷梁科技 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | Boden齿轮油泵-ketai齿轮泵-yuken油研-无锡新立液压有限公司 | 旋振筛|圆形摇摆筛|直线振动筛|滚筒筛|压榨机|河南天众机械设备有限公司 | 紫外线老化试验箱_uv紫外线老化试验箱价格|型号|厂家-正航仪器设备 | X光检测仪_食品金属异物检测机_X射线检测设备_微现检测 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 黄石妇科医院_黄石东方女子医院_黄石东方妇产医院怎么样 | 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 泰安塞纳春天装饰公司【网站】 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 国际金融网_每日财经新资讯网 | 脉冲除尘器,除尘器厂家-淄博机械 | 手持式浮游菌采样器-全排二级生物安全柜-浙江孚夏医疗科技有限公司 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 铁艺,仿竹,竹节,护栏,围栏,篱笆,栅栏,栏杆,护栏网,网围栏,厂家 - 河北稳重金属丝网制品有限公司 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 儿童乐园|游乐场|淘气堡招商加盟|室内儿童游乐园配套设备|生产厂家|开心哈乐儿童乐园 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 实体店商新零售|微赢|波后|波后合作|微赢集团 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 浙江自考_浙江自学考试网 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 双吸泵,双吸泵厂家,OS双吸泵-山东博二泵业有限公司 | 深圳市索富通实业有限公司-可燃气体报警器 | 可燃气体探测器 | 气体检测仪 | 转向助力泵/水泵/发电机皮带轮生产厂家-锦州华一精工有限公司 | 自动焊锡机_点胶机_螺丝机-锐驰机器人 |