mysql取得列類型_Mysql列類型

數值型

整型:

tinyint:微小的列類型,1個字節,默認有符號,存儲范圍:-128--127

可選屬性:tingyint(M) unsigned zerofill

M:寬度(在0填充(zerofill)時才有效),只是顯示效果,不影響實際數據的存儲范圍;unsigned:無符號類型

注意:如果某列是zerofill,那么則是unsigned。

smallint:2個字節

mediumint:3個字節

int:4個字節

bigint:8個字節

舉例:

創建一個表:

1 create tableclass(2 id int primary key auto_increment,--id 自增長

3 name varchar(20),4 age tinyint

5 );

插入數據:

1 insert into class(name,age) values ('張三',25),('李四',26),('王五',27);

然后更改列的定義實驗zerofill:可以看到age1前面填充了4個0

alter table class add age1 tinyint(5) zerofill;insert into table class(age1) values (3);--插入一條數據--查詢結果:

select * fromclass;--結果顯示如下:

id | name | age |age1----+------+------+-------

1 | 張三 | 25 | NULL

2 | 李四 | 26 | NULL

3 | 王五 | 27 | NULL

4 | NULL | NULL | 00003

設置列的默認值,一般這樣結合設置:可以省去not null,但是一般推薦這樣使用。

1 not null default '默認的值'

2 --添加一列設置默認值

3 alter table class add age2 tinyint not null default 10;4 --查詢結果

5 select * fromclass;6 +----+------+------+-------+------+

7 | id | name | age | age1 | age2 |

8 +----+------+------+-------+------+

9 | 1 | 張三 | 25 | NULL | 10 |

10 | 2 | 李四 | 26 | NULL | 10 |

11 | 3 | 王五 | 27 | NULL | 10 |

12 | 4 | NULL | NULL | 00003 | 10 |

13 +----+------+------+-------+------+

小數型:浮點型,定點型

float(M,D) M:精度(總位數,不包含小數點),D:標度(小數點后面的位數) 比如:float(6,2)表示的范圍是:-9999.99-->9999.99

1 --創建一個表

2 create tablegoods(3 name varchar(20) not null default ' ',4 price float(6,2) not null default 0.00

5);6 --增加一列

7 alter table goods add price1 float(6,3) not null default 100.000

8 --插入數據

9 insert into goods (name,price) values ('跑步機',99,300),('飲水機',199,700);10 --查詢數據:

11 select * fromgoods;12 +--------+--------+---------+

13 | name | price | price1 |

14 +--------+--------+---------+

15 | 跑步機 | 99.00 | 300.000 |

16 | 飲水機 | 199.00 | 700.000 |

17 +--------+--------+---------+

再插入一條數據:

insert into goods (name,price,price1) values ('跑步機1',99.685,300),('飲水機1',99.675,700)--查詢出來的數據:

select * fromgoods;+---------+--------+---------+

| name | price | price1 |

+---------+--------+---------+

| 跑步機 | 99.00 | 300.000 |

| 飲水機 | 199.00 | 700.000 |

| 跑步機1 | 99.69 | 300.000 |

| 飲水機1 | 99.67 | 700.000 |

+---------+--------+---------+

注意:這里的price按照四舍五入應該是99.69和99.68的,但是查詢出來的數據卻是99.69和99.67;這是因為Mysql采取的不是數學上的四舍五入,而是采用銀行的四舍五入:即1,2,3,4舍,6,7,8,9入;而5就是根據5前面的一位數來確定是舍還是入:1,3,5,7就舍掉,0,2,4,6就加上.

定點型 decimal 比float精度要高些。

alter table goods add bigprice float(9,2) not null default 0.00

alter table goods add decimalprice decimal(9,2) not null default 0.00插入數據:insert into goods (name,bigprice,decimalprice) values ('自行車',123456.23,123456.23)

查詢數據;select * fromgoods;+---------+--------+---------+-----------+--------------+

| name | price | price1 | bigprice | decimalprice |

+---------+--------+---------+-----------+--------------+

| 跑步機 | 99.00 | 300.000 | 0.00 | 0.00 |

| 飲水機 | 199.00 | 700.000 | 0.00 | 0.00 |

| 跑步機1 | 99.69 | 300.000 | 0.00 | 0.00 |

| 飲水機1 | 99.67 | 700.000 | 0.00 | 0.00 |

| 自行車 | 0.00 | 100.000 | 123456.23 | 123456.23 |

+---------+--------+---------+-----------+--------------+--這里沒有明顯的區別,修改一下數據:

update goods set bigprice=1234567.23 and decimalprice=1234567.23 where name='自行車'

select * fromgoods;+---------+--------+---------+------------+--------------+

| name | price | price1 | bigprice | decimalprice |

+---------+--------+---------+------------+--------------+

| 跑步機 | 99.00 | 300.000 | 0.00 | 0.00 |

