導航:首頁 > 程序命令 > mysqlshow命令詳解

mysqlshow命令詳解

發布時間:2023-05-30 19:29:11

㈠ 什麼是mysqlshow

它擔當SHOW SQL 語句的命令行介面的作用。 mysqlshow用法如下: mysqlshow [option] [db_name [tbl_name [col_name]]] 如果沒有指定資料庫名, mysqlshow 將列出伺服器主機中所有資料庫。如果指定資料庫名但未指定表名,則列出該資料庫中所有的表。如果資料庫和表名都被指定,但未指灶鬧腔定列名,則列出該表的所有列。如果所有的名字都被指定, mysqlshow 將顯示有關指定列彎侍的信息。 如果最後的參數中包含外殼程序通配符(‘*’或‘?’),輸出結果隱衫將被限制為與該通配符相配的值。‘*’和‘?’被視為LINK 操作符的‘%’和‘_’SQL 通配符。 mysqlshow專有選項如下: 一、-k, --keys 顯示除表列信息外的表索引信息。該選項只在指定表名時才有意義。 二、-i, --status 顯示由SHOW TABLE STATUS 語句顯示的相同類型的表的信息。--status 選項是在MySQL 3.23 中引入的。

㈡ mysql資料庫執行sql語句怎麼寫

Mysql常用命令詳解

Mysql安裝目錄
資料庫目錄
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相關命令
/usr/bin(mysqladmin mysqlmp等命令)
啟動腳本
/etc/init.d/mysql(啟動腳本文件mysql的目錄)

系統管理
連接MySQL
格式:
mysql -h 主機地址 -u用戶名 -p用戶密碼
例 1:連接到本機上的 MySQL。
hadoop@ubuntu:~$ mysql
-uroot -pmysql;

例 2:連接到遠程主機上的 MYSQL。
hadoop@ubuntu:~$ mysql -h
127.0.0.1 -uroot -pmysql;

修改新密碼
在終端輸入:mysql -u用戶名 -p密碼,回車進入Mysql。
>
use mysql;
> update user set password=PASSWORD('新密碼') where
user='用戶名';
> flush privileges; #更新許可權
> quit; #退出

增加新用戶
格式:grant select on 資料庫.* to
用戶名@登錄主機 identified by '密碼'
舉例:
例 1:增加一個用戶 test1 密碼為
abc,讓他可以在任何主機上登錄,並對所有資料庫有
查詢、插入、修改、刪除的許可權。首先用以 root 用戶連入
MySQL,然後鍵入以下命令:
mysql>grant select,insert,update,delete on *.* to
root@localhost identified by 'mysql';
或者
grant all privileges on *.* to
root@localhost identified by 'mysql';
然後刷新許可權設置。
flush privileges;


2:如果你不想 root 有密碼操作資料庫「mydb」里的數據表,可以再打一個命令將密碼消掉。
grant
select,insert,update,delete on mydb.* to root@localhost identified by
'';

刪除用戶
hadoop@ubuntu:~$ mysql
-u用戶名 -p密碼
mysql>delete from user where user='用戶名' and
host='localhost';
mysql>flush privileges;
//刪除用戶的資料庫
mysql>drop
database dbname;

資料庫操作
顯示所有的資料庫
mysql> show databases;(注意:最後有個
s)

創建資料庫
mysql> create database
test;

連接資料庫
mysql> use
test;

查看當前使用的資料庫
mysql> select
database();

當前資料庫包含的表信息
mysql>
show tables; (注意:最後有個 s)

刪除資料庫
mysql> drop database
test;

表操作
備注:操作之前使用「use
<資料庫名>」應連接某個資料庫。
建表
命令:create
table <表名> (<欄位名 1> <類型 1> [,..<欄位名 n> <類型
n>]);
例子:
mysql> create table MyClass(
> id int(4) not null
primary key auto_increment,
> name char(20) not null,
> sex int(4)
not null default '0',
> degree double(16,2));

獲取表結構
命令: desc 表名,或者show columns from
表名
例子:
mysql> describe MyClass
mysql> desc MyClass;
mysql>
show columns from MyClass;

刪除表
命令:drop table <表名>
例如:刪除表名為
MyClass 的表
mysql> drop table MyClass;

插入數據
命令:insert into <表名> [( <欄位名
1>[,..<欄位名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql> insert
into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang',
96.59);

查詢表中的數據
查詢所有行
mysql>
select * from MyClass;

查詢前幾行數據
例如:查看錶 MyClass 中前 2 行數據
mysql>
select * from MyClass order by id limit 0,2;
或者
mysql> select * from
MyClass limit 0,2;

刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表
MyClass 中編號為 1 的記錄
mysql> delete from MyClass where id=1;

修改表中數據
命令:update 表名 set 欄位=新值,... where
條件
mysql> update MyClass set name='Mary' where id=1;

在表中增加欄位
命令:alter table 表名 add 欄位 類型
其他;
例如:在表 MyClass 中添加了一個欄位 passtest,類型為 int(4),默認值為 0
mysql> alter
table MyClass add passtest int(4) default '0'

更改表名
命令:rename table 原表名 to 新表名;
例如:在表
MyClass 名字更改為 YouClass
mysql> rename table MyClass to
YouClass;

更新欄位內容
命令:update 表名 set
欄位名 = 新內容
update 表名 set 欄位名 = replace(欄位名, '舊內容', '新內容');
例如:文章前面加入 4
個空格
update article set content=concat(' ', content);

資料庫導入導出
從資料庫導出資料庫文件
使用「mysqlmp」命令
首先進入 DOS
界面,然後進行下面操作。
1)導出所有資料庫
格式:mysqlmp -u [資料庫用戶名] -p
-A>[備份文件的保存路徑]

2)導出數據和數據結構
格式:mysqlmp -u [資料庫用戶名] -p
[要備份的資料庫名稱]>[備份文件的保存路徑]
舉例:
例 1:將資料庫 mydb 導出到 e:\MySQL\mydb.sql
文件中。
打開開始->運行->輸入「cmd」,進入命令行模式。
c:\> mysqlmp -h localhost -u
root -p mydb >e:\MySQL\mydb.sql
然後輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。


2:將資料庫 mydb 中的 mytable 導出到 e:\MySQL\mytable.sql 文件中。
c:\> mysqlmp -h
localhost -u root -p mydb mytable>e:\MySQL\mytable.sql

例 3:將資料庫 mydb
的結構導出到 e:\MySQL\mydb_stru.sql 文件中。
c:\> mysqlmp -h localhost -u root -p
mydb --add-drop-table >e:\MySQL\mydb_stru.sql
備注:-h localhost
可以省略,其一般在虛擬主機上用。

3)只導出數據不導出數據結構
格式:
mysqlmp -u [資料庫用戶名] -p -t
[要備份的資料庫名稱]>[備份文件的保存路徑]

4)導出資料庫中的Events
格式:mysqlmp -u [資料庫用戶名] -p
-E [資料庫用戶名]>[備份文件的保存路徑]

5)導出資料庫中的存儲過程和函數
格式:mysqlmp -u [資料庫用戶名]
-p -R [資料庫用戶名]>[備份文件的保存路徑]

從外部文件導入資料庫中
1)使用「source」命令
首先進入「mysql」命令控制台,然後創建資料庫,然後使用該資料庫。最後執行下面操作。
mysql>source
[備份文件的保存路徑]

2)使用「<」符號
首先進入「mysql」命令控制台,然後創建資料庫,然後退出 MySQL,進入 DOS
界面。最後執行下面操作。
mysql -u root –p < [備份文件的保存路徑]

