MySql資料庫之表操作及基本資料型別

2021-08-19 17:44:09 字數 3387 閱讀 9098

1.建立表

create

table 表名(列名1 資料型別1,列名2 資料型別2...)charset 字符集

collate 校驗規則 engine 搜尋引擎;

字符集和校驗規則還有搜尋引擎可以不顯示給出,mysql預設的是utf8字符集和utf8_general_ci字元校驗規則和myisam搜尋引擎。不同的搜尋引擎,在建立表的時候檔案不一樣,當使用myisam搜尋引擎的時候,會生成 下面三個檔案。

user.frm:存放表的結構資訊,即表中各欄位及其型別。

user.myd:存放表中的資料。

user.myi:存放表的索引。

2.檢視表結構。

desc 表名;

表結構資訊有各欄位名稱,字段型別,是否允許為空,索引型別,預設值,和擴充資訊。

3.表的修改

(1)在表中新增乙個的字段

alter

table 表名 add 欄位1 資料型別 comment『字段描述資訊』 after 已存在字段;

comment像是注釋一樣,我們也可以指定這個新新增的字段在那乙個字段之後。

(2)修改表中某個字段屬性。

alter

table 表名 modify 欄位名 字段型別;

(3)刪除某乙個字段

alter

table 表名 drop 欄位名;

(4)更改表名

alter

table 表名 rename to 新錶名;

(5)更改某個欄位為新字段

alter

table 表名 change 欄位名 新欄位名 新字段型別;

注意:在修改新字段的時候,新字段必須完整定義。

(6)更改字符集

alter

table 表名 charset=指定字符集;

這是mysql中所有的資料型別,下來我們乙個個的進行分析。

這是這幾種資料型別表示的範圍。

我們來建立表看看。

我們建立了表b,他有乙個欄位num資料型別是tinyint。

我們接下來往表中插入資料。

當插入2的時候,插入成功,但是插入200,乙個越界資料的時候,mysql5.7會報錯。

當然在mysql中,也可以進行定義無符號型別,通過unsigned欄位。

這裡我們把num的資料型別修改為tinyint unsigned,為什麼這個時候200就可以插入成功了呢,因為,unsigned tinyint表示的返回是0到255.所以沒有超過範圍,其它型別同樣如此。

但是定義為無符號的時候,存在問題,應該避免兩個資料作減法,以為很有可能減出來乙個很大的數字。所以我們應該盡量避免定義為無符號資料型別。

bite型別又稱為位型別,範圍是1-64,不指定預設是1.

比如當這個欄位是性別的時候,性別只有男女之分,所以我們可以設定1個bit表示這兩種情況就行。

另外,bit欄位在顯示的時候,是使用的ascii表的形式。

float[(m,d)][unsigned]

m表示資料的所有位數,d表示小數佔的位數,所以整數佔位數就是m-d,例如float (4.2)表示的範圍就是-99.99到99.99。而且mysql在進行儲存的時候,會進行四捨五入。

這裡無符號小數和無符號整數的表示的範圍有所不同,例如 float unsigned (4,2)表示的範圍是0-99.99.

但是float在小數大於7位的時候就會造成資料精度的丟失,因此我們最好使用下面這種資料型別,decimal。

decimal和float的使,用方法是一樣的,但是decimal表示的精度更為高,因此當對資料的精度要求比較高的時候,我們應該使用decimal。

decimal的整數最大位m位65,支援小數的最大位是30,預設是(0,10)。

在mysql中,預設的utf8字符集編碼乙個漢字佔3個位元組。

定常字串:char(l)固定長度的字串,最大255.儲存空間固定。

變長字串:varchar(l),最大長度65535個位元組。

在varchar這種型別中,前三個位元組記錄著資料的大小,那麼只剩下65532個位元組用來存放資料,又說乙個漢字3個位元組,所以65532/3=21844,所以l的長度最大是21844.

為什麼存在著兩種字串型別呢?

因為他們之間的儲存空間和查詢效率各有優點,char型別一旦定義出來,不管插入資料的大小是多少,都按照定常儲存,而varchar會根據插入資料的長度,計算儲存長度,相比char更節省空間,但是查詢起來效率低,而char型別的搜尋效率高

datatime:』yyy-mmm-dd hh:ii:ss『 表示範圍從1000-9999,佔八字節。

data:日期』yyy-mmm-dd『,占用三個位元組

timestamp:時間戳,從2023年開始的和datatime資料型別相同的資料型別,在每次修改和刪除資料的時候,系統會自動維護修改這個資料。

enum:列舉

在c語言中,我們也有列舉型別,mysql中列舉型別跟它差不多。

enum(』『選項1』,『選項2』,』選項3『…);

處於效率考慮,實際儲存的都是「數字」,從1開始,一直到65535.

當我們插入列舉型別的時候,也可以新增對應的數字編號。

set:集合

set(『選項1』,『選項2』,『選項3』…);

列舉就好像提供了乙個選項,而set像是提供了多個選項。同樣為了效率,也是儲存的是「數字」

MySQL 資料庫 表基本操作

一 介紹 1 mysql是伺服器軟體,需要客戶端從遠端連線伺服器 1 mysql命令列客戶端 2 第三方客戶端 2 需要在環境變數path中新增bin目錄路徑 3 客戶端出現中文亂碼問題 解決方法 通知伺服器,客戶端使用的是什麼字符集 服務端得到客戶端字元後,可以正確的轉碼 set names gb...

MySQL基本操作之資料庫基本操作

mysql中建立資料庫的sql語法格式為 create database 資料庫名 其中,資料庫名不能與已經存在的資料庫同名。下圖建立資料庫test db 可以通過使用以下語句檢視資料庫的定義 show create database 資料庫名 g 其中,g 表示格式化輸出,可加可不加。如下圖所示 ...

MySQL資料庫介紹及基本操作

mysql資料庫分為兩種型別,系統資料庫和使用者資料庫兩大類。系統資料庫 系統資料庫是指安裝mysql服務後,附帶的一些資料庫,儲存mysql的系統資訊。使用者不能直接修改這些資料庫。使用者資料庫 使用者資料庫是使用者按照自己需求自己建立的資料庫及。資料庫基本操作,這裡只記錄命令列操作 啟動停止資料...