1、《MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎》
專注于為中小企業(yè)提供做網(wǎng)站、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)察哈爾右翼后免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
《MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎》的作者是姜承堯。本書從源代碼的角度深度解析了InnoDB
的體系結(jié)構(gòu)、實(shí)現(xiàn)原理、工作機(jī)制,并給出了大量最佳實(shí)踐。
2、《MySQL完全手冊(cè)》
《MySQL完全手冊(cè)》詳細(xì)介紹了如何使用可定制的MySQL數(shù)據(jù)庫管理系統(tǒng)支持健壯的、可靠的、任
務(wù)關(guān)鍵的應(yīng)用程序。
3、《深入淺出mysql》
《深入淺出mysql》從數(shù)據(jù)庫的基礎(chǔ)、開發(fā)、優(yōu)化、管理維護(hù)4個(gè)方面對(duì)MySQL進(jìn)行了詳細(xì)的介紹,
其中每一部分都獨(dú)立成篇。
基礎(chǔ)篇主要適合于MySQL的初學(xué)者,內(nèi)容包括MySQL的安裝與配置、SQL基礎(chǔ)、MySQL支持的數(shù)
據(jù)類型、MySQL中的運(yùn)算符、常用函數(shù)、圖形化工具的使用等。
4、《 數(shù)據(jù)庫索引設(shè)計(jì)與優(yōu)化》
本文以MySQL數(shù)據(jù)庫為研究對(duì)象,討論與數(shù)據(jù)庫索引相關(guān)的一些話題。特別需要說明的是,MySQL
支持諸多存儲(chǔ)引擎,而各種存儲(chǔ)引擎對(duì)索引的支持也各不相同。
5、《高性能MySQL》
《高性能MySQL》是分享MySQL實(shí)用經(jīng)驗(yàn)的圖書。它不但可以幫助MySQL初學(xué)者提高使用技巧,
更為有經(jīng)驗(yàn)的MySQL DBA指出了開發(fā)高性能MySQL應(yīng)用的途徑。
擴(kuò)展資料:
《MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎》是國內(nèi)目前唯一的一本關(guān)于InnoDB的著作,由資深MySQL
專家親自執(zhí)筆,中外數(shù)據(jù)庫專家聯(lián)袂推薦,權(quán)威性毋庸置疑。
它能為讀者設(shè)計(jì)和管理高性能、高可用的數(shù)據(jù)庫系統(tǒng)提供絕佳的指導(dǎo)。注重實(shí)戰(zhàn),全書輔有大量的
案例,可操作性極強(qiáng)。全書首先全景式地介紹了MySQL獨(dú)有的插件式存儲(chǔ)引擎,分析了MySQL的各
種存儲(chǔ)引擎的優(yōu)勢(shì)和應(yīng)用環(huán)境。
參考資料:百度百科——MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎
請(qǐng)根據(jù)自己操作了些什么?以及錯(cuò)誤提示進(jìn)行解決。這樣可以縮小出錯(cuò)范圍,提高查錯(cuò)速度。
比如說你進(jìn)行連接操作,然后系統(tǒng)提示錯(cuò)誤,那么通常你就要從連接方式上進(jìn)行查錯(cuò),如密碼錯(cuò)誤、連接參數(shù)不對(duì)等。如果系統(tǒng)提示語法錯(cuò)誤,那通常你要看一看你的sql語句編寫是否正確、函數(shù)的用法對(duì)不對(duì)等等。如果是系統(tǒng)方面的錯(cuò)誤提示,你就要檢查一下你的MySQL系統(tǒng)安裝以及系統(tǒng)設(shè)置方面的問題。
由于MySQL都是以英文顯示錯(cuò)誤提示的,解決報(bào)錯(cuò)問題除了需要具備一定程度的數(shù)據(jù)庫方面知識(shí)外,還要略懂英文,否則無從下手。
數(shù)據(jù)庫的種種知識(shí)非常豐富繁雜,沒人能全部記下來,下載一個(gè)MySQL用戶手冊(cè),出錯(cuò)時(shí)翻查一下,對(duì)解決問題很有幫助的。但是我個(gè)人感覺MySQL的用戶手冊(cè)編寫的實(shí)在不怎樣,主要是手冊(cè)的內(nèi)容定位方面編排的不好,不太容易讓人迅速找到需要的內(nèi)容,此為題外話。
之前介紹了一系列的mysql基礎(chǔ)知識(shí),今天我們將MySQL常用的功能命令整理出來,供大家參考使用!
1.導(dǎo)出整個(gè)數(shù)據(jù)庫
mysqldump -u 用戶名 -p –default-character-set=latin1 數(shù)據(jù)庫名 導(dǎo)出的文件名(數(shù)據(jù)庫默認(rèn)編碼是latin1)
mysqldump -u wcnc -p smgp_apps_wcnc wcnc.sql
2.導(dǎo)出一個(gè)表
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名 導(dǎo)出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users wcnc_users.sql
3.導(dǎo)出一個(gè)數(shù)據(jù)庫結(jié)構(gòu)
mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc d:wcnc_db.sql
-d 沒有數(shù)據(jù) –add-drop-table 在每個(gè)create語句之前增加一個(gè)drop table
4.導(dǎo)入數(shù)據(jù)庫
A:常用source 命令
進(jìn)入mysql數(shù)據(jù)庫控制臺(tái),
如mysql -u root -p
mysqluse 數(shù)據(jù)庫
然后使用source命令,后面參數(shù)為腳本文件(如這里用到的.sql)
mysqlsource wcnc_db.sql
B:使用mysqldump命令
mysqldump -u username -p dbname filename.sql
C:使用mysql命令
mysql -u username -p -D dbname filename.sql
啟動(dòng)與退出
1、進(jìn)入MySQL:啟動(dòng)MySQL Command Line Client(MySQL的DOS界面),直接輸入安裝時(shí)的密碼即可。此時(shí)的提示符是:mysql
2、退出MySQL:quit或exit
庫操作
1、創(chuàng)建數(shù)據(jù)庫
命令:create database 數(shù)據(jù)庫名
例如:建立一個(gè)名為sqlroad的數(shù)據(jù)庫
mysql create database sqlroad;
2、顯示所有的數(shù)據(jù)庫
命令:show databases (注意:最后有個(gè)s)
mysql show databases;
3、刪除數(shù)據(jù)庫
命令:drop database 數(shù)據(jù)庫名
例如:刪除名為 sqlroad的數(shù)據(jù)庫
mysql drop database sqlroad;
4、連接數(shù)據(jù)庫
命令:use 數(shù)據(jù)庫名
例如:如果sqlroad數(shù)據(jù)庫存在,嘗試存取它:
mysql use sqlroad;
屏幕提示:Database changed
5、查看當(dāng)前使用的數(shù)據(jù)庫
mysql select database();
6、當(dāng)前數(shù)據(jù)庫包含的表信息:
mysql show tables; (注意:最后有個(gè)s)
表操作,操作之前應(yīng)連接某個(gè)數(shù)據(jù)庫
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、獲取表結(jié)構(gòu)
命令:desc 表名,或者show columns from 表名
mysqlDESCRIBE MyClass
mysql desc MyClass;
mysql show columns from MyClass;
3、刪除表
命令:drop table 表名
例如:刪除表名為 MyClass 的表
mysql drop table MyClass;
4、插入數(shù)據(jù)
命令:insert into 表名 [( 字段名[,..字段名n ])] values ( 值 )[, ( 值n )]
例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號(hào)為的名為Tom的成績?yōu)?45, 編號(hào)為 的名為Joan 的成績?yōu)?99,編號(hào)為 的名為Wang 的成績?yōu)?5.
mysql insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59);
5、查詢表中的數(shù)據(jù)
11)、查詢所有行
命令:select 字段,字段,... from 表名 where 表達(dá)式
例如:查看表 MyClass 中所有數(shù)據(jù)
mysql select * from MyClass;
12)、查詢前幾行數(shù)據(jù)
例如:查看表 MyClass 中前行數(shù)據(jù)
mysql select * from MyClass order by id limit 0,2;
或者:
mysql select * from MyClass limit 0,2;
6、刪除表中數(shù)據(jù)
命令:delete from 表名 where 表達(dá)式
例如:刪除表 MyClass中編號(hào)為 的記錄
mysql delete from MyClass where id=1;
7、修改表中數(shù)據(jù):
update 表名 set 字段=新值,…where 條件
mysql update MyClass set name=’Mary’where id=1;
8、在表中增加字段:
1命令:alter table 表名 add字段 類型 其他;
3例如:在表MyClass中添加了一個(gè)字段passtest,類型為int(4),默認(rèn)值為
5mysql alter table MyClass add passtest int(4) default ’′
9、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改為YouClass
mysql rename table MyClass to YouClass;
更新字段內(nèi)容
update 表名 set 字段名 = 新內(nèi)容
update 表名 set 字段名 = replace(字段名,’舊內(nèi)容’, 新內(nèi)容’)
update article set content=concat(‘’,content);
字段類型和數(shù)據(jù)庫操作
1.INT[(M)] 型:正常大小整數(shù)類型
2.DOUBLE[(M,D)] [ZEROFILL] 型:正常大小(雙精密)浮點(diǎn)數(shù)字類型
3.DATE 日期類型:支持的范圍是-01-01到-12-31。MySQL以YYYY-MM-DD格式來顯示DATE值,但是允許你使用字符串或數(shù)字把值賦給DATE列
4.CHAR(M) 型:定長字符串類型,當(dāng)存儲(chǔ)時(shí),總是是用空格填滿右邊到指定的長度
5.BLOB TEXT類型,最大長度為(2^16-1)個(gè)字符。
6.VARCHAR型:變長字符串類型
7.導(dǎo)入數(shù)據(jù)庫表
創(chuàng)建.sql文件
先產(chǎn)生一個(gè)庫如auction.c:mysqlbinmysqladmin -u root -p creat auction,會(huì)提示輸入密碼,然后成功創(chuàng)建。
導(dǎo)入auction.sql文件
c:mysqlbinmysql -u root -p auction auction.sql。
通過以上操作,就可以創(chuàng)建了一個(gè)數(shù)據(jù)庫auction以及其中的一個(gè)表auction。
8.修改數(shù)據(jù)庫
在mysql的表中增加字段:
alter table dbname add column userid int(11) not null primary key auto_increment;
這樣,就在表dbname中添加了一個(gè)字段userid,類型為int(11)。
9.mysql數(shù)據(jù)庫的授權(quán)
mysqlgrant select,insert,delete,create,drop
on *.* (或test.*/user.*/..)
to 用戶名@localhost
identified by ‘密碼’;
如:新建一個(gè)用戶帳號(hào)以便可以訪問數(shù)據(jù)庫,需要進(jìn)行如下操作:
mysql grant usage
- ON test.*
- TO testuser@localhost;
Query OK, 0 rows affected (0.15 sec)
此后就創(chuàng)建了一個(gè)新用戶叫:testuser,這個(gè)用戶只能從localhost連接到數(shù)據(jù)庫并可以連接到test 數(shù)據(jù)庫。下一步,我們必須指定testuser這個(gè)用戶可以執(zhí)行哪些操作:
mysql GRANT select, insert, delete,update
- ON test.*
- TO testuser@localhost;
Query OK, 0 rows affected (0.00 sec)
此操作使testuser能夠在每一個(gè)test數(shù)據(jù)庫中的表執(zhí)行SELECT,INSERT和DELETE以及UPDATE查詢操作?,F(xiàn)在我們結(jié)束操作并退出MySQL客戶程序:
mysql exit
DDL操作
1:使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:
mysql SHOW DATABASES;
2、創(chuàng)建一個(gè)數(shù)據(jù)庫MYSQLDATA
mysql Create DATABASE MYSQLDATA;
3:選擇你所創(chuàng)建的數(shù)據(jù)庫
mysql USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時(shí)說明操作成功!)
4:查看現(xiàn)在的數(shù)據(jù)庫中存在什么表
mysql SHOW TABLES;
5:創(chuàng)建一個(gè)數(shù)據(jù)庫表
mysql Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:顯示表的結(jié)構(gòu):
mysql DESCRIBE MYTABLE;
7:往表中加入記錄
mysql insert into MYTABLE values (“hyq”,”M”);
8:用文本方式將數(shù)據(jù)裝入數(shù)據(jù)庫表中(例如D:/mysql.txt)
mysql LOAD DATA LOCAL INFILE “D:/mysql.txt”INTO TABLE MYTABLE;
9:導(dǎo)入.sql文件命令(例如D:/mysql.sql)
mysqluse database;
mysqlsource d:/mysql.sql;
10:刪除表
mysqldrop TABLE MYTABLE;
11:清空表
mysqldelete from MYTABLE;
12:更新表中數(shù)據(jù)
mysqlupdate MYTABLE set sex=”f”where name=’hyq’;