㈢ MySQL資料庫存儲引擎詳解

存儲引擎是什麼?

MySQL中的數據用各種不同的技術存儲在文件(或者內存)中 這些技術中的每一種技術都使用不同的存儲機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和鏈掘脊能力 通過選擇不同的技術 你能夠獲得額外的速度或者功能 從而改善你的應用的整體功能

例如 如果你在研究大量的臨時數據 你也許需要使用內存存儲引擎 內存存儲引擎能夠在內存中存儲所有的表格數據 又或者 你也許需要一個支持事務處理的資料庫(以確保事務處理不成功時數據的回退能力)

這些不同的技術以及配套的相關功能在MySQL中被稱作存儲引擎(也稱作表類型) MySQL默認配置了許多不同的存儲引擎 可以預先設置或者在MySQL伺服器中啟用 你可以選擇適用於伺服器 資料庫和表格的存儲引擎 以便在選擇如何存儲你的信息 如何檢索這些信息以及你需要你的數據結合什麼性能和功能的時候為你提供最大的靈活性

選擇如何存儲和檢索你的數據的這種靈活性是MySQL為什麼如此受歡迎的主要原因 其它資料庫系統(包括大多數商業選擇)僅支持一種類型的數據存儲 遺憾的是 其它類型的資料庫解決方案採取的 一個尺碼滿足一切需求 的方式意味著你要麼就犧牲一些性能 要麼你就用幾個小時甚至幾天的時間詳細調整你的資料庫 使用MySQL 我們僅需要修改我們使用的存儲引擎就可以了

在這篇文章中 我們不準備集中討論不同的存儲引擎的技術方面的問題(盡管我們不可避免地要研究這些因素的某些方面) 相反 我們將集中介紹這些不同的引擎分別最適應哪種需求和如何啟用不同的存儲引擎 為了實現這個目的 在介紹每一個存儲引擎的具體情況之前散冊 我們必須要了解一些基本的問題

如何確定有哪些存儲引擎可用

你可以在MySQL(假設是MySQL伺服器 以上版本)中使用顯示引擎的命令得到一個可用引擎的列表

    mysql>showengines; + + + + |Engine|Support|Comment| + + + + |MyISAM|DEFAULT|DefaultengineasofMySQL withgreatperformance| |HEAP|YES|AliasforMEMORY| |MEMORY|YES|Hashbased storedinmemory usefulfortemporarytables| |MERGE|YES|| |MRG_MYISAM|YES|AliasforMERGE| |ISAM棚滲|NO|Obsoletestorageengine nowreplacedbyMyISAM| |MRG_ISAM|NO|Obsoletestorageengine nowreplacedbyMERGE| |InnoDB|YES|Supportstransactions row levellocking andforeignkeys| |INNOBASE|YES|AliasforINNODB| |BDB|NO|Supportstransactionsandpage levellocking| |BERKELEYDB|NO|AliasforBDB| |NDBCLUSTER|NO|Clustered fault tolerant memory basedtables| |NDB|NO|AliasforNDBCLUSTER| |EXAMPLE|NO|Examplestorageengine| |ARCHIVE|NO|Archivestorageengine| |CSV|NO|CSVstorageengine| + + + + rowsinset( sec)

這個表格顯示了可用的資料庫引擎的全部名單以及在當前的資料庫伺服器中是否支持這些引擎

對於MySQL 以前版本 可以使用mysql> show variables like have_% (顯示類似 have_% 的變數):

    mysql>showvariableslike have_% ; + + + |Variable_name|Value| + + + |have_bdb|YES| |have_crypt|YES| |have_innodb|DISABLED| |have_isam|YES| |have_raid|YES| |have_symlink|YES| |have_openssl|YES| |have_query_cache|YES| + + + rowsinset( sec)

你可以通過修改設置腳本中的選項來設置在MySQL安裝軟體中可用的引擎 如果你在使用一個預先包裝好的MySQL二進制發布版軟體 那麼 這個軟體就包含了常用的引擎 然而 需要指出的是 如果你要使用某些不常用的引擎 特別是CSV RCHIVE(存檔)和BLACKHOLE(黑洞)引擎 你就需要手工重新編譯MySQL源碼

使用一個指定的存儲引擎

你可以使用很多方法指定一個要使用的存儲引擎 最簡單的方法是 如果你喜歡一種能滿足你的大多數資料庫需求的存儲引擎 你可以在MySQL設置文件中設置一個默認的引擎類型(使用storage_engine 選項)或者在啟動資料庫伺服器時在命令行後面加上 default storage engine或 default table type選項

更靈活的方式是在隨MySQL伺服器發布同時提供的MySQL客戶端時指定使用的存儲引擎 最直接的方式是在創建表時指定存儲引擎的類型 向下面這樣:

CREATE TABLE mytable (id int title char( )) ENGINE = INNODB

你還可以改變現有的表使用的存儲引擎 用以下語句:

ALTER TABLE mytable ENGINE = MyISAM

然而 你在以這種方式修改表格類型的時候需要非常仔細 因為對不支持同樣的索引 欄位類型或者表大小的一個類型進行修改可能使你丟失數據 如果你指定一個在你的當前的資料庫中不存在的一個存儲引擎 那麼就會創建一個MyISAM(默認的)類型的表

各存儲引擎之間的區別

為了做出選擇哪一個存儲引擎的決定 我們首先需要考慮每一個存儲引擎提供了哪些不同的核心功能 這種功能使我們能夠把不同的存儲引擎區別開來 我們一般把這些核心功能分為四類:支持的欄位和數據類型 鎖定類型 索引和處理 一些引擎具有能過促使你做出決定的獨特的功能 我們一會兒再仔細研究這些具體問題

欄位和數據類型

雖然所有這些引擎都支持通用的數據類型 例如整型 實型和字元型等 但是 並不是所有的引擎都支持其它的欄位類型 特別是BLOG(二進制大對象)或者TEXT文本類型 其它引擎也許僅支持有限的字元寬度和數據大小

這些局限性可能直接影響到你可以存儲的數據 同時也可能會對你實施的搜索的類型或者你對那些信息創建的索引產生間接的影響 這些區別能夠影響你的應用程序的性能和功能 因為你必須要根據你要存儲的數據類型選擇對需要的存儲引擎的功能做出決策

鎖定

資料庫引擎中的鎖定功能決定了如何管理信息的訪問和更新 當資料庫中的一個對象為信息更新鎖定了 在更新完成之前 其它處理不能修改這個數據(在某些情況下還不允許讀這種數據)

鎖定不僅影響許多不同的應用程序如何更新資料庫中的信息 而且還影響對那個數據的查詢 這是因為查詢可能要訪問正在被修改或者更新的數據 總的來說 這種延遲是很小的 大多數鎖定機制主要是為了防止多個處理更新同一個數據 由於向數據中插入信息和更新信息這兩種情況都需要鎖定 你可以想像 多個應用程序使用同一個資料庫可能會有很大的影響

不同的存儲引擎在不同的對象級別支持鎖定 而且這些級別將影響可以同時訪問的信息 得到支持的級別有三種:表鎖定 塊鎖定和行鎖定 支持最多的是表鎖定 這種鎖定是在MyISAM中提供的 在數據更新時 它鎖定了整個表 這就防止了許多應用程序同時更新一個具體的表 這對應用很多的多用戶資料庫有很大的影響 因為它延遲了更新的過程

頁級鎖定使用Berkeley DB引擎 並且根據上載的信息頁( KB)鎖定數據 當在資料庫的很多地方進行更新的時候 這種鎖定不會出現什麼問題 但是 由於增加幾行信息就要鎖定數據結構的最後 KB 當需要增加大量的行 也別是大量的小型數據 就會帶來問題

行級鎖定提供了最佳的並行訪問功能 一個表中只有一行數據被鎖定 這就意味著很多應用程序能夠更新同一個表中的不同行的數據 而不會引起鎖定的問題 只有InnoDB存儲引擎支持行級鎖定

建立索引

建立索引在搜索和恢復資料庫中的數據的時候能夠顯著提高性能 不同的存儲引擎提供不同的製作索引的技術 有些技術也許會更適合你存儲的數據類型

有些存儲引擎根本就不支持索引 其原因可能是它們使用基本表索引(如MERGE引擎)或者是因為數據存儲的方式不允許索引(例如FEDERATED或者BLACKHOLE引擎)

事務處理

事務處理功能通過提供在向表中更新和插入信息期間的可靠性 這種可靠性是通過如下方法實現的 它允許你更新表中的數據 但僅當應用的應用程序的所有相關操作完全完成後才接受你對表的更改 例如 在會計處理中每一筆會計分錄處理將包括對借方科目和貸方科目數據的更改 你需要要使用事務處理功能保證對借方科目和貸方科目的數據更改都順利完成 才接受所做的修改 如果任一項操作失敗了 你都可以取消這個事務處理 這些修改就不存在了 如果這個事務處理過程完成了 我們可以通過允許這個修改來確認這個操作

lishixin/Article/program/MySQL/201311/29301

㈣ mysql 常用命令手冊

之前介紹了一系列的mysql基礎知識,今天我們將MySQL常用的功能命令整理出來,供大家參考使用!
1.導出整個資料庫
mysqlmp -u 用戶名 -p –default-character-set=latin1 資料庫名 > 導出的文件名(資料庫默認編碼是latin1)
mysqlmp -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.導出一個表
mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名
mysqlmp -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.導出一個資料庫結構
mysqlmp -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 沒有數據 –add-drop-table 在每個create語句之前增加一個drop table
4.導入資料庫
A:常用source 命令
進入mysql資料庫控制台,
如mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source wcnc_db.sql
B:使用mysqlmp命令
mysqlmp -u username -p dbname < filename.sql
C:使用mysql命令
mysql -u username -p -D dbname < filename.sql
啟動與退出
1、進入MySQL:啟動MySQL Command Line Client(MySQL的DOS界面),直接輸入安裝時的密碼即可。此時的提示符是:mysql>
2、退出MySQL:quit或exit
庫操作
1、創建資料庫
命令:create database <資料庫名>
例如:建立一個名為sqlroad的資料庫
mysql> create database sqlroad;
2、顯示所有的資料庫
命令:show databases (注意:最後有個s)
mysql> show databases;
3、刪除資料庫
命令:drop database <資料庫名>
例如:刪除名為 sqlroad的資料庫
mysql> drop database sqlroad;
4、連接資料庫
命令:use <資料庫名>
例如:如果sqlroad資料庫存在,嘗試存取它:
mysql> use sqlroad;
屏幕提示:Database changed
5、查看當前使用的資料庫
mysql> select database();
6、當前資料庫包含的表信息:
mysql> show tables; (注意:最後有個s)
表操作,操作之前應連接某個資料庫
1、建表
命令:create table <表名> ( <欄位名> <類型> [,..<欄位名n> <類型n>]);
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default 』′,
> degree double(16,2));
2、獲取表結構
命令:desc 表名,或者show columns from 表名
mysql>DESCRIBE MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
3、刪除表
命令:drop table <表名>
例如:刪除表名為 MyClass 的表
mysql> drop table MyClass;
4、插入數據
命令:insert into <表名> [( <欄位名>[,..<欄位名n> ])] values ( 值 )[, ( 值n )]
例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號為的名為Tom的成績為.45, 編號為 的名為Joan 的成績為.99,編號為 的名為Wang 的成績為.5.
mysql> insert into MyClass values(1,』Tom』,96.45),(2,』Joan』,82.99), (2,』Wang』, 96.59);
5、查詢表中的數據
11)、查詢所有行
命令:select <欄位,欄位,...> from < 表名 > where < 表達式 >
例如:查看錶 MyClass 中所有數據
mysql> select * from MyClass;
12)、查詢前幾行數據
例如:查看錶 MyClass 中前行數據
mysql> select * from MyClass order by id limit 0,2;
或者:
mysql> select * from MyClass limit 0,2;
6、刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表 MyClass中編號為 的記錄
mysql> delete from MyClass where id=1;
7、修改表中數據:
update 表名 set 欄位=新值,…where 條件
mysql> update MyClass set name=』Mary』where id=1;
8、在表中增加欄位:
1命令:alter table 表名 add欄位 類型 其他;
3例如:在表MyClass中添加了一個欄位passtest,類型為int(4),默認值為
5mysql> alter table MyClass add passtest int(4) default 』′
9、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改為YouClass
mysql> rename table MyClass to YouClass;
更新欄位內容
update 表名 set 欄位名 = 新內容
update 表名 set 欄位名 = replace(欄位名,』舊內容』, 新內容』)
update article set content=concat(『』,content);
欄位類型和資料庫操作
1.INT[(M)] 型:正常大小整數類型
2.DOUBLE[(M,D)] [ZEROFILL] 型:正常大小(雙精密)浮點數字類型
3.DATE 日期類型:支持的范圍是-01-01到-12-31。MySQL以YYYY-MM-DD格式來顯示DATE值,但是允許你使用字元串或數字把值賦給DATE列
4.CHAR(M) 型:定長字元串類型,當存儲時,總是是用空格填滿右邊到指定的長度
5.BLOB TEXT類型,最大長度為(2^16-1)個字元。
6.VARCHAR型:變長字元串類型
7.導入資料庫表
創建.sql文件
先產生一個庫如auction.c:mysqlbin>mysqladmin -u root -p creat auction,會提示輸入密碼,然後成功創建。
導入auction.sql文件
c:mysqlbin>mysql -u root -p auction < auction.sql。
通過以上操作,就可以創建了一個資料庫auction以及其中的一個表auction。
8.修改資料庫
在mysql的表中增加欄位:
alter table dbname add column userid int(11) not null primary key auto_increment;
這樣,就在表dbname中添加了一個欄位userid,類型為int(11)。
9.mysql資料庫的授權
mysql>grant select,insert,delete,create,drop
on *.* (或test.*/user.*/..)
to 用戶名@localhost
identified by 『密碼』;
如:新建一個用戶帳號以便可以訪問資料庫,需要進行如下操作:
mysql> grant usage
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.15 sec)
此後就創建了一個新用戶叫:testuser,這個用戶只能從localhost連接到資料庫並可以連接到test 資料庫。下一步,我們必須指定testuser這個用戶可以執行哪些操作:
mysql> GRANT select, insert, delete,update
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.00 sec)
此操作使testuser能夠在每一個test資料庫中的表執行SELECT,INSERT和DELETE以及UPDATE查詢操作。現在我們結束操作並退出MySQL客戶程序:
mysql> exit
DDL操作
1:使用SHOW語句找出在伺服器上當前存在什麼資料庫:
mysql> SHOW DATABASES;
2、創建一個資料庫MYSQLDATA
mysql> Create DATABASE MYSQLDATA;
3:選擇你所創建的資料庫
mysql> USE MYSQLDATA; (按回車鍵出現Database changed 時說明操作成功!)
4:查看現在的資料庫中存在什麼表
mysql> SHOW TABLES;
5:創建一個資料庫表
mysql> Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:顯示表的結構:
mysql> DESCRIBE MYTABLE;
7:往表中加入記錄
mysql> insert into MYTABLE values (「hyq」,」M」);
8:用文本方式將數據裝入資料庫表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE 「D:/mysql.txt」INTO TABLE MYTABLE;
9:導入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:刪除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中數據
mysql>update MYTABLE set sex=」f」where name=』hyq』;

㈤ MySQL入門經典的作品目錄

前言
第一篇 基礎知識
第1章 初識廬山真面目——MySQL資料庫
視頻講解:4分鍾
1.1 為什麼選擇MySQL資料庫
1.1.1 什麼是MySQL資料庫
1.1.2 MySQL的優勢
1.1.3 MySQL的發展史
1.2 MySQL特性
1.3 MySQL的應用環境
1.4 MySQL的管理軟體
1.5 如何學MySQL
1.5.1 如何學好MySQL
1.5.2 MySQL學習常見問題
1.6 小結
1.7 習題
第2章 再識廬山真面目——簡單的MySQL環境
視頻講解:37分鍾
2.1 數據根源——MySQL下載
2.2 搭建橋梁——MySQL環境安裝
2.3 啟動、連接、斷開和停止MySQL伺服器
2.3.1 啟動和停止MySQL伺服器
2.3.2 連接和斷開MySQL伺服器
2.4 使用免安裝的MySQL
2.5 MySQL Workbench圖形化管理工具
2.5.1 MySQL Workbench安裝
2.5.2 創建資料庫和數據表
2.5.3 添加數據
2.5.4 數據的導入和導出
2.6 phpMyAdmin圖形化管理工具
2.6.1 資料庫操作管理
2.6.2 管理數據表
2.6.3 管理數據記錄
2.6.4 導入導出數據
2.6.5 phpMyAdmin設置編碼格式
2.6.6 phpMyAdmin添加伺服器新用戶
2.6.7 phpMyAdmin中重置MySQL伺服器登錄密碼
2.7 上機實踐
2.7.1 啟動、停止伺服器
2.7.2 連接MySQL伺服器
2.8 小結
2.9 習題
第3章 如何存儲和獲取數據——MySQL存儲引擎、數據類型和運算符
視頻講解:34分鍾
3.1 最常用的引擎類型——MySQL存儲引擎
3.1.1 什麼是MySQL存儲引擎
3.1.2 查詢MySQL中支持的存儲引擎
3.1.3 InnoDB存儲引擎
3.1.4 MyISAM存儲引擎
3.1.5 MEMORY存儲引擎
3.1.6 如何選擇存儲引擎
3.1.7 設置數據表的存儲引擎
3.2 數據是如何分類的——MySQL數據類型
3.2.1 數字類型
3.2.2 字元串類型
3.2.3 日期和時間數據類型
3.3 最基本的程序元素——MySQL運算符
3.3.1 算術運算符
3.3.2 比較運算符
3.3.3 邏輯運算符
3.3.4 位運算符
3.3.5 運算符的優先順序
3.4 上機實踐
3.4.1 查看存儲引擎、創建和刪除資料庫
3.4.2 位運算的比較
3.4.3 邏輯運算符的使用
3.5 小結
3.6 習題
第4章 最實用的編程語句——MySQL基本操作
視頻講解:38分鍾
4.1 MySQL資料庫操作
4.1.1 創建資料庫CREATE DATABASE
4.1.2 查看資料庫SHOW DATABASES
4.1.3 選擇資料庫USE DATABASE
4.1.4 刪除資料庫DROP DATABASE
4.2 MySQL數據表操作
4.2.1 創建數據表CREATE TABLE
4.2.2 查看錶結構SHOW COLUMNS或DESCRIBE
4.2.3 修改表結構ALTER TABLE
4.2.4 重命名表RENAME TABLE
4.2.5 刪除表DROP TABLE
4.3 MySQL語句操作
4.3.1 插入記錄INSERT
4.3.2 查詢資料庫記錄SELECT
4.3.3 修改記錄UPDATE
4.3.4 刪除記錄DELETE
4.4 上機實踐
4.4.1 操作teacher表
4.4.2 存在外鍵約束時,不能刪除、更新主表
4.4.3 登錄資料庫系統
4.5 小結
4.6 習題
第5章 在迷宮中尋找出口——掌握函數
視頻講解:37分鍾
5.1 程序的靈魂——MySQL函數
5.2 數字的趣味——數學函數
5.2.1 ABS(x)函數
5.2.2 FLOOR(x)函數
5.2.3 RAND()函數
5.2.4 PI()函數
5.2.5 TRUNCATE(x,y)函數
5.2.6 ROUND(x)函數和ROUND(x,y)函數
5.2.7 SQRT(x)函數
5.3 讓字元舞起來——字元串函數
5.3.1 INSERT(s1,x,len,s2)函數
5.3.2 UPPER(s)函數和UCASE(s)函數
5.3.3 LEFT(s,n)函數
5.3.4 RTRIM(s)函數
5.3.5 SUBSTRING(s,n,len)函數
5.3.6 REVERSE(s)函數
5.3.7 FIELD(s,s1,s2,…)函數
5.4 時間如寶——日期和時間函數
5.4.1 CURDATE()函數和CURRENT_DATE()函數
5.4.2 CURTIME()函數和CURRENT_TIME()函數
5.4.3 NOW()函數
5.4.4 DATEDIFF(d1,d2)函數
5.4.5 ADDDATE(d,n)函數
5.4.6 ADDDATE(d,INTERVAL expr type)函數
5.4.7 SUBDATE(d,n)函數
5.5 多種選擇——條件判斷函數
5.6 系統信息函數
5.6.1 獲取MySQL版本號、連接數和資料庫名的函數
5.6.2 獲取用戶名的函數
5.6.3 獲取字元串的字元集和排序方式的函數
5.7 安全設置——加密函數
5.7.1 加密函數PASSWORD(str)
5.7.2 加密函數MD5(str)
5.8 其他函數
5.8.1 格式化函數FORMAT(x,n)
5.8.2 改變字元集的函數
5.8.3 改變欄位數據類型的函數
5.9 上機實踐
5.9.1 字元串函數的使用
5.9.2 查看當前資料庫版本號
5.9.3 生成3個1~100之間的隨機整數
5.10 小結
5.11 習題
第6章 不可不知的查詢方法——數據查詢
視頻講解:52分鍾
6.1 簡單明了——基本查詢語句
6.2 最通俗易懂——單表查詢
6.2.1 查詢所有欄位
6.2.2 查詢指定欄位
6.2.3 查詢指定數據
6.2.4 帶IN關鍵字的查詢
6.2.5 帶BETWEEN AND的范圍查詢
6.2.6 帶LIKE的字元匹配查詢
6.2.7 用IS NULL關鍵字查詢空值
6.2.8 帶AND的多條件查詢
6.2.9 帶OR的多條件查詢
6.2.10 用DISTINCT關鍵字去除結果中的重復行
6.2.11 用ORDER BY關鍵字對查詢結果排序
6.2.12 用GROUP BY關鍵字分組查詢
6.2.13 用LIMIT限制查詢結果的數量
6.3 摻雜數字趣味——聚合函數查詢
6.3.1 COUNT()函數
6.3.2 SUM()函數
6.3.3 AVG()函數
6.3.4 MAX()函數
6.3.5 MIN()函數
6.4 串聯一起——連接查詢
6.4.1 內連接查詢
6.4.2 外連接查詢
6.4.3 復合條件連接查詢
6.5 從外到內——子查詢
6.5.1 帶IN關鍵字的子查詢
6.5.2 帶比較運算符的子查詢
6.5.3 帶EXISTS關鍵字的子查詢
6.5.4 帶ANY關鍵字的子查詢
6.5.5 帶ALL關鍵字的子查詢
6.6 合並查詢結果
6.7 欄位昵稱——定義表和欄位的別名
6.7.1 為表取別名
6.7.2 為欄位取別名
6.8 使用正則表達式查詢
6.8.1 匹配指定字元中的任意一個
6.8.2 使用「*」和「+」來匹配多個字元
6.9 上機實踐
6.9.1 使用聚合函數SUM對學生成績進行匯總
6.9.2 查詢大於指定條件的記錄
6.9.3 使用比較運算符進行子查詢
6.10 小結
6.11 習題
第二篇 核心技術
第7章 讓程序速度加快——MySQL索引
視頻講解:23分鍾
7.1 MySQL索引概貌
7.1.1 MySQL索引概述
7.1.2 MySQL索引分類
7.2 創建索引
7.2.1 在建立數據表時創建索引
7.2.2 在已建立的數據表中創建索引
7.2.3 修改數據表結構添加索引
7.3 刪除索引
7.4 上機實踐
7.4.1 使用CREATE INDEX創建索引
7.4.2 使用ALTER TABLE語句創建全文索引
7.4.3 刪除唯一索引
7.5 小結
7.6 習題
第8章 一次編寫多次調用——MySQL存儲過程
視頻講解:33分鍾
8.1 創建存儲過程和存儲函數
8.1.1 創建存儲過程
8.1.2 創建存儲函數
8.1.3 變數的應用
8.1.4 游標的運用
8.2 流程式控制制語句
8.2.1 IF語句
8.2.2 CASE語句
8.2.3 WHILE循環語句
8.2.4 LOOP循環語句
8.2.5 REPEAT循環語句
8.3 調用存儲過程和存儲函數
8.3.1 調用存儲過程
8.3.2 調用存儲函數
8.4 查看存儲過程和函數
8.4.1 SHOW STATUS語句
8.4.2 SHOW CREATE語句
8.5 修改存儲過程和函數
8.6 刪除存儲過程和函數
8.7 捕獲存儲過程中的錯誤
8.7.1 定義條件
8.7.2 定義處理程序
8.8 上機實踐
8.8.1 使用存儲過程實現用戶注冊(PHP)
8.8.2 修改存儲函數
8.8.3 從information_schema.Routines表中查看存儲過程
8.9 小結
8.10 習題
第9章 定時炸彈——觸發器
視頻講解:22分鍾
9.1 MySQL觸發器
9.1.1 創建MySQL觸發器
9.1.2 創建具有多個執行語句的觸發器
9.2 查看觸發器
9.2.1 SHOW TRIGGERS
9.2.2 查看triggers表中觸發器信息
9.3 應用觸發器
9.4 刪除觸發器
9.5 上機實踐
9.5.1 創建一個由INSERT觸發的觸發器
9.5.2 獲取資料庫中的觸發器
9.5.3 使用DROP TIRGGER刪除觸發器
9.6 小結
9.7 習題
第10章 虛擬世界——MySQL視圖
視頻講解:22分鍾
10.1 MySQL視圖
10.1.1 視圖的概念
10.1.2 視圖的作用
10.2 創建視圖
10.2.1 查看用戶是否具有創建視圖的許可權
10.2.2 創建視圖
10.2.3 創建視圖的注意事項
10.3 查看視圖
10.4 修改視圖
10.5 更新視圖
10.6 刪除視圖
10.7 上機實踐
10.7.1 在views表中查看視圖詳細信息
10.7.2 在單表上創建視圖
10.7.3 使用MySQL視圖查詢學生信息表
10.8 小結
10.9 習題
第11章 讓程序聽話——MySQL事務
視頻講解:15分鍾
11.1 MySQL事務概述
11.1.1 原子性
11.1.2 一致性
11.1.3 孤立性
11.1.4 持久性
11.2 MySQL事務的創建與存在周期
11.2.1 初始化事務
11.2.2 創建事務
11.2.3 應用SELECT語句查看數據是否被正確輸入
11.2.4 提交事務
11.2.5 撤銷事務(事務回滾)
11.2.6 事務的存在周期
11.3 MySQL行為
11.3.1 自動提交
11.3.2 事務的孤立級
11.3.3 修改事務的孤立級
11.4 事務和性能
11.4.1 應用小事務
11.4.2 選擇合適的孤立級
11.4.3 死鎖的概念與避免
11.5 MySQL偽事務
11.5.1 用表鎖定代替事務
11.5.2 應用表鎖實現偽事務
11.6 上機實踐
11.6.1 使用事務處理技術實現銀行的安全轉賬(PHP)
11.6.2 批處理中使用事務(Java)
11.7 小結
11.8 習題
第12章 實施管理任務——MySQL系統管理
視頻講解:18分鍾
12.1 MySQL系統管理
12.1.1 管理職責概述
12.1.2 日常管理
12.1.3 安全問題
12.1.4 資料庫修復和維護
12.2 數據目錄的位置
12.3 數據目錄的結構
12.4 MySQL伺服器如何提供對數據的訪問
12.5 MySQL資料庫在文件系統里如何表示
12.6 MySQL數據表在文件系統里如何表示
12.6.1 ISAM數據表
12.6.2 MyISAM數據表
12.6.3 MERGE數據表
12.6.4 BDB數據表
12.6.5 InnoDB數據表
12.6.6 HEAP數據表
12.7 SQL語句如何映射為數據表文件操作
12.7.1 創建數據表
12.7.2 更新數據表
12.7.3 刪除數據表
12.8 操作系統對資料庫和數據表命名的限制
12.9 數據目錄的結構對系統性能的影響
12.10 MySQL狀態文件和日誌文件
12.11 小結
12.12 習題
第三篇 高級技術
第13章 保存數據必備——資料庫備份與還原
視頻講解:3分鍾
13.1 數據備份
13.1.1 使用mysqlmp命令備份
13.1.2 直接復制整個資料庫目錄
13.1.3 使用mysqlhot工具快速備份
13.2 數據還原
13.2.1 使用mysql命令還原
13.2.2 直接復制到資料庫目錄
13.3 資料庫遷移
13.3.1 MySQL相同版本的資料庫之間的遷移
13.3.2 不同資料庫之間的遷移
13.4 表的導出和導入
13.4.1 用SELECT...INTO OUTFILE導出文本文件
13.4.2 用mysqlmp命令導出文本文件
13.4.3 用mysql命令導出文本文件
13.5 上機實踐
13.5.1 將表中的內容導出到文件中
13.5.2 使用mysql命令導出HTML文件
13.5.3 導出XML文件
13.6 小結
13.7 習題
第14章 提高程序的便捷——MySQL性能優化
視頻講解:11分鍾
14.1 優化簡介
14.2 優化查詢
14.2.1 分析語句查詢
14.2.2 索引對查詢速度的影響
14.2.3 使用索引查詢
14.3 優化資料庫結構
14.3.1 將欄位很多的表分解成多個表
14.3.2 增加中間表
14.3.3 優化插入記錄的速度
14.3.4 分析表、檢查表和優化表
14.4 查詢高速緩存
14.4.1 檢驗高速緩存是否開啟
14.4.2 使用高速緩存
14.5 優化多表查詢
14.6 優化表設計
14.7 上機實踐
14.7.1 查看MySQL伺服器的連接、查詢次數
14.7.2 檢查表
14.7.3 優化表
14.8 小結
14.9 習題
第15章 進入了武器庫——MySQL資料庫安全技術
視頻講解:11分鍾
15.1 MySQL基本的安全保護策略
15.2 用戶和許可權管理
15.2.1 使用CREATE USER命令創建用戶
15.2.2 使用DROP USER命令刪除用戶
15.2.3 使用RENAME USER命令重命名用戶
15.2.4 GRANT和REVOKE命令
15.3 MySQL資料庫安全技術的常見問題
15.3.1 許可權更改何時生效
15.3.2 設置賬戶密碼
15.3.3 使密碼更安全
15.4 小結
15.5 習題
第16章 瑣碎小事——MySQL日常管理
視頻講解:8分鍾
16.1 連接故障恢復
16.1.1 MySQL套接字被誤刪
16.1.2 忘記root口令
16.2 日誌文件管理
16.2.1 錯誤日誌
16.2.2 通用查詢日誌
16.2.3 二進制日誌
16.2.4 慢速查詢日誌
16.2.5 日誌文件維護
16.2.6 日誌失效處理
16.3 MySQL伺服器鏡像配置
16.3.1 鏡像機制概念
16.3.2 建立主-從鏡像關系
16.3.3 MySQL雙機熱備份
16.4 MySQL伺服器的一些優化配置
16.4.1 對MySQL伺服器的連接監聽情況進行控制
16.4.2 啟用或禁用LOAD DATA語句的LOCAL能力
16.4.3 國際化和本地化
16.4.4 對老數據表進行轉換以激活MySQL 4.1的字元集支持
16.5 優化MySQL伺服器
16.5.1 伺服器參數變數的設置
16.5.2 通用的MySQL伺服器變數
16.5.3 InnoDB處理程序變數
16.6 運行多個MySQL伺服器
16.6.1 運行多個MySQL伺服器需要注意的問題
16.6.2 設置MySQL伺服器啟動選項的策略
16.6.3 用mysql_multi腳本啟動多個MySQL伺服器
16.6.4 在Windows系統上運行多個MySQL伺服器
16.7 小結
16.8 習題
第17章 更上一層樓——PHP訪問MySQL資料庫
視頻講解:39分鍾
17.1 PHP語言概述
17.1.1 什麼是PHP
17.1.2 為什麼選擇PHP
17.1.3 PHP的工作原理
17.1.4 PHP結合資料庫應用的優勢
17.2 PHP操作MySQL資料庫的步驟
17.3 使用PHP操作MySQL資料庫
17.3.1 mysql_connect()函數連接MySQL伺服器
17.3.2 mysql_select_db()函數連接MySQL資料庫
17.3.3 mysql_query()函數執行SQL語句
17.3.4 mysql_fetch_array()函數將結果集返回到數組中
17.3.5 mysql_fetch_row()函數從結果集中獲取一行作為枚舉數組
17.3.6 mysql_num_rows()函數獲取查詢結果集中的記錄數
17.3.7 mysql_free_result()函數釋放內存
17.3.8 mysql_close()函數關閉連接
17.4 PHP管理MySQL資料庫中的數據
17.4.1 向資料庫中添加數據
17.4.2 瀏覽資料庫中數據
17.4.3 編輯資料庫數據
17.4.4 刪除數據
17.4.5 批量刪除數據
17.5 常見問題與解決方法
17.6 MySQL與PHP的應用實例——迷你日記
17.6.1 迷你日記概述
17.6.2 資料庫設計
17.6.3 用戶登錄
17.6.4 發表日記
17.6.5 分頁顯示日記列表
17.6.6 彈出窗口修改日記
17.6.7 查詢日記
17.6.8 應用JavaScript實現批量刪除
17.7 小結
17.8 習題
第四篇 項目實戰
第18章 Java與MySQL資料庫——圖書管理系統
視頻講解:89分鍾
18.1 開發背景
18.2 系統分析
18.2.1 需求分析
18.2.2 可行性研究
18.3 系統設計
18.3.1 系統目標
18.3.2 系統功能結構
18.3.3 系統流程圖
18.3.4 文件夾組織結構
18.4 系統預覽
18.5 資料庫設計
18.5.1 資料庫分析
18.5.2 資料庫概念設計
18.5.3 資料庫邏輯結構
18.6 公共模塊設計
18.6.1 資料庫連接及操作類的編寫
18.6.2 字元串處理類的編寫
18.6.3 配置解決中文亂碼的過濾器
18.7 主界面設計
18.7.1 主界面概述
18.7.2 主界面技術分析
18.7.3 主界面的實現過程
18.8 管理員模塊設計
18.8.1 管理員模塊概述
18.8.2 管理員模塊技術分析
18.8.3 系統登錄的實現過程
18.8.4 查看管理員的實現過程
18.8.5 添加管理員的實現過程
18.8.6 設置管理員許可權的實現過程
18.8.7 刪除管理員的實現過程
18.8.8 單元測試
18.9 圖書借還模塊設計
18.9.1 圖書借還模塊概述
18.9.2 圖書借還模塊技術分析
18.9.3 圖書借閱的實現過程
18.9.4 圖書續借的實現過程
18.9.5 圖書歸還的實現過程
18.9.6 圖書借閱查詢的實現過程
18.9.7 單元測試
18.10 開發問題解析
18.10.1 如何自動計算圖書歸還日期
18.10.2 如何對圖書借閱信息進行統計排行
18.11 小結
第19章 C語言與MySQL資料庫——圖書管理系統
視頻講解:52分鍾
19.1 需求分析
19.2 系統設計
19.2.1 系統目標
19.2.2 系統功能結構
19.2.3 系統預覽
19.2.4 開發及運行環境
19.3 資料庫設計
19.3.1 安裝MySQL資料庫
19.3.2 啟動MySQL資料庫
19.3.3 創建資料庫
19.3.4 數據表結構
19.4 C語言開發資料庫程序的流程
19.4.1 在C語言中引入如下頭文件
19.4.2 引入庫函數
19.5 資料庫管理模塊設計
19.5.1 MySQL常用資料庫操作函數
19.5.2 連接MySQL資料庫
19.5.3 查詢圖書表記錄
19.5.4 插入圖書表記錄
19.5.5 修改圖書表記錄
19.5.6 刪除圖書表記錄
19.6 文件引用
19.7 變數和函數定義
19.8 管理模塊設計
19.8.1 顯示主菜單信息
19.8.2 顯示所有圖書信息
19.8.3 添加圖書信息
19.8.4 修改圖書信息
19.8.5 刪除圖書信息
19.8.6 查詢圖書信息
19.9 小結

㈥ mysql的show status和show global status區別在哪

一、區別
1)show status -->questions是本次連接的請求數,flush status重置。
2)show global status -->questions是本次MYSQL服務開啟(或重置)到現在總請求數。

二、簡介
一)Mysql show global status 各項指粗核標的含義
1)Aborted_clients
指出由於某種原因客戶岩如掘程序不能正常關閉連接而導致失敗的連接的數量。如果客戶不在退出之前調整mysql_close()函數,wait_timeout或interactive_timeout的限制已經被超出,或者是客戶端程序在傳輸的過程中被關閉,則這種情況會發生。

2)Aborted_connects
指出試圖連接到MYSQL的失敗的次數。這種情況在客戶嘗試用錯誤的密碼進行連接時,沒有許可權進行連接時,為獲得連接的數據包所花費的時間超過了connect_timeout限制的秒數,或數據包中沒有包含正確的信息時,都會發生。

3)Bytes_sent
已經發送給所有客戶端的位元組數。

4)Com_[statement] (以下所有以Com_開始的條目)
用於每一種語句的這些變數中的一種。變數值表示這條語句被執行的次數。

5)com_select,表示select查詢語句被執行的次數。
可以適當的對一些敏感數據,進行下面某些操作的監控。比如刪除語句delete /drop。

