mysql常用數據類型詳細說明及實例說明(學習筆記一)
1.Mysql 在windows下
Net start mysql[啟動]
Net stop mysql[停止]
Quit[退出mysql命令行]
\c[取消輸入的命令]
Select version(),current_date()
Mysql 版本號,現在的日期(年月日如2013-7-15)
Now()現在時間(年月日時分秒如 2013-07-15 08:29:56)
User() 用戶
2.當簡單的計算器
select sin( pi()/6),100/3;
3.不必全在一個行內給出一個命令,較長的命令可以輸入到多個行中。Mysql 通過尋找終止分號而不是輸入行的結束來決定語句在哪結束。
Mysql狀態
提示符
含義
Mysql>
準備好接受新命令
->
等待多行命令的下一行
‘>
等待下一行,等待以單引號(“’”)開始的字符串的結束
“
等待下一行,等待以雙引號(“’”)開始的字符串的結束
`
等待下一行,等待以反斜點(“`”)開始的字符串的結束
/*
等待下一行,等待以/*開始的註釋的結束
註意:當輸入’, “, `時若不輸入與之對應的結束符則無法輸入新的命令
4.Mysql常用列類型
①串數據數據類型
數據類型
說明
char
1-255個字符的定長串。他的長度必須在創建時指定否則Mysql假定為char(1)
varchar
長度可變,整體體最大長度是65,532字節如果創建時指定為varchar(n),則可存儲0-n個字符的變長串(n<=65535)字符集而定
tinytext
與text相同,最大長度為255字節
mediumtext
與text相同,但最大16k
text
最大長度為64k的變長文本
longtext
與text相同,但最大長度為4GB
enum
接受最多64k個串組成的一個預設定集合的某個串
set
接受最多64k個串組成的一個預設定集合的0個或多個串
數值數據類型
數據類型
說明
tinyint
整數值,支持-128-127(如果unsigned,為0-255)的數 1字節
smallint
整數值,支持-32768-32767(unsigned,0-65535) 2字節
mediumint
-8388608-8388607(undesigned 0-) 3字節 223
-223-223-1
int
231 4字節
bigint
8字節
float
單精度浮點值
double
雙精度浮點值
boolean
佈爾
decimal
精度可變的浮點值
peal
4字節的浮點值
bit
為字段,1-64位.(mysql5之前功能上等於tinyint)
日期和時間數據類型
數據類型
說明
DATE
表示1000-01-01至9999-12-31的日期,格式(YYYY-MM-DD)
DATETIME
DATE和TIME的組合
TIMESTAMP
功能上同DATETIME(但范圍較小)
TIME
格式 HH:MM:SS
YEAR
用2位數字表示,范圍是70(1970)-69(2069),4位表示,1901-2155
二進制數據
數據類型
說明
TINYBLOB
Blob最大長度為255字節
BLOB
64kb
MEDIUMBLOB
16MB
LONGBLOB
4GB
5.相關數據類型說明補充
列聲明中可選屬性 unsigned ,zerofill
Tinyint時默認tinyint(4)
隻有當給zerofill時括號裡給定長度才有意義
比如設定瞭zerofill tinyint(5) 插入1時則插入的是00001
小數型:
浮點型(不太標準),定點型(4或8個字節較復雜)
Float(M,D) M不算.的總位數,D小數點後的位數
比如float(6,4)范圍是
-9999.99-9999.99
688.896插入進去是688.90
1,3,7,9舍去
2,4,6,8,5進位
定點型:
Decimal(M,D)
插入時數據與存入的數據差異小
字符型:
Char(M) M均代表可容納的字符長度而非字節大小一個漢字z占3個字節而它仍是一個字符(據編碼而定),插入的數據小於規定長度時用空格補齊 取出時去掉尾部空格,如果插入的數據尾部就是帶有空格的,則一存一取後尾部空格會丟失,小於M時也占M個字符,利用率<=100%;
Varchar(M) 小於M個,最大有65535字節(ascii時),如果實存n個字符,n<=M,它必須還得用1-2個字節來記錄實際存多少,取時取多少,尾部有空格也不會丟失,利用率=n/(n+1~2字節)<100%,小於255記錄時用一個字節,大於時用2個字節
證明以上差異實例:
創建表t2
CREATE TABLE `t2` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` char(7) NOT NULL,
`pass` varchar(8) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
插入尾部帶空格的數據
insert into t2(name,pass)
value('hk ','hk ');
取出數據
select concat(name,'!'),concat(pass,'!') from t2;
會發現
Char與varchar區別
1.Char :1-255定長串 Varchar:0-65535
2.實占空間與利用效率不一樣
3.對尾部空格的處理
Char(可以不給長度默認1),varchar在表創建時都必須給定長度,tinytext類型的不能給定長度,text可以不給可以給定長度,text類型的數據不能設置默認值
修改列數據屬性
ALTER TABLE `t1` CHANGE `id` `id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT
alter table 表名 change 字段名 字段列聲明(包括字段名)
其中unsigned 必須放在類型之後