| 飲水機 | 199.00 | 700.000 | 0.00 | 0.00 |

| 跑步機1 | 99.69 | 300.000 | 0.00 | 0.00 |

| 飲水機1 | 99.67 | 700.000 | 0.00 | 0.00 |

| 自行車 | 0.00 | 100.000 | 1234567.25 | 123456.23 |

+---------+--------+---------+------------+--------------+

這里小數位最后一個是25,一個是23了,所以decimal比float精確,因此銀行業務一般是采取的decimal類型。

字符型

char(M):M個字符,如果小于M個字符,實占M個字符,利用率:<=100%,不夠M個字符的,最后用空格補起。

varchar(M):M個字符,存儲的數據小于M個字符,設為N,N<=M,利用率小于100%,因為有一兩個字節要用來記錄占用的空間。

create tablestu(

namechar(8) not null default '',

waihaovarchar(10) not null default '')insert into stu values ('一二三四五六七','一二三四五六七')insert into stu values ('一二三','一二三')select * fromstu;+------------------+--------------------+

| name | waihao |

+------------------+--------------------+

| 張三 | 三兒 |

| 啊啊是個大傻逼啊 | 大傻逼啊打打的的的 |

| 一二三四五六七 | 一二三四五六七 |

| 一二三 | 一二三 |

+------------------+--------------------+--在字符串后面加連接符來看是否丟失空格:

select concat(name,'!'),CONCAT(waihao,'!') fromstu;+-------------------+---------------------+

| concat(name,'!') | CONCAT(waihao,'!') |

+-------------------+---------------------+

| 張三! | 三兒! |

| 啊啊是個大傻逼啊! | 大傻逼啊打打的的的! |

| 一二三四五六七! | 一二三四五六七! |

| 一二三! | 一二三 ! |

+-------------------+---------------------+

通過select查詢到的結果發現,char型的丟了空格,varchar由于有1-2字節記錄占用的情況,不會丟失空格。

速度上char快,varchar稍慢,要去字節里面取存儲了多少值。

因此char和varchar的區別:

char是的范圍0-255,varchar 0-65535左右,char是創建就全部分配空間,varchar是用多少分配多少,同時char由于最后不足的數據會用空格代替,因此如果存儲的數據末尾有空格,取值出來會把空格丟掉,會照成空格丟失,而varchar不會。同時char速度較快,varchar速度稍慢。

選取原則:

1.空間利用效率 四字成語表,char(4);微博140字,varchar(140)

2.速度 用戶名:char,

text 文本串,可以存較大的文本段,搜索速度比較慢,如果不是特別大,推薦用varchar,text不能設置默認值。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257661.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257661.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257661.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

XtraBackup全備與增量備份

一、XtraBackup安裝 下載地址&#xff1a;http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.8/source/ 安裝步驟&#xff1a; How to build XtraBackup on Linux Prerequisites -------------$ yum install cmake gcc gcc-c libaio libaio-devel automake autocon…

《大話設計模式》 國外資料

It is not easy to remember all design patterns. Here are some stories about design patterns which might help! Creational Singleton – Only one president in AmericaFactory – A factory that produces humanAbstract Factory – An abstract factory to produce CP…

DHCP基本配置

第一步 安裝 DHCP [rootlocalhost ~]# yum install dhcp dhcp-devel DHCP文件簡介 /etc/dhcp/dhcpd.conf #主配置文件&#xff0c;除了括號那欄&#xff0c;其它都要結尾 ; 這樣的分號 /var/lib/dhcpd/dhcpd.leases #IP地址租約在這里 第二步 配置 DHCP 主文件配置[rootlocalho…

python arcgis 圖書_arcgis python

本書作者是GIS發方面的知名作者&#xff0c;曾著有《JavaScript構建Web和ArcGIS Server應用實戰》(Building Web and Mobile ArcGIS Server Applications with JavaScript)一書。 本書內容易學易懂&#xff0c;幫助讀者成為GIS發高手。《面向ArcGIS的Python腳本編程》是一本指導…

scrapy 讓指定的spider執行指定的pipeline

處理scrapy中包括多個pipeline時如何讓spider執行制定的pipeline管道&#xff11;:創建一個裝飾器from scrapy.exceptions import DropItemimport functools當有多個pipeline時,判斷spider如何執行指定的管道 def check_spider_pipeline(process_item_method): functools.wr…

五大常用算法之三:貪心算法

一、基本概念&#xff1a; 所謂貪心算法是指&#xff0c;在對問題求解時&#xff0c;總是做出在當前看來是最好的選擇。也就是說&#xff0c;不從整體最優上加以考慮&#xff0c;他所做出的僅是在某種意義上的局部最優解。 貪心算法沒有固定的算法框架&#xff0c;算法設計的關…

python學習筆記列表和元組(三)

