程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL自學篇(三)

MySQL自學篇(三)

編輯:MySQL綜合教程

MySQL自學篇(三)


MySQL數據類型介紹

MySQL支持多種數據類型,主要有數值類型、日期類型、字符串類型

數值類型

MySQL主要提供的整數類型有:TINYINT/SMALLINT/MEDIUMINT/INT(INTEGER)/BIGINT

整數類型的屬性字段可以添加AUTO_INCREMENT自增約束條件。

1、MySQL中整數類型

整數類型的取值范圍

2、浮點數類型和定點數類型

MySQL中使用浮點數和定點數表示小數。浮點數類型有兩種,單精度浮點數(FLOAT)和雙精度浮點數(DOUBLE)。定點類型只有DECIMAL。浮點類型和定點類型都可以用(M,N)來表示,其中M成為精度,表示總共的位數;N成為標度,表示小數的位數。

不論是定點還是浮點數,如果用戶指定的精度超出精度范圍,則會四捨五入進行處理

范例:

創建表test1,其中字段x,y,z數據類型依次為FLOAT(5,1)/DOUBLE(5,1)/DECIMAL(5,1)向表中插入數據5.51,5.12,5.123

create table test1

(

x FLOAT(5,1),

y DOUBLE(5,1),

z DECIMAL(5,1)

);

插入數據:

insert into test1 values (5.51,5.12,5.123);

查看數據:

select * from test1;

3、日期與時間類型

MySQL中有多種表示日期的數據類型,主要有:DATETIME,DATE,TIMESTAMP,TIME,YEAR。

A、YEAR

YEAR類型是一個單字節類型用於表示年,在存儲是只要一個字節。可以使用各種格式指定YEAR的值

(1)以4位字符串或者4位數字格式表示的YEAR,范圍是1901-2155.輸入格式為:‘YYYY’或者YYYY。例如輸入‘2010’或2010

(2)以2位字符串格式表示的YEAR,范圍是‘00’——‘99’。‘00’——‘69’范圍的值分別被轉換為2000—2069和1970—1999范圍的YEAR值。插入超過取值范圍的值將被轉換為2000

(3)以2位數字表示的YEAR,范圍1~99.1~69和70~99范圍的值分別被轉換為2001~2069和1970~1999范圍的YEAR值。0將被轉換為0000而不是2000

范例:

創建數據表test2,定義數據類型為YEAR的字段y,插入2014,‘2014’,‘2166’

Insert into test2 values(2014),(‘2014’),(‘2166’);

B、TIME

TIME類型用在只需要時間信息的值,在存儲時需要3個字節。格式為‘HH:MM:SS’。HH表示小時;MM表示分鐘;SS表示秒。使用各種格式指定TI ME值。

(1)采用‘D HH:MM:SS’格式的字符串。

也可以使用下面任何一種非嚴格的語法:‘HH:MM:SS’/‘HH:MM’/‘D HH:MM’/‘D HH’/‘SS’。這裡D表示是日,可以去0-34之間的值。插入數據庫時,D被轉換為小時保存,格式為“D*24+HH”

(2)采用‘HHMMSS’格式的,沒有間隔符的字符串或者HHMMSS格式的數值。

范例:

創建test3表,定義數據類型為TIME的字段t,向其中插入‘11:05:05’,‘23:23’,‘2 10:10’,‘3 02’,‘10’。

insert into test3 values ('11:05:05'),('23:23'),('2 10:10');

C、DATE類型

DATE類型用在僅僅需要日期的時候,沒有時間部分,在存儲時需要3個字節。日期格式為‘YYYY-MM-DD’

(1)以‘YYYY-MM-DD’或者‘YYYYMMDD’字符串格式表示日期。

(2)以‘YY-MM-DD’或者‘YYMMDD’字符串表示日期,在這裡YY表示兩位的年。‘00~69’范圍轉換為‘2000~2069’;‘70~99’范圍轉換為‘1970~1999’。

(3)以YY-MM-DD或者YYMMDD格式表示日期。與前面類似,00-69表示2000-2069;70-99轉換為1970-1999