二) show Status參數詳解
1)Aborted_clients
由於客戶端沒有正確關閉連接導致客戶端終止而中斷的連接數。

2)Aborted_connects
試圖連接到MySQL伺服器而失敗的連接數 。

3)Binlog_cache_disk_use
使用臨時二橡燃進制日誌緩存但超過。

4)binlog_cache_size
值並使用臨時文件來保存事務中的語句 的事務數量 。

5)Binlog_cache_use
使用臨時二進制日誌緩存的事務數量。

6)Bytes_received
從所有客戶端接收到的位元組數

7)Bytes_sent
發送給所有客戶端的位元組數。

㈦ 如何查看mysql資料庫的引擎

一般情況下,mysql會默認提供多種存儲引擎,你可以通過下面的查看:

看你的mysql現在已提供什麼存儲引擎:
mysql> show engines;

看你的mysql當前默認的存儲引擎:
mysql> show variables like '%storage_engine%';

你要看某個表用了什麼引擎(在顯示結果里參數engine後面的就表示該表當前用的存儲引擎):
mysql> show create table 表名;

MySQL資料庫引擎詳解

作為Java程序員,MySQL資料庫大家平時應該都沒少使用吧,對MySQL資料庫的引擎應該也有所了解,這篇文章就讓我詳細的說說MySQL資料庫的Innodb和MyIASM兩種引擎以及其索引結構。也來鞏固一下自己對這塊知識的掌握。

Innodb引擎

Innodb引擎提供了對資料庫ACID事務的支持,並且實現了SQL標準的四種隔離級別,關於資料庫事務與其隔離級別的內容請見資料庫事務與其隔

離級別這篇文章。該引擎還提供了行級鎖和外鍵約束,它的設計目標是處理大容量資料庫系統,它本身其實就是基於MySQL後台的完整資料庫系統,MySQL
運行時Innodb會在內存中建立緩沖池,用於緩沖數據和索引。但是該引擎不支持FULLTEXT類型的索引,而且它沒有保存表的行數,當SELECT
COUNT(*) FROM
TABLE時需要掃描全表。當需要使用資料庫事務時,該引擎當然是首選。由於鎖的粒度更小,寫操作不會鎖定全表,所以在並發較高時,使用Innodb引擎
會提升效率。但是使用行級鎖也不是絕對的,如果在執行一個SQL語句時MySQL不能確定要掃描的范圍,InnoDB表同樣會鎖全表。

MyIASM引擎

MyIASM是MySQL默認的引擎,但是它沒有提供對資料庫事務的支持,也不支持行級鎖和外鍵,因此當INSERT(插入)或UPDATE(更
新)數據時即寫操作需要鎖定整個表,效率便會低一些。不過和Innodb不同,MyIASM中存儲了表的行數,於是SELECT COUNT(*)
FROM
TABLE時只需要直接讀取已經保存好的值而不需要進行全表掃描。如果表的讀操作遠遠多於寫操作且不需要資料庫事務的支持,那麼MyIASM也是很好的選
擇。

兩種引擎的選擇

大尺寸的數據集趨向於選擇InnoDB引擎,因為它支持事務處理和故障恢復。資料庫的大小決定了故障恢復的時間長短,InnoDB可以利用事務日誌

進行數據恢復,這會比較快。主鍵查詢在InnoDB引擎下也會相當快,不過需要注意的是如果主鍵太長也會導致性能問核褲題,關於這個問題我會在下文中講到。大

批的INSERT語句(在每個INSERT語句中寫入多行,批量插入)在MyISAM下會快一些,但是UPDATE語句在InnoDB下則會更快一些,尤
其是在並發量大的時候。

Index——索引

索引(Index)是幫助MySQL高效獲取數據的數據結構。MyIASM和Innodb都使用了樹這種數據結構做為索引,關於樹我也曾經寫過一篇文章樹是一種偉大的數據結構,只是自己的理解,有興趣的朋友可以去閱讀。下面我接著講這兩種引擎數御使用的索引結構,講到這里,首先應該談一下B-Tree和B+Tree。

B-Tree和B+Tree

B+Tree是B-Tree的變種,那麼我就先講B-Tree吧,相信大家都知道紅黑樹,這是我前段時間學《演算法》一書時,實現的一顆紅黑樹,大家

可以參考。其實紅黑樹類似2,3-查找樹,這種樹既有2叉結點又有3叉結點。B-Tree也與之類似,它的每個結點做多可以有d個分支(叉),d稱為B-

Tree的度,如下圖所示,它的每個結點可以有4個元素,5個分支,於是它的度為5。B-Tree中的元素是有序的,比如圖中元素7左邊的指針指向的結點

中的元素改畢簡都小於7,而元素7和16之間的指針指向的結點中的元素都處於7和16之間,正是滿足這樣的關系,才能高效的查找:首先從根節點進行二分查找,找
到就返回對應的值,否則就進入相應的區間結點遞歸的查找,直到找到對應的元素或找到null指針,找到null指針則表示查找失敗。這個查找是十分高效
的,其時間復雜度為O(logN)(以d為底,當d很大時,樹的高度就很低),因為每次檢索最多隻需要檢索樹高h個結點。

接下來就該講B+Tree了,它是B-Tree的變種,如下面兩張圖所示:

vcHLx/i85LLp0a/Qp8LKoaM8L3A+DQo8aDMgaWQ9"myisam引擎的索引結構">MyISAM引擎的索引結構

MyISAM引擎的索引結構為B+Tree,其中B+Tree的數據域存儲的內容為實際數據的地址,也就是說它的索引和實際的數據是分開的,只不過是用索引指向了實際的數據,這種索引就是所謂的非聚集索引。

Innodb引擎的索引結構

MyISAM引擎的索引結構同樣也是B+Tree,但是Innodb的索引文件本身就是數據文件,即B+Tree的數據域存儲的就是實際的數據,這種索引就是聚集索引。這個索引的key就是數據表的主鍵,因此InnoDB表數據文件本身就是主索引。

因為InnoDB的數據文件本身要按主鍵聚集,所以InnoDB要求表必須有主鍵(MyISAM可以沒有),如果沒有顯式指定,則MySQL系統會自動選擇一個可以唯一標識數據記錄的列作為主鍵,如果不存在這種列,則MySQL自動為InnoDB表生成一個隱含欄位作為主鍵,這個欄位長度為6個位元組,類型為長整形。

並且和MyISAM不同,InnoDB的輔助索引數據域存儲的也是相應記錄主鍵的值而不是地址,所以當以輔助索引查找時,會先根據輔助索引找到主
鍵,再根據主鍵索引找到實際的數據。所以Innodb不建議使用過長的主鍵,否則會使輔助索引變得過大。建議使用自增的欄位作為主鍵,這樣B+Tree的
每一個結點都會被順序的填滿,而不會頻繁的分裂調整,會有效的提升插入數據的效率。

