python之路 MySQL 表的相關操作

2021-08-27 14:13:55 字數 3203 閱讀 2450

與表相關的基本概念什麼是表mysql中的表類似於檔案,其內的一行資料叫做記錄,記錄所對應的標題稱之為字段

cid和caption就是表字段,下面的一行行內容就是記錄

儲存引擎介紹

與普通的檔案一樣,mysql的表也有各種各樣的型別,表的型別不同,所對應的訪問機制也不同。儲存引擎就是儲存資料,讀取資料,查詢資料,建立索引的實現方法,可以將其理解為是儲存和操作表的型別

mysql不同於其它關係型資料庫為我們提供了多種儲存引擎

mysql一些常用的儲存引擎

1.innodb儲存引擎

innodb是mysql最為常用的儲存引擎,其設計目標主要是面向聯機處理事務的應用,該儲存引擎採用了聚集的方式,每張表都按照主鍵的順序進行儲存,如果未定義主鍵,mysql取第乙個唯一索引(unique)而且只含非空列(not null)作為主鍵,innodb使用它作為聚簇索引。如果沒有這樣的列,innodb就自己產生乙個這樣的id值,它有六個位元組,而且是隱藏的,使其作為聚簇索引。

2.memory儲存引擎

該儲存引擎的資料都存放在記憶體中(重啟資料庫/資料庫崩潰都會導致表中記錄的丟失)--->常用於儲存臨時表資料,且預設使用的是雜湊索引,而非b+樹索引

3.blackhole儲存引擎

:又稱黑洞儲存引擎

4.myisam儲存引擎:不支援事物,其緩衝池內只儲存索引檔案,而不儲存資料檔案

show engines\g  #檢視所有支援的儲存引擎

show variables like 'storage_engine%'; #檢視正在使用的儲存引擎

使用不同的儲存引擎建立乙個innodb儲存引擎的表

發現innodb儲存引擎將表分為兩個檔案儲存,乙個frm表用於儲存表結構,乙個ibd用於儲存表索引和表的資料

建立乙個myisam儲存引擎的表

發現該儲存引擎將表分為三個檔案儲存,frm為儲存表結構,myd為儲存myisam的資料,myi為儲存索引

建立乙個blackhole儲存引擎和memory儲存引擎

create table t3(id int)engine=memory;

create table t4(id int)engine=blackhole;

都只有表結構

表的增,刪,改,查建立表

create table 表名(

欄位名1 型別[(寬度) 約束條件],

欄位名2 型別[(寬度) 約束條件],

欄位名3 型別[(寬度) 約束條件]

);eg:

create table t1(

id int primary key auto_increment, # 一般將id欄位設定為主鍵

name varchar(15),

age int,

gender enum('male','female')

)

其中

欄位名(唯一),型別為必填

寬度,約束條件為可選(約束條件是在資料型別之外對欄位新增的額外限制)

檢視表

# 檢視表結構,沒有執行庫名,預設當前庫

desc 庫名.表名;

# 檢視詳細表結構

show create table 庫名.表名;

show create table\g 庫名.表名;

# 檢視當前庫中的所有表名

show tables;

修改表

# 新增乙個字段

alter table 表名 add 欄位名 字段型別;

alter table 表名 add 欄位名 字段型別 first;

alter table 表名 add 欄位名 字段型別 after 欄位名;

# 修改字段完整性約束寬度

alter table 表名 modify 欄位名 型別();

# 修改欄位名/型別

alter table 表名 change 原欄位名 新欄位名 型別();

alter table 表名 change 原欄位名 新欄位名 新資料型別();

# 刪除字段

alter table 表名 drop 欄位名;

# 修改表名

alter table 表名 rename 新錶名

刪除表

drop table 表名
複製表

# 複製表結構 + 記錄(key不會複製:主鍵,外來鍵,索引)

create table 新建表名 select * from 目標表名;

# 只複製表結構

create table 新建表名 select * from 目標表名 where 1=3;

python之路 MySQL 庫的相關操作

系統資料庫 information schema 虛擬庫,不占用磁碟空間,儲存的是資料庫啟動後的一些引數,如使用者表資訊 列資訊 許可權資訊 字元資訊等 performance schema mysql 5.5開始新增乙個資料庫 主要用於收集資料庫伺服器效能引數,記錄處理查詢請求時發生的各種事件 鎖...

python之路 關於MySQL(1)

什麼是資料庫 資料庫 database 是按照資料節後來組織 儲存和管理資料的倉庫。每個資料庫都有乙個或多個不同的api用於建立,訪問,管理,搜尋和複製所儲存的資料 我們也可以將資料儲存在檔案中,但是在檔案中讀寫速度相對較慢。所以,現在我們使用關係型資料庫管理系統 rdbms 來儲存和管理的大資料量...

Python之路 關於MySQL(2)

關於對mysql中表內容的一些操作 增 insert into 表 列名,列名.values 值,值,值.insert into 表 列名,列名.values 值,值,值.值,值,值.insert into 表 列名,列名.select 列名,列名.from 表 刪 delete from 表 de...