(4)使用CURRENT_DATE或者NOW()插入當前系統日期。

范例:

創建數據表test4,定義數據類型DATE的字段為d,插入‘YYYY-MM-DD’和‘YYYYMMDD’字符串格式的日期

insert into test4 values ('2014-12-11'),(20141211);

插入當前系統時間:

insert into test4 values (current_date),(now());

D、DATETIME

DATETIME類型用在需要同時包含日期和時間的值。在存儲時需要8字節。日期格式為‘YYYY-MM-DD HH:MM:SS’,在給DATETIME類型的字段賦值時,可以使用字符串類型或數字類型的數據插入。

(1)以‘YYYY-MM-DD HH:MM:SS’或者’YYYYMMDDHHMMSS’字符串格式的值,其取值范圍‘1001-01-01 00:00:00’~‘9999-12-3 23:59:59’

(2)以‘YY-MM-DD HH:MM:SS’或者‘YYMMDDHHMMSS’字符串格式表示日期。

(3)以YYYYMMDDHHMMSS或者YYMMDDHHMMSS的數字格式表示日期和時間

范例:

insert into test5 values ('2014-12-11 15:27:12'),('20141211152712'),(20141211152712);

E、TIMESTAMP

TIMESTAMP顯示格式與DATETIME相同,顯示寬度固定在19個字符,日期格式為YYYY-MM-DD HH:MM:SS,存儲時需要4字節。但是TIMESTAMP列的取值范圍小於DATETIME的取值范圍,為‘1970-01-01 00:00:01’UTC ~‘2038-01-19 03:14:07’UTC。UTC為世界標准時間。

范例:

創建test7,定義數據類型為TIMESTAMP的字段ts,向表中插入值‘19950101010101’,‘950505050505’,now().

insert into test6 values ('19950101010101'),(950505050505),(now());

4、字符串類型

MySQL中字符串類型指的:CHAR,VARCHAR,BINARY,VARBINARY,BLOB,TEXT,ENUM,SET

1、CHAR和VARCHAR類型

CHAR(M)為固定長度字符串,在定義時指定字符串列長。保存時在右側填充空格以達到指定的長度。M表示列長,范圍0~255個字符。例如:CH AR(4)定義了一個固定長度的字符串列,其包含的字符個數最大為4.當檢索到CHAR值時,尾部的空空格將被刪除。

VARCHAR(M)是長度可變的字符串,M表示列最大長度,M的范圍0~65535。VARCHAR的最大實際長度由最長的行的大小和使用的字符集確定,而其實際占用的空間為字符串的實際長度+1。例如VARCHAR(50)定義了一個最大長度為50的字符串。如果插入的字符串只有10個字符,則實際存儲的字符串為10個字符串+一個結束字符串。VARCHAR在值保存和檢索時,尾部的空格仍保留。

2、TEXT類型

TEXT列保存非二進制字符串,如文章,評論等。當保存或查詢TEXT列的值時,不刪除尾部空格。TEXT類型分為4中:TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT。不同的TEXT類型的存儲空間和數據長度不同。

(1)TINYTEXT最大長度為255字符的TEXT列

(2)TEXT最大長度為65535字符的TEXT列

(3)MEDIUMTEXT最大長度為16777215字符的TEXT列

(4)LONGTEXT最大長度為4294967295(4GB)字符的列

3、ENUM類型

ENUM是一個字符串對象,其值為表創建時在列規定中枚舉的一列值。語法格式如下:

字段名 ENUM(‘值1’,‘值2’...‘值n’)

字段名指將要定義的字段,值n指枚舉列表中的第n個值。ENUM類型的字段在取值時,只能在指定的枚舉列表中取值,而且一次只能取一個。如果創建的成員中有空格時,其尾部的空格將自動被刪除。ENUM值在內部用整數表示,每個枚舉值均有一個索引:列表值所允許的成員值從1開始編號,MySQL存儲的就是這個索引編號。枚舉最多可以有65535個元素。

例如:定義ENUM類型的列(‘first’,’second’,’third’),該列可以取的值和每個值的索引如下:

 

索引

NULL

NULL

0

first

1

second

2

third

3

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved