管理MySQL資料庫和表

2022-08-17 16:15:12 字數 3587 閱讀 1345

顯示資料庫

show databases;

選擇要使用的資料庫

在使用指定資料庫之前,必須通過使用use語句告訴mysql要使用哪個資料庫。

use database_name;

刪除資料庫

drop database語句

drop

database

[if exists

] database_name;

在本教程中,您將學習各種mysql表型別或儲存引擎。了解mysql中每個表型別的功能至關重要,以便您可以有效地使用它們來最大限度地提高資料庫的效能。

mysql為其表提供了各種儲存引擎,它們分別如下所示:

每個儲存引擎都有自己的優點和缺點。了解每個儲存引擎功能至關重要,並為表選擇最合適的功能,以最大限度地提高資料庫的效能。 在以下部分中,我們將討論每個儲存引擎及其功能,以便您可以決定使用哪個引擎合適。

myisam擴充套件了以前的isam儲存引擎。 myisam表針對壓縮和速度進行了優化。 myisam表也可以在平台和作業系統之間移植。

myisam表的大小可達256tb,這個資料裡是非常巨大的。 此外,myisam表可以壓縮為唯讀表以節省空間。 在啟動時,mysql會檢查myisam表是否有損壞,甚至在出現錯誤的情況下修復它們。myisam表不是事務安全的。

在mysql 5.5之前,myisam是建立表但是不用明確指定儲存引擎時的預設儲存引擎。 從版本5.5起,mysql使用innodb作為預設儲存引擎。

innodb表完全支援符合acid和事務。 它們也是效能最佳的。innodb表支援外來鍵,提交,回滾,前滾操作。innodb表的大小最多可達64tb

像myisam一樣,innodb表可以在不同的平台和作業系統之間移植。如果需要,mysql還會在啟動時檢查和修復innodb表。

merge表是將具有相似結構的多個myisam表組合到乙個表中的虛擬表。merge儲存引擎也被稱為mrg_myisam引擎。 merge表沒有自己的索引; 它會使用元件表的索。

使用merge表,可以在連線多個表時加快效能。mysql只允許您對merge表執行select,delete,update和insert操作。如果在merge表上使用drop table語句,則僅刪除merge規範。基礎表不會受到影響。

記憶體表儲存在記憶體中,並使用雜湊索引,使其比myisam**快。記憶體表資料的生命週期取決於資料庫伺服器的正常執行時間。記憶體儲存引擎以前稱為heap。

歸檔儲存引擎允許將大量用於歸檔目的的記錄儲存為壓縮格式以節省磁碟空間。 歸檔儲存引擎在插入時壓縮記錄,並在讀取時使用zlib庫對其進行解壓縮。

歸檔表只允許insert和select語句。archive表不支援索引,因此需要完整的表掃瞄來讀取行。

csv儲存引擎以逗號分隔值(csv)檔案格式儲存資料。 csv**提供了將資料遷移到非sql應用程式(如電子**軟體)中的便捷方式。

csv表不支援null資料型別。 此外,讀操作需要全表掃瞄。

federated儲存引擎允許從遠端mysql伺服器管理資料,而無需使用集群或複製技術。本地聯合表不儲存任何資料。 從本地聯合表查詢資料時,資料將從遠端聯合表自動拉出。

注:innodb自mysql 5.5之後成為預設儲存引擎。 innodb表型別帶來了諸如acid事務,引用完整性和崩潰恢復等關聯式資料庫管理系統的諸多好處。

在以前的版本中,mysql使用myisam作為預設儲存引擎。

要在create table語句中為表定義列,請使用以下語法:

column_name data_type[

size][

not null|null][

default value][

auto_increment

]

以上語法中最重要的組成部分是:

如果要將表的特定列設定為主鍵,則使用以下語法:

primary

key (col1,col2,...)

示例:可以使用create table語句建立這個tasks表,如下所示:

create

table

ifnot

exists

tasks (

task_id

int(11) not

null

auto_increment,

subject

varchar(45) default

null

, start_date date

default

null

, end_date date

default

null

, description

varchar(200) default

null,

primary

key(task_id)

) engine

=innodb;

在mysql中,序列是以公升序生成的整數列表,即1,2,3...許多應用程式需要序列來生成主要用於識別的唯一數字,例如:crm中的客戶id,hr中的員工編號,伺服器管理系統的裝置編號等。

要自動在mysql中建立序列,可以在列上設定auto_increment屬性,這通常是主鍵列。

使用auto_increment屬性時,將應用以下規則:

示例:以下語句建立乙個名為employees的表,其emp_no列為auto_increment列:

use

testdb;

create

table

employees(

emp_no

int(4) auto_increment primary

key,

first_name

varchar(50

), last_name

varchar(50

));

auto_increment列具有以下屬性:

在列上設定auto_increment屬性後,可以以各種方式重置自動增量值,例如使用alter table語句。

可以使用alter table語句來更改現有表的結構。alter table語句可用來新增列,刪除列,更改列的資料型別,新增主鍵,重新命名表等等。 以下說明了alter table語句語法:

alter

table table_name action1[

,action2,…

]

要更改現有表的結構:

MY SQL 管理資料庫和表

一 建立自定義的資料庫 語法如下 create database if notexists default character set 編碼格式 default collate 排序,分組,比較 建庫語句 建立乙個名為demo的資料庫,編碼為utf 8 create database demo de...

MySQL資料庫和表的管理

建立資料庫並指定字符集,mysql強烈建議utf8mb4 create database if not exists 資料庫名 character set 字符集 例子 create database if not exists db character set utf8mb4 注意 databas...

mysql資料庫表管理

複製資料庫 相同mysql伺服器 create table testbackup select from test 相同mysql伺服器,取源表中的某些字段 create table testbackup select field1,field2 from test 不同mysql伺服器 mysql...