㈧ MySQL 資料庫常用命令 簡單超級實用版

1、MySQL常用命令
create
database
name;
創建資料庫
use
databasename;
選擇資料庫
drop
database
name
直接刪除資料庫,不提醒
show
tables;
顯示表
describe
tablename;
表的詳細描述
select
中加上distinct去除重復欄位
mysqladmin
drop
databasename
刪除資料庫前,有提示。
顯示當前mysql版本和當前日期
select
version(),current_date;
2、修改mysql中root的密碼:
shell>mysql
-u
root
-p
mysql>
update
user
set
password=password(」xueok654123″)
where
user='root';
mysql>
flush
privileges
//刷新資料庫
mysql>use
dbname;
打開資料庫:
mysql>show
databases;
顯示所有資料庫
mysql>show
tables;
顯示資料庫mysql中所有的表:先use
mysql;然後
mysql>describe
user;
顯示表mysql資料庫中user表的列信息);
3、grant
創建一個可以從任何地方連接伺服器的一個完全的超級用戶,但是必須使用一個口令something做這個
mysql>
grant
all
privileges
on
*.*
to
user@localhost
identified
by
'something'
with
增加新用戶
格式:grant
select
on
資料庫.*
to
用戶名@登錄主機
identified
by
「密碼」
GRANT
ALL
PRIVILEGES
ON
*.*
TO
monty@localhost
IDENTIFIED
BY
'something'
WITH
GRANT
OPTION;
GRANT
ALL
PRIVILEGES
ON
*.*
TO
monty@」%」
IDENTIFIED
BY
'something'
WITH
GRANT
OPTION;
刪除授權:
mysql>
revoke
all
privileges
on
*.*
from
root@」%」;
mysql>
delete
from
user
where
user=」root」
and
host=」%」;
mysql>
flush
privileges;
創建一個用戶custom在特定客戶端it363.com登錄,可訪問特定資料庫fangchandb
mysql
>grant
select,
insert,
update,
delete,
create,drop
on
fangchandb.*
to
custom@
it363.com
identified
by

passwd'
重命名表:
mysql
>
alter
table
t1
rename
t2;
4、mysqlmp
備份資料庫
shell>
mysqlmp
-h
host
-u
root
-p
dbname
>dbname_backup.sql
恢復資料庫
shell>
mysqladmin
-h
myhost
-u
root
-p
create
dbname
shell>
mysqlmp
-h
host
-u
root
-p
dbname
<
dbname_backup.sql
如果只想卸出建表指令,則命令如下:
shell>
mysqladmin
-u
root
-p
-d
databasename
>
a.sql
如果只想卸出插入數據的sql命令,而不需要建表命令,則命令如下:
shell>
mysqladmin
-u
root
-p
-t
databasename
>
a.sql
那麼如果我只想要數據,而不想要什麼sql命令時,應該如何操作呢?

mysqlmp
-T./
phptest
driver
其中,只有指定了-T參數才可以卸出純文本文件,表示卸出數據的目錄,./表示當前目錄,即與mysqlmp同一目錄。如果不指定driver
表,則將卸出整個資料庫的數據。每個表會生成兩個文件,一個為.sql文件,包含建表執行。另一個為.txt文件,只包含數據,且沒有sql指令。
5、可將查詢存儲在一個文件中並告訴mysql從文件中讀取查詢而不是等待鍵盤輸入。可利用外殼程序鍵入重定向實用程序來完成這項工作。例如,如果在文件my_file.sql
中存放有查
詢,可如下執行這些查詢:
例如,如果您想將建表語句提前寫在sql.txt中:
mysql
>
mysql
-h
myhost
-u
root
-p
database
<
sql.txt

㈨ c#怎麼連接資料庫 用MySQL 詳解

1、mysql官網下載 .net連接器

2、引用下載後的mysql.data.dll

3、程序開始加:using MySql.Data.MySqlClient;

4、連接資料庫:

privatevoidbutton1_Click(objectsender,EventArgse)//登入按鈕
{
stringpower=comboBox1.Text.Trim();
stringuser=textBox1.Text.Trim();
stringpsd=textBox2.Text.Trim();
stringipaddress="";
stringmysqluser="";
stringmysqlpsd="";

if(user=="")
{
MessageBox.Show("請輸入用戶名");
}
elseif(psd=="")
{
MessageBox.Show("請輸入密碼");
}
else
{
try
{
try
{
string[]getconfig=File.ReadAllLines("E:/project/configure.txt",Encoding.GetEncoding("gb2312"));
ipaddress=getconfig[0].Split(':')[1];//讀取ip地址
mysqluser=getconfig[1].Split(':')[1];//讀取資料庫賬號
mysqlpsd=getconfig[2].Split(':')[1];//讀取資料庫密碼
}
catch(Exception)
{
MessageBox.Show("配置文件丟失");
return;
}

stringquery="SETnamesgb2312;SELECTCOUNT(id)FROMfx_userWHEREname='"+user+"'ANDpassword=MD5('"+psd+"')ANDuserid='"+power+"'";
MySqlConnectioncn=newMySqlConnection("server="+ipaddress+";userid="+mysqluser+";Password="+mysqlpsd+";database=system;charset=gb2312");

cn.Open();
MySqlCommandcm=newMySqlCommand(query,cn);
MySqlDataReaderread=cm.ExecuteReader();//搜索滿足用戶名,密碼,操作員的記錄。
//如果記錄沒有-->密碼或用戶名錯誤
if(read.Read())//如果記錄多餘1條-->數據錯誤,聯系管理員
{//只有一條記錄則成功登入
intx=Int32.Parse(read[0].ToString());
if(x==0)
{
MessageBox.Show("用戶名或密碼錯誤");
}
elseif(x>1)
{
MessageBox.Show("用戶沖突,請聯系管理員");
}
elseif(x==1)
{
//MessageBox.Show("登入成功");
mainmf=newmain(power,ipaddress,mysqluser,mysqlpsd);//將操作員和IP地址傳入主窗體

mf.Show();
this.Hide();
cn.Close();
}
}
}
catch(MySql.Data.MySqlClient.MySqlExceptionex)
{
switch(ex.Number)
{
case0:
MessageBox.Show("資料庫連接失敗1");
break;
case1045:
MessageBox.Show("資料庫密碼或用戶名錯誤");
break;
default:
MessageBox.Show("資料庫連接失敗2");
break;
}
}
}
}
閱讀全文

與mysqlshow命令詳解相關的資料

熱點內容
程序員試用期匯報問題協助怎麼寫 瀏覽:127
抖音演算法到底是什麼 瀏覽:126
哪個vlan技術對報文加密 瀏覽:570
單片機定時電路 瀏覽:672
山西平台伺服器雲主機 瀏覽:700
按摩肚臍解壓視頻 瀏覽:989
php55安裝教程 瀏覽:137
雲伺服器怎麼查找本機域名 瀏覽:22
qd123y壓縮機參數 瀏覽:385
程序員媽媽懷孕 瀏覽:490
金普國際編程 瀏覽:537
java什麼是引用類型 瀏覽:944
這是命令嗎txt 瀏覽:314
支付寶android包名 瀏覽:154
eclipsemaven命令 瀏覽:68
24路伺服器配什麼cpu 瀏覽:466
壓縮文件和解壓文件哪個快 瀏覽:675
亞馬遜雲伺服器視頻通話 瀏覽:912
金融知識app哪個好 瀏覽:978
農行理財app收益在哪裡 瀏覽:969