與表相關的基本概念什麼是表mysql中的表類似於檔案,其內的一行資料叫做記錄,記錄所對應的標題稱之為字段cid和caption就是表字段,下面的一行行內容就是記錄
儲存引擎介紹
與普通的檔案一樣,mysql的表也有各種各樣的型別,表的型別不同,所對應的訪問機制也不同。儲存引擎就是儲存資料,讀取資料,查詢資料,建立索引的實現方法,可以將其理解為是儲存和操作表的型別
mysql不同於其它關係型資料庫為我們提供了多種儲存引擎
mysql一些常用的儲存引擎
1.innodb儲存引擎
innodb是mysql最為常用的儲存引擎,其設計目標主要是面向聯機處理事務的應用,該儲存引擎採用了聚集的方式,每張表都按照主鍵的順序進行儲存,如果未定義主鍵,mysql取第乙個唯一索引(unique)而且只含非空列(not null)作為主鍵,innodb使用它作為聚簇索引。如果沒有這樣的列,innodb就自己產生乙個這樣的id值,它有六個位元組,而且是隱藏的,使其作為聚簇索引。
2.memory儲存引擎
該儲存引擎的資料都存放在記憶體中(重啟資料庫/資料庫崩潰都會導致表中記錄的丟失)--->常用於儲存臨時表資料,且預設使用的是雜湊索引,而非b+樹索引
3.blackhole儲存引擎
:又稱黑洞儲存引擎
4.myisam儲存引擎:不支援事物,其緩衝池內只儲存索引檔案,而不儲存資料檔案
使用不同的儲存引擎建立乙個innodb儲存引擎的表show engines\g #檢視所有支援的儲存引擎
show variables like 'storage_engine%'; #檢視正在使用的儲存引擎
發現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...