Mysql的學習記錄

2021-09-16 12:47:02 字數 2763 閱讀 4268

一.型別

1.整型(int)

有五個整型,它們的區別在於取值範圍及占用位元組的大小。

tinyint(乙個位元組):

有符號值:-128到127

無符號值:0到255

smallint(兩個位元組):

有符號值:-32768到32767

無符號值:0到65535

mediumnt(3):

有符號值:-8388608到8388607

無符號值:0到16777215

int(4):

有符號值:-2147483648到2147483647

無符號值:0到4294967295

bigint(8):

有符號值:足夠用一輩子了

無符號值:足夠用兩輩子了

可以從上面看出int整型作為id編號而已int(4)已經可滿足大部分的需求了(42億),要是編號可能超過42億那就直接bigint吧

二.浮點型

1.float:

用法:float[(m,d)]

ps:m是數字總位數,d是小數點後面的位數。

2.double:

用法:double[(m,d)]

float型儲存資料只能精確到大約7位小數字,所以使用float儲存精度要求高的資料是有風險的

三,日期時間型

1,year(位元組1)

2.time(位元組3)

3.date(位元組3) 1000-1-1到9999-12-30 足夠好幾輩子

4.datetime(位元組8)

5.timestamp(位元組4) 範圍1970 1-1 00:00 到2037 時間是把殺豬刀

四,字元型

1,char(m) :m是指位元組數 0<=m<=255位元組大小固定,效率高(現在這個社會還怕沒空間,直接上茶)

2.varchar(m):l+1個位元組 l<=m<=65535 s自動刪除空位,空間使用率高

五,列舉型

enum(data1,data2,…,datan)

data是以文字框的格式進行儲存的,即可以是字元也可以是數字。data只能選乙個

enum 中文名稱叫列舉型別,它的值範圍需要在建立表時通過列舉方式顯式指定,對 1~

255 個成員的列舉需要 1 個位元組儲存;對於 255~65535 個成員,需要 2 個位元組儲存。最多

允許有 65535 個成員。

set(data1,data2,…,datan)

data是以文字框的格式進行儲存的,即可以是字元也可以是數字。可以選多個data

set 和 enum 型別非常類似,也是乙個字串物件,裡面可以包含 0~64 個成員。根據

成員的不同,儲存上也有所不同。

1~8 成員的集合,佔 1 個位元組。

9~16 成員的集合,佔 2 個位元組。

17~24 成員的集合,佔 3 個位元組。

25~32 成員的集合,佔 4 個位元組。

33~64 成員的集合,佔 8 個位元組。

六.text與blob

言過其實text與blob就是加大版的char。

儲存較大文字的時候就選擇text和blob,區別在於text只能儲存字元資料,類似於文章日記流; blob能夠儲存二進位制資料,比如**。**

text、mediumtext、longtext

blob、mediumblob、longblob

ps:blob 和 text 值會引起一些效能問題,特別是在執行了大量的刪除操作時,建議定期使用optimizetable 功能對這類表進行碎片整理,避免因為「空洞」導致效能問題。

七,資料表

檢視資料庫:show databases;

檢視資料表: show tables [from db_name] +[like 「pattern」 | where expr]

建立資料庫:creat database data_name:

example:creat database testdatabase;

開啟資料庫:use database_name;

example:use testdatabase;

建立資料表:creat table [if not exists] table_name(colum_name data_type,…

) example: creat table tb1(username char(10) not null,age tinyint)

插入記錄:

insert [info] tbl_name[(col_name,…)] values(val,…)

修改表的內容用:

alter table tablename modify [column] column_defitnition [first] after col_name;

exmple: alter table name modify ename varchar(20);

增加表中column

alter table tablename add [column] columnname +型別;

example: alter table a add enum*** enum(「男」,「女」,「性別不明」);

刪除表中的column

alter table tablename drop [column] columnname;

持續更新中。。。。。

mysql學習記錄 MySQL學習記錄 2

in 子查詢 select from student where id in 1,2 not in 不在其中 select from student where id not in 1,2 is null 是空 select from student where age is null is not...

學習記錄 Mysql

mysql 是官方發布的 乙個為mysql設計的c 語言的api,這個api的作用是使工作更加簡單且容易。mysql 為mysql的c api的再次封裝,它用stl standard template language 開發並編寫,並為c 開發程式設計師提供象操作stl容器一樣方便的運算元據庫的一套...

Mysql 學習記錄

本篇部落格主要記錄一些開發中使用的到一些知識點。cdata 這是乙個xml語法 是的所有在cdata中的資料都不會被解析詳細描述參見 cdata語法 concat 函式用於將多個字串連線成乙個字串注意 如有任何乙個引數為null 則返回值為 null。或許有乙個或多個引數。如果所有引數均為非二進位制...