Mysql資料庫入門 列型別

2021-09-09 06:39:43 字數 3023 閱讀 5611

alter table my_int add int_6 tinyint unsigned first;
指定資料在顯示的時候,到底可以顯示多長位。

tinyint(3):表示最長可以顯示3位
只表示資料是否可以達到指定長度,但是不會自動滿足到指定的長度,如果想資料保持高位(顯示長度),還需要增加乙個zerofill(填充0)才可以

應用:日期顯示的格式對齊比如:01、02,12

浮點數:

又叫精度型,是一種可能丟失精度的資料型別,資料可能不準確(尤其是在超出範圍的時候),浮點型之所以能夠儲存較大的資料(不精確)原因就是利用儲存資料的位來儲存指數。

注:如果資料精度丟失,那麼浮點型是按照四捨五入的方式進行計算。

定點數:

- data 日期型別

長度:三個位元組,格式:yyyy-mm-dd,範圍:1000-01-01 到 9999-12-12,初始值:0000-00-00

- time 時間型別

長度:三個位元組,格式:hh-ii-ss,範圍:-838:59-59 到 838:59-59

*特性:

本質是用來表示時間區間,能表示的範圍比較大。

- datetime 日期時間型別

長度:8個位元組,格式:yyyy-mm-dd hh-ii-ss 範圍:1000-01-01 00:00:00 到 9999-12-12 23:59:59,初始值:0000-00-00 00:00:00

- timestamp 時間戳

便是從格林威治時間開始,格式依然是:yyyy-mm-dd hh-ii-ss

*特性:

1、不能為空,預設值為:當前時間戳對應的時間

2、當對應資料被更新的時候(這個修改不一定是本身),這個字段自動更新為當前最新的時間

3、php中有著強大的日期轉化函式,date將時間戳換成想要的格式,strtotime又可以將很多格式轉化成對應的時間戳,php通常不需要資料庫的協助來處理這麼複雜的時間日期。所以通常配合php的時候,時間的儲存通常使用時間戳(真正的),從而用整型來儲存。

- year 年型別

長度:乙個位元組,範圍:1900-2155 年,兩種插入方式,0~99和四位數的具體年

*特性:

插入兩位數字的時候,臨界點為69,70,當輸入69以下的數字時,系統時間為20+數字,如果是70以上,系統時間為19+數字。

- char和varchar

char:定長字元,指定長度後,系統會分配固定空間儲存資料

基本語法:char(l), l代表字元數(中英文一樣),l長度為0-255.

varchar:變長字元,系統會根據實際儲存的資料來自動分配對應的儲存空間

基本語法:varchar(l), l代表字元數(中英文一樣),l長度為0-65535.

特點:會增加額外開銷,用來記錄字元長度。儲存資料小於127;額外開銷1個位元組,如果大於127額外開銷2個位元組。

char和varchar區別

1、char系統一定會指定儲存空間,varchar根據資料來定空間

2、char的資料查詢效率比varchar高,varchar需要根據記錄數進行計算

- text和enum

text文字型別:tineytext:

長度:1個位元組,儲存容量:2的8次方+1

text:

長度:2個位元組,儲存容量:2的16次方+2

mediumtext:

長度:3個位元組,儲存容量:2的24次方+3

longtext:

長度:4個位元組,儲存容量:2的32次方+4

注意:1、在選對應的儲存文字時,不用刻意選擇text型別,系統會根據儲存的長度自動選擇適合的型別。

2、選擇字元儲存的時候,如果超過255個字元,那麼一定選擇text儲存。

enum列舉型別:

在插入資料時,預設值幾個項,這幾個項就是最終出現的資料結果

基本語法:enum(資料1,資料2…)

// 例項

create table my_enum(

gender enum('男','女','保密')

)charset utf8;

特性:

能規範資料輸入,保證資料一致性。不在列舉中的資料是無法插入到表中

節約儲存空間:實際儲存的資料並非字串,而是對應的下標。在插入資料時可使用對應的數值來進行。

enum(1=>'男',2=>'女',3=>'保密')

insert into my_enum values(3);

-set集合型別是一種將多個資料選項可以同時儲存的資料型別,本質是用二進位制數來標識指定的選項,1標識被選中,0非選中。

基本語法:set(『值1』,『值2』,『值3』…)

系統會提供多個位元組來進行儲存,系統會自動分配。

1個位元組:set只能8個選項

2個位元組:set只能16個選項

…以此類推

create table my_set(

hobby set('籃球','足球','羽毛球','橄欖球','地球')

)charset utf8;

insert into my_enum values(3);

insert into my_set values('籃球','橄欖球','地球');

MySql資料庫的列型別(字段型別)

mysql資料庫的表是乙個二維表,由乙個或多個資料列構成。每個資料列都有它的特定型別,該型別決定了mysql如何看待該列資料,我們可以把整型數值存放到字元型別的列中,mysql則會把它看成字串來處理。mysql中的列型別有三種 數值類 字串類和日期 時間類。從大類來看列型別和數值型別一樣,都是只有三...

資料庫的列型別

數值 從小到大排序 tinyint 十分小的資料 1個位元組的大小 smallint 較小的資料 2個位元組的大小 mediumint 中等大小的資料 3個位元組 int 標準的整數 4個位元組 常用的 bigint 較大的資料 8個位元組 float 浮點數 4個位元組 double 浮點數 8個...

MySQL資料庫 列約束

mysql可以對插入的資料進行特定的驗證,只有符合格式才允許插入,否則認為非法的插入,列如乙個人的性別只能是男或女 1 主鍵約束 primary key 首要的 主要的 鍵 不重複,乙個資料表只能有乙個,可以加快資料的查詢速度。不確定的可以用null,主鍵約束不允許為null 2 非空約束 not ...