列表&#xff08;list&#xff09;是Python以及其他語言中最常用到的數據結構之一。Python使用使用中括號 [ ] 來解析列表。列表是可變的&#xff08;mutable&#xff09;——可以改變列表的內容。對應操作&#xff1a;1、查&#xff08;[]切片操作&#xff09; name [tom,張三…

python 函數的調用的時候參數的傳遞_Python Unittest;如何獲取調用函數時傳遞的參數?...

我試圖做一個單元測試來檢查這個python函數(dispatch)是否傳遞了正確的參數來處理\u結果。在在dispatch中調用處理“unu result”的函數時&#xff0c;有沒有方法“劫持”輸入參數&#xff1f;我沒有在調度函數中修改代碼的權限。在以下是單元測試中的want預覽&#xff1a;impo…

博客園客戶端UAP開發隨筆 -- App連接云端內容的橋梁:WebView

當你辛苦的從網上爬下來一篇文章之后&#xff0c;怎么在你的應用內展示這些包含HTML標記的文章&#xff1f;如果你使用的是Javascript開發應用&#xff0c;恭喜你&#xff0c;直接塞進頁面就可以了&#xff0c;同時說明你很熟悉頁面開發&#xff0c;而現在windows也支持這種方式…

listview與gridview點擊時的背景色取消

在布局文件里面的listview控件添加以下代碼android:listSelector"#00000000" //透明色 可以自己選擇點擊顏色轉載于:https://www.cnblogs.com/yulook/p/5219932.html

解決yum命令失效,vim: command not found

安裝python3模塊時&#xff0c;yum命令無法執行錯誤:**/usr/bin/yum: line 3: import: command not found/usr/bin/yum: line 4: try:: command not found/usr/bin/yum: line 5: import: command not found/usr/bin/yum: line 6: except: command not found/usr/bin/yum: line …

C4.5

C4.5是機器學習算法中的另一個分類決策樹算法&#xff0c;它是基于ID3算法進行改進后的一種重要算法&#xff0c;相比于ID3算法&#xff0c;改進有如下幾個要點&#xff1a; 用信息增益率來選擇屬性。ID3選擇屬性用的是子樹的信息增益&#xff0c;這里可以用很多方法來定義信息…

(周日賽)Sort the Array

題意&#xff1a;一段數字&#xff0c;逆置其中兩個使其遞增 DescriptionBeing a programmer, you like arrays a lot. For your birthday, your friends have given you an array a consisting of ndistinct integers. Unfortunately, the size of a is too small. You want a…

jqgrid學習(三)

1.修改jqgrid自帶的行編輯按鈕樣式 //jqgrid默認的行編輯樣式 {name : ,index : ,width : 70,fixed : true,sortable : false,resize : false,formatter : actions,},//修改每行的編輯按鈕圖標為目標樣式//當表格中數據加載完畢后&#xff0c;執行此方法 loadComplete : functi…

事件Event對象

事件event對象 當事件發生時&#xff0c;會向調用函數傳遞一個event對象&#xff0c;event對象記錄當前事件發生時的環境信息。 一個事件只能對應一個event對象&#xff0c;并且event對象是短暫存在的。 DOM中的event對象的使用方法 1、在HTML標記中&#xff0c;通過事件來調用…

解決mac osx下pip安裝ipython權限的問題

1pip install ipython --user -U下面是pip install gevent的錯誤提示&#xff0c; 又是 Operation not permitted … 12345#xiaorui.ccpip install gevent...raise Error, errorsError: [(/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_marker…

談談分布式事務之三: System.Transactions事務詳解[下篇]

在前面一篇給出的Transaction的定義中&#xff0c;信息的讀者應該看到了一個叫做DepedentClone的方法。該方法對用于創建基于現有Transaction對 象的“依賴事務&#xff08;DependentTransaction&#xff09;”。不像可提交事務是一個獨立的事務對象&#xff0c;依賴事務依附于…

HDU——2444 The Accomodation of Students

The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)                    Total Submission(s): 7086 Accepted Submission(s): 3167 Problem DescriptionThere are a group of studen…

iOS開發系列--觸摸事件、手勢識別、搖晃事件、耳機線控

-- iOS事件全面解析 概覽 iPhone的成功很大一部分得益于它多點觸摸的強大功能&#xff0c;喬布斯讓人們認識到手機其實是可以不用按鍵和手寫筆直接操作的&#xff0c;這不愧為一項偉大的設計。今天我們就針對iOS的觸摸事件&#xff08;手勢操作&#xff09;、運動事件、遠程控制…

關于Hyper-V備份的四大注意事項

盡管Hyper-V備份相對簡單&#xff0c;但備份管理員仍需注意四大問題。這四方面的問題在創建備份時可能不太重要&#xff0c;但在備份恢復時影響甚大。 1、對于虛擬機來說不僅意味著虛擬磁盤 就目前來看&#xff0c;企業在執行Hyper-V備份時最常見的誤區就是把虛擬機當做物理服務…