資料庫 庫表操作 儲存引擎

2022-05-17 07:30:41 字數 3986 閱讀 7684

一、庫操作:

mysql> show databases;

+--------------------+

| database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| test |

+--------------------+

1.系統資料庫:

information_schema: 虛擬庫,不占用磁碟空間,儲存的是資料庫啟動後的一些引數,如使用者表資訊、列資訊、許可權資訊、字元資訊等

performance_schema: mysql 5.5開始新增乙個資料庫:主要用於收集資料庫伺服器效能引數,記錄處理查詢請求時發生的各種事件、鎖等現象

mysql: 授權庫,主要儲存系統使用者的許可權資訊

test: mysql資料庫系統自動建立的測試資料庫

2.建立資料庫:

help create # 檢視幫助資訊

help create database

# ...語法:

create database 資料庫名 charset utf8;

create database db1 charset utf8;

命名規則:

可以由字母、數字、下劃線、@、#、$

區分大小寫

唯一性不能使用關鍵字如 create select

不能單獨使用數字

最長128位

3.資料庫相關操作:

檢視資料庫

show databases;

show create database db1;

select database();

選擇資料庫

use db1;

刪除資料庫

drop database db1;

修改資料庫

alter database db1 charset utf8;

alter database db1 charset gbk;

二、表操作:

1.什麼是儲存引擎:

mysql中建立的庫===>資料夾

庫中建立的表===>檔案

儲存引擎說白了就是如何儲存資料、如何為儲存的資料建立索引和如何更新、查詢資料等技術的實現方法。

因為在關聯式資料庫中資料的儲存是以表的形式儲存的,所以儲存引擎也可以稱為表型別(即儲存和操作此表的型別)

儲存引擎:表的型別 (表就是檔案) 有不同的檔案型別 .mp4 .txt

2.mysql支援得儲存引擎:

+----------------+--------+

1 row in set (0.00 sec)

1、innodb 儲存引擎

支援事務,其設計目標主要面向聯機事務處理(oltp)的應用。

2、myisam 儲存引擎

不支援事務、表鎖設計、支援全文索引,主要面向一些 olap 數 據庫應用。

在 mysql 5.5.8 版本之前預設的儲存引擎(除 windows 版本外)。

3、ndb 儲存引擎

ndb 儲存引擎是乙個集群儲存引擎,類似於 oracle 的 rac 集群。

4、memory 儲存引擎

memory 儲存引擎中的資料都存放在記憶體中,資料庫重 啟或發生崩潰,表中的資料都將消失。

5、infobright 儲存引擎

第三方的儲存引擎。其特點是儲存是按照列而非行的,因此非常 適合 olap 的資料庫應用。

其官方**是 上面有不少成功的資料 倉庫案例可供分析。

6、ntse 儲存引擎

網易公司開發的面向其內部使用的儲存引擎。

7、blackhole

黑洞儲存引擎,可以應用於主備複製中的分發主庫。

3.使用儲存引擎:

1.建表時指定

create table t1(id int,name char)

create table t2(id int,name char)engine=innodb;

create table t3(id int,name char(6))engine=memory;

2.在配置檔案中指定預設的儲存引擎

/etc/my.cnf

[mysqld]

default-storage-engine=innodb

innodb_file_per_table=1

3.檢視

[root@egon db1]# cd /var/lib/mysql/db1/

[root@egon db1]# ls

db.opt t1.frm t1.ibd t2.frm t2.ibd

4.練習

建立四個表,分別使用innodb,myisam,memory,blackhole儲存引擎,進行插入資料測試

[db1]> create table t1(id int)engine=innodb;

[db1]> create table t2(id int)engine=myisam;

[db1]> create table t3(id int)engine=memory;

[db1]> create table t4(id int)engine=blackhole;

[db1]> exit

1.windows:

資料夾中檢視到發現memory和blackhole兩種儲存引擎只有表結構,無資料

db.opt t1.frm t1.ibd t2.myd t2.myi t2.frm t3.frm t4.frm

測試後兩種儲存引擎是否無資料,重啟mysql檢視

停止mysql服務:

net stop mysql

啟動mysql服務:

net start mysql

memory,在重啟mysql或者重啟機器後,表內資料清空

blackhole,往表內插入任何資料,都相當於丟入黑洞,表內永遠不存記錄

2.linux:

[root@egon db1]# ls /var/lib/mysql/db1/ #發現後兩種儲存引擎只有表結構,無資料

db.opt t1.frm t1.ibd t2.myd t2.myi t2.frm t3.frm t4.frm

檢視mysql版本:

status; # \s

select version();

mysql> select version();

+-------------------------+

| version() |

+-------------------------+

| 5.7.21-0ubuntu0.16.04.1 |

+-------------------------+

1 row in set (0.00 sec)

# 重啟mysql服務:

# service mysqld restart

# service mysql restart (5.5.7版本命令)

# 或者:

# /etc/init.d/mysql restart

# 停止:

# service mysql stop

# 或者:/etc/init.d/mysql stop

# 啟動:

# service mysql start

# 或者:

# /etc/init.d/mysql start

#memory,在重啟mysql或者重啟機器後,表內資料清空

#blackhole,往表內插入任何資料,都相當於丟入黑洞,表內永遠不存記錄

資料庫儲存引擎

mysql中提到了儲存引擎這個概念。簡而言之,儲存引擎就是表的型別。資料庫的儲存引擎決定了表在計算機中的儲存方式。show engines語句可以檢視mysql資料庫支援的儲存引擎。innodb儲存引擎給mysql的表提供了事物,回滾,崩潰修復和多版本併發控制的事物安全。innodb是mysql上第...

資料庫儲存引擎

儲存引擎 處理表的處理器 1 基本操作 1 檢視所有的儲存引擎 show engines 2 檢視已有表的儲存引擎 show create table 表名 engine innodb 3 建立表時指定儲存引擎 create table 表名 engine myisam 4 工作中常用儲存引擎 in...

資料庫儲存引擎

資料庫引擎簡單來說就是乙個 資料庫發動機 當你訪問資料庫時,不管是手工訪問,還是程式訪問,都不是直接讀寫資料庫檔案,而是通過資料庫引擎去訪問資料庫檔案。以關係型資料庫為例,你發sql語句給資料庫引擎,資料庫引擎解釋sql語句,提取出你需要的資料返回給你。因此,對訪問者來說,資料庫引擎就是sql語句的...