mysql使用大全_第1頁
mysql使用大全_第2頁
mysql使用大全_第3頁
mysql使用大全_第4頁
mysql使用大全_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1、mysql常用命令create database name; 創(chuàng)建數(shù)據(jù)庫use databasename; 選擇數(shù)據(jù)庫drop database name 直接刪除數(shù)據(jù)庫,不提醒show tables; 顯示表describe tablename; 表的詳細(xì)描述select 中加上 distinct 去除重復(fù)字段mysqladmin drop databasename 刪除數(shù)據(jù)庫前,有提示。顯示當(dāng)前 mysql 版本和當(dāng)前日期select version(),current_date; 2、修改 mysql 中 root 的密碼:shellmysql -u root -p mysql up

2、date user set password=password(admin) where user=root; mysql flush privileges / 刷新數(shù)據(jù)庫mysqluse dbname; 打開數(shù)據(jù)庫:mysqlshow databases; 顯示所有數(shù)據(jù)庫mysqlshow tables; 顯示數(shù)據(jù)庫mysql 中所有的表:先use mysql;然后mysqldescribe user; 顯示表 mysql 數(shù)據(jù)庫中user 表的列信息);3、grant 創(chuàng)建一個(gè)可以從任何地方連接服務(wù)器的一個(gè)完全的超級(jí)用戶,但是必須使用一個(gè)口令something 做這個(gè)mysql grant

3、 all privileges on *.* to userlocalhost identified by something with 增加新用戶格式: grant select on 數(shù)據(jù)庫 .* to 用戶名 登錄主機(jī)identified by “密碼”grant all privileges on *.* to montylocalhost identified by something with grant option; grant all privileges on *.* to monty” % ” identified by something with grant opti

4、on; 刪除授權(quán):mysql revoke all privileges on *.* fr om root ” % ” ; mysql delete from user where user=” root ” and host=” % ” ; mysql flush privileges; 創(chuàng)建一個(gè)用戶custom 在特定客戶端 登錄,可訪問特定數(shù)據(jù)庫 fangchandb mysql grant select, insert, update, delete, create,drop on fangchandb.* to custom identified by passwd 重命名表 :

5、mysql alter table t1 rename t2; 4、mysqldump 備份數(shù)據(jù)庫shell mysqldump -h host -u root -p dbname dbname_backup.sql 恢復(fù)數(shù)據(jù)庫shell mysqladmin -h myhost -u root -p create dbname shell mysqldump -h host -u root -p dbname mysqladmin -u root -p -d databasename a.sql 如果只想卸出插入數(shù)據(jù)的sql 命令, 而不需要建表命令, 則命令如下:shell mysqlad

6、min -u root -p -t databasename a.sql 那么如果我只想要數(shù)據(jù),而不想要什么sql 命令時(shí),應(yīng)該如何操作呢?mysqldump -t./ phptest driver 其中,只有指定了 -t 參數(shù)才可以卸出純文本文件,表示卸出數(shù)據(jù)的目錄, ./表示當(dāng)前目錄, 即與 mysqldump 同一目錄。如果不指定driver 表,則將卸出整個(gè)數(shù)據(jù)庫的數(shù)據(jù)。每個(gè)表會(huì)生成兩個(gè)文件,一個(gè)為.sql 文件,包含建表執(zhí)行。另一個(gè)為.txt 文件,只包含數(shù)據(jù),且沒有sql 指令。5、可將查詢存儲(chǔ)在一個(gè)文件中并告訴mysql 從文件中讀取查詢而不是等待鍵盤輸入。 可利用外殼程序鍵入重

7、定向?qū)嵱贸绦騺硗瓿蛇@項(xiàng)工作。例如,如果在文件my_file.sql 中存放有查詢,可如下執(zhí)行這些查詢:例如,如果您想將建表語句提前寫在sql.txt 中: mysql mysql -h myhost -u root -p database 2、退出 mysql:quit 或 exit 二、庫操作1、 、創(chuàng)建數(shù)據(jù)庫命令: create database 例如:建立一個(gè)名為xhkdb 的數(shù)據(jù)庫mysql create database xhkdb; 2、顯示所有的數(shù)據(jù)庫命令: show databases (注意:最后有個(gè)s)mysql show databases; 3、刪除數(shù)據(jù)庫命令: dro

8、p database 例如:刪除名為xhkdb 的數(shù)據(jù)庫mysql drop database xhkdb; 4、連接數(shù)據(jù)庫命令:use 例如:如果xhkdb 數(shù)據(jù)庫存在,嘗試存取它:mysql use xhkdb; 屏幕提示: 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 ( ,. ); mysql create table myclass( id int(4) n

9、ot null primary key auto_increment, name char(20) not null, sex int(4) not null default 0, degree double(16,2); 2、獲取表結(jié)構(gòu)命令:desc 表名,或者show columns from 表名mysql desc myclass; mysql show columns from myclass; 3、刪除表命令: drop table 例如:刪除表名為myclass 的表mysql drop table myclass; 4、插入數(shù)據(jù)命令:insert into ( ,. ) val

10、ues ( 值 1 ), ( 值 n ) 例如,往表myclass中插入二條記錄, 這二條記錄表示:編號(hào)為1 的名為 tom的成績?yōu)?96.45, 編號(hào)為 2 的名為 joan 的成績?yōu)?82.99,編號(hào)為 3 的名為 wang 的成績?yōu)?6.5. mysql insert into myclass values(1,tom,96.45),(2,joan,82.99), (2,wang, 96.59); 5、查詢表中的數(shù)據(jù)1)、查詢所有行命令:select from where 例如:查看表myclass 中所有數(shù)據(jù)mysql select * from myclass; 2) 、查詢前幾行數(shù)

11、據(jù)例如:查看表myclass 中前 2 行數(shù)據(jù)mysql select * from myclass order by id limit 0,2; 6、刪除表中數(shù)據(jù)命令: delete from 表名where 表達(dá)式例如:刪除表myclass 中編號(hào)為 1 的記錄mysql delete from myclass where id=1; 7、修改表中數(shù)據(jù):update 表名set 字段 =新值 ,where 條件mysql update myclass set name=mary where id=1; 7、在表中增加字段:命令: alter table 表名add 字段 類型其他 ; 例如

12、:在表myclass 中添加了一個(gè)字段passtest,類型為int(4),默認(rèn)值為 0 mysql alter table myclass add passtest int(4) default 0 8、更改表名:命令: rename table 原表名to 新表名 ; 例如:在表myclass 名字更改為youclass mysql rename table myclass to youclass; 更新字段內(nèi)容update 表名set 字段名= 新內(nèi)容update 表名set 字段名= replace(字段名 ,舊內(nèi)容 ,新內(nèi)容 ); 文章前面加入4 個(gè)空格update article

13、set content=concat(,content); 字段類型1int(m) 型:正常大小整數(shù)類型2double(m,d) zerofill 型:正常大小 (雙精密 )浮點(diǎn)數(shù)字類型3date 日期類型: 支持的范圍是1000-01-01 到 9999-12-31。mysql以 yyyy-mm-dd格式來顯示date值,但是允許你使用字符串或數(shù)字把值賦給 date列4char(m) 型:定長字符串類型,當(dāng)存儲(chǔ)時(shí),總是是用空格填滿右邊到指定的長度5blob text 類型,最大長度為65535(216-1) 個(gè)字符。6varchar型:變長字符串類型mysqldump 命令的使用備份和導(dǎo)出數(shù)

14、據(jù)庫mysqldump -h database_ip -u username -p -opt databasename backup-file.sql 只導(dǎo)出數(shù)據(jù)庫表結(jié)構(gòu)mysqldump -h database_ip -d -u username -p databasename database_structure.sql 只導(dǎo)出數(shù)據(jù)庫中的某個(gè)表mysqldump -opt -add-drop-table -u username -p databasename tablename dump.sql 如果不想手工輸入密碼請(qǐng)使用 -password 參數(shù)mysqldump -h database

15、_ip -u username -password=123456 -opt databasename backup-file.sql mysqldump -h database_ip -d -u username -password=123456 databasename database_structure.sql mysql 命令使用將查詢結(jié)果保存到文件select title from book into outfile /tmp/outfile.txt; 查找表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)某個(gè)字段(peopleid )來判斷select * from people where pe

16、opleid in (select peopleid from people group by peopleid having count(peopleid) 1); 查詢表中不重復(fù)記錄(排除重復(fù)記錄 ) select * from phome_ecms_wma where title in (select distinct title from phome_ecms_wma); 刪除表中重復(fù)記錄,重復(fù)記錄是根據(jù)某個(gè)字段(title )來判斷select *,count(distinct title) into outfile /tmp/table.bak from phome_ecms_wm

17、a group by title; delete from phome_ecms_wma; load data infile /tmp/table.bak replace into table phome_ecms_wma character set utf8; 查詢數(shù)據(jù)庫當(dāng)前編碼mysql show variables like character_set%; 修改表字段類型mysql alter table table_name change last_action last_action datetime not null default 0000-00-00 00:00:00; 給表添

18、加一個(gè)新字段mysql alter table host add ks_mac varchar(100); 從表中刪除一個(gè)字段mysql alter table table_name drop field_name; 重命名表mysqlalter table t1 rename t2; 給字段加索引mysql alter table tablename add index 索引名(字段名 1,字段名2 ,); mysql alter table tablename add index emp_name (name); 加主關(guān)鍵字的索引mysql alter table tablename ad

19、d primary key(id); 加唯一限制條件的索引mysql alter table tablename add unique emp_name2(cardnumber); 刪除某個(gè)索引mysqlalter table tablename drop index emp_name; 遠(yuǎn)程訪問 mysql 設(shè)置mysql grant all privileges on database_test.* to root192.168.1.9 identified by 123456; mysql flush privileges; 1、使用 show語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫mysq

20、l show databases; 2、創(chuàng)建一個(gè)數(shù)據(jù)庫mysqldata mysql create database mydata; 3、選擇你所創(chuàng)建的數(shù)據(jù)庫mysql use mydata; 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 (test,m); 8、用文本方式將數(shù)據(jù)裝入數(shù)據(jù)

21、庫表中(例如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=test; 剛安裝好的mysql 包含一個(gè)含空密碼的root

22、帳戶和一個(gè)匿名帳戶,這是很大的安全隱患,對(duì)于一些重要的應(yīng)用我們應(yīng)將安全性盡可能提高,在這里應(yīng)把匿名帳戶刪除、root 帳戶設(shè)置密碼,可用如下命令進(jìn)行:= mysql use mysql; mysql delete from user where user=; mysql update user set password=password(newpassword) where user=root; = 如果要對(duì)用戶所用的登錄終端進(jìn)行限制,可以更新user 表中相應(yīng)用戶的 host 字段,在進(jìn)行了以上更改后應(yīng)重新啟動(dòng)數(shù)據(jù)庫服務(wù),此時(shí)登錄時(shí)可用如下類似命令:= shell mysql -uroot

23、-p; shell mysql -uroot -pnewpassword; shell mysql mydb -uroot -p; shell mysql mydb -uroot -pnewpassword; = 上面命令參數(shù)是常用參數(shù)的一部分,詳細(xì)情況可參考文檔。此處的mydb 是要登錄的數(shù)據(jù)庫的名稱。在進(jìn)行開發(fā)和實(shí)際應(yīng)用中,用戶不應(yīng)該只用root 用戶進(jìn)行連接數(shù)據(jù)庫,雖然使用root 用戶進(jìn)行測(cè)試時(shí)很方便,但會(huì)給系統(tǒng)帶來重大安全隱患, 也不利于管理技術(shù)的提高。我們給一個(gè)應(yīng)用中使用的用戶賦予最恰當(dāng)?shù)臄?shù)據(jù)庫權(quán)限。如一個(gè)只進(jìn)行數(shù)據(jù)插入的用戶不應(yīng)賦予其刪除數(shù)據(jù)的權(quán)限。mysql 的用戶管理是通過u

24、ser 表來實(shí)現(xiàn)的,添加新用戶常用的方法有兩個(gè),一是在user 表插入相應(yīng)的數(shù)據(jù)行,同時(shí)設(shè)置相應(yīng)的權(quán)限;二是通過grant 命令創(chuàng)建具有某種權(quán)限的用戶。其中g(shù)rant 的常用用法如下:= mysql grant all on mydb.* to newusernamehostname identified by password ; mysql grant usage on *.* to newusernamehostname identified by password; mysql grant select,insert,update on mydb.* to newusernamehos

25、tname identified by password; mysql grant update,delete on mydb.testtable to newusernamehostname identified by password; = 若要給此用戶賦予他在相應(yīng)對(duì)象上的權(quán)限的管理能力,可在grant 后面添加 with grant option 選項(xiàng)。而對(duì)于用插入user 表添加的用戶,password 字段應(yīng)用password 函數(shù)進(jìn)行更新加密,以防不軌之人竊看密碼。 對(duì)于那些已經(jīng)不用的用戶應(yīng)給予清除,權(quán)限過界的用戶應(yīng)及時(shí)回收權(quán)限,回收權(quán)限可以通過更新user 表相應(yīng)字段,也可以使用

26、revoke 操作。以下是常用權(quán)限的解釋:= 全局管理權(quán)限file :在 mysql服務(wù)器上讀寫文件。process :顯示或殺死屬于其它用戶的服務(wù)線程。reload :重載訪問控制表,刷新日志等。shutdown :關(guān)閉 mysql服務(wù)。數(shù)據(jù)庫 /數(shù)據(jù)表 /數(shù)據(jù)列權(quán)限alter :修改已存在的數(shù)據(jù)表(例如增加/刪除列)和索引。create :建立新的數(shù)據(jù)庫或數(shù)據(jù)表。delete :刪除表的記錄。drop :刪除數(shù)據(jù)表或數(shù)據(jù)庫。index :建立或刪除索引。insert :增加表的記錄。select :顯示 /搜索表的記錄。update :修改表中已存在的記錄。特別的權(quán)限all :允許做任何事

27、(和root 一樣) 。usage :只允許登錄 -其它什么也不允許做。= mysql常用操作基本操作,以下都是mysql5.0 下測(cè)試通過首先說明下,記住在每個(gè)命令結(jié)束時(shí)加上;(分號(hào))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

28、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ù)庫常用 source 命令進(jìn)入 mysql 數(shù)據(jù)庫控制臺(tái),如 mysql -u root -p mysqluse 數(shù)據(jù)庫然后使用 source 命令,后面參數(shù)為腳本文件(如這里用到的 .sql) mysqlsource d:wcnc_db.sql mysql 的 optimizer

29、(優(yōu)化元件)在優(yōu)化sql語句時(shí),首先需要收集一些相關(guān)信息, 其中就包括表的cardinality (可以翻譯為“散列程度”) ,它表示某個(gè)索引對(duì)應(yīng)的列包含多少個(gè)不同的值如果cardinality 大大少于數(shù)據(jù)的實(shí)際散列程度,那么索引就基本失效了。我們可以使用show index語句來查看索引的散列程度:show index from players; table key_name column_name cardinality - - - - players primary playerno 14 因?yàn)榇藭r(shí)player 表中不同的playerno 數(shù)量遠(yuǎn)遠(yuǎn)多于14,索引基本失效。下面我們通過a

30、nalyze table語句來修復(fù)索引:analyze table players; show index from players; 結(jié)果是:table key_name column_name cardinality - - - - players primary playerno 1000 此時(shí)索引已經(jīng)修復(fù),查詢效率大大提高。需要注意的是,如果開啟了binlog,那么 analyze table的結(jié)果也會(huì)寫入 binlog,我們可以在analyze 和 table 之間添加關(guān)鍵字local 取消寫入。checksum table 數(shù)據(jù)在傳輸時(shí), 可能會(huì)發(fā)生變化,也有可能因?yàn)槠渌驌p壞,

31、為了保證數(shù)據(jù)的一致,我們可以計(jì)算checksum(校驗(yàn)值)。使用 myisam 引擎的表會(huì)把checksum 存儲(chǔ)起來,稱為 live checksum,當(dāng)數(shù)據(jù)發(fā)生變化時(shí),checksum 會(huì)相應(yīng)變化。在執(zhí)行 checksum table時(shí), 可以在最后指定選項(xiàng)qiuck 或是 extended;qiuck 表示返回存儲(chǔ)的checksum 值, 而 extended 會(huì)重新計(jì)算checksum,如果沒有指定選項(xiàng),則默認(rèn)使用extended 。optimize table 經(jīng)常更新數(shù)據(jù)的磁盤需要整理碎片,數(shù)據(jù)庫也是這樣,optimize table語句對(duì) myisam 和 innodb 類型的表

32、都有效。如果表經(jīng)常更新,就應(yīng)當(dāng)定期運(yùn)行optimize table 語句,保證效率。與 analyze table 一樣, optimize table 也可以使用local 來取消寫入binlog。check table 數(shù)據(jù)庫經(jīng)常可能遇到錯(cuò)誤,譬如數(shù)據(jù)寫入磁盤時(shí)發(fā)生錯(cuò)誤,或是索引沒有同步更新,或是數(shù)據(jù)庫未關(guān)閉mysql就停止了。遇到這些情況,數(shù)據(jù)就可能發(fā)生錯(cuò)誤:incorrect key file for table: . try to repair it. 此時(shí),我們可以使用check table語句來檢查表及其對(duì)應(yīng)的索引。譬如我們運(yùn)行check table players; 結(jié)果是ta

33、ble op msg_type msg_text - - - - tennis.players check status ok mysql 會(huì)保存表最近一次檢查的時(shí)間,每次運(yùn)行check table 都會(huì)存儲(chǔ)這些信息:執(zhí)行select table_name, check_time from information_schema.tables where table_name = players and table_schema = tennis; 結(jié)果是table_name check_time - - players 2006-08-21 16:44:25 check table還可以指定其

34、它選項(xiàng):upgrade :用來測(cè)試在更早版本的mysql 中建立的表是否與當(dāng)前版本兼容。quick : 速度最快的選項(xiàng), 在檢查各列的數(shù)據(jù)時(shí),不會(huì)檢查鏈接 (link)的正確與否,如果沒有遇到什么問題,可以使用這個(gè)選項(xiàng)。fast :只檢查表是否正常關(guān)閉,如果在系統(tǒng)掉電之后沒有遇到嚴(yán)重問題,可以使用這個(gè)選項(xiàng)。changed :只檢查上次檢查時(shí)間之后更新的數(shù)據(jù)。medium:默認(rèn)的選項(xiàng),會(huì)檢查索引文件和數(shù)據(jù)文件之間的鏈接正確性。extended :最慢的選項(xiàng),會(huì)進(jìn)行全面的檢查。repair table 用于修復(fù)表,只對(duì)myisam 和 archive類型的表有效。這條語句同樣可以指定選項(xiàng):quic

35、k :最快的選項(xiàng),只修復(fù)索引樹。extended :最慢的選項(xiàng),需要逐行重建索引。use_frm :只有當(dāng) myi 文件丟失時(shí)才使用這個(gè)選項(xiàng),全面重建整個(gè)索引。與 analyze table一樣, repair table也可以使用local 來取消寫入 binlog。一、連接 mysql 。格式:mysql -h 主機(jī)地址-u 用戶名p 用戶密碼1、連接到本機(jī)上的mysql 。首先打開 dos窗口,然后進(jìn)入目錄mysqlbin , 再鍵入命令 mysql -u root -p,回車后提示你輸密碼.注意用戶名前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼. 如果剛安裝

36、好mysql ,超級(jí)用戶root 是沒有密碼的,故直接回車即可進(jìn)入到 mysql中了, mysql的提示符是:mysql 2、 連 接 到 遠(yuǎn) 程 主 機(jī) 上 的mysql。 假 設(shè) 遠(yuǎn) 程 主 機(jī) 的ip 為 :110.110.110.110,用戶名為root, 密碼為 abcd123 。則鍵入以下命令:mysql -h110.110.110.110 -u root -p 123; (注 :u 與 root 之間可以不用加空格,其它也一樣)3、退出 mysql命令:exit (回車)二、修改密碼。格式: mysqladmin -u 用戶名-p 舊密碼password 新密碼1、給 root

37、加個(gè)密碼 ab12。首先在dos下進(jìn)入目錄mysqlbin ,然后鍵入以下命令mysqladmin -u root -password ab12 注:因?yàn)殚_始時(shí)root 沒有密碼,所以-p 舊密碼一項(xiàng)就可以省略了。2、再將 root 的密碼改為djg345。mysqladmin -u root -p ab12 password djg345 三、增加新用戶。(注意:和上面不同,下面的因?yàn)槭莔ysql 環(huán)境中的命令,所以后面都帶一個(gè)分號(hào)作為命令結(jié)束符)格式: grant select on 數(shù)據(jù)庫 .* to 用戶名 登錄主機(jī)identified by “密碼”1、增加一個(gè)用戶test1 密碼為

38、 abc,讓他可以在任何主機(jī)上登錄,并對(duì)所有數(shù)據(jù)庫有查詢、插入、修改、刪除的權(quán)限。首先用root 用戶連入 mysql ,然后鍵入以下命令:grant select,insert,update,delete on *.* to test1 ” % ” identified by “ abc ”;但增加的用戶是十分危險(xiǎn)的,你想如某個(gè)人知道test1 的密碼,那么他就可以在internet 上的任何一臺(tái)電腦上登錄你的mysql 數(shù)據(jù)庫并對(duì)你的數(shù)據(jù)可以為所欲為了,解決辦法見2。2、增加一個(gè)用戶test2 密碼為 abc,讓他只可以在localhost 上登錄, 并可以對(duì)數(shù)據(jù)庫mydb 進(jìn)行查詢、插入

39、、修改、刪除的操作(localhost指本地主機(jī),即mysql數(shù)據(jù)庫所在的那臺(tái)主機(jī)),這樣用戶即使用知道test2 的密碼,他也無法從internet 上直接訪問數(shù)據(jù)庫,只能通過mysql主機(jī)上的web 頁來訪問了。grant select,insert,update,delete on mydb.* to test2localhost identified by “ abc ”;如果你不想test2 有密碼,可以再打一個(gè)命令將密碼消掉。grant select,insert,update,delete on mydb.* to test2localhost identified by “”;

40、下篇我是mysql中有關(guān)數(shù)據(jù)庫方面的操作。注意:你必須首先登錄到 mysql中,以下操作都是在mysql的提示符下進(jìn)行的,而且每個(gè)命令以分號(hào)結(jié)束。一、操作技巧1、 如果你打命令時(shí), 回車后發(fā)現(xiàn)忘記加分號(hào),你無須重打一遍命令,只要打個(gè)分號(hào)回車就可以了。也就是說你可以把一個(gè)完整的命令分成幾行來打,完后用分號(hào)作結(jié)束標(biāo)志就 ok。2、你可以使用光標(biāo)上下鍵調(diào)出以前的命令。二、顯示命令1、顯示當(dāng)前數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)庫列表:mysql show databases; 注意: mysql 庫里面有mysql的系統(tǒng)信息,我們改密碼和新增用戶,實(shí)際上就是用這個(gè)庫進(jìn)行操作。2、顯示數(shù)據(jù)庫中的數(shù)據(jù)表:mysql u

41、se 庫名;mysql show tables; 3、顯示數(shù)據(jù)表的結(jié)構(gòu):mysql describe 表名 ; 4、建立數(shù)據(jù)庫:mysql create database 庫名 ; 5、建立數(shù)據(jù)表:mysql use 庫名 ; mysql create table 表名(字段名varchar(20), 字段名char(1); 6、刪除數(shù)據(jù)庫:mysql drop database 庫名 ; 7、刪除數(shù)據(jù)表:mysql drop table 表名;8、將表中記錄清空:mysql delete from 表名 ; 9、顯示表中的記錄:mysql select * from 表名 ; 10、往表中插

42、入記錄:mysql insert into 表名values ( ”hyq”,”m”); 11、更新表中數(shù)據(jù):mysql- update 表名 set 字段名 1=a,字段名 2=b where 字段名3=c; 12、用文本方式將數(shù)據(jù)裝入數(shù)據(jù)表中:mysql load data local infile “d:/mysql.txt ” into table 表名 ; 13、導(dǎo)入 .sql 文件命令:mysql use 數(shù)據(jù)庫名 ; mysql source d:/mysql.sql; 14、命令行修改root 密碼:mysql update mysql.user set password=pa

43、ssword( 新密碼 ) where user=root; mysql flush privileges; 15、顯示 use 的數(shù)據(jù)庫名:mysql select database(); 16、顯示當(dāng)前的user:mysql select user(); 三、一個(gè)建庫和建表以及插入數(shù)據(jù)的實(shí)例drop database if exists school; / 如果存在school 則刪除create database school; / 建立庫 school use school; / 打開庫 school create table teacher / 建立表 teacher ( id in

44、t(3) auto_increment not null primary key, name char(10) not null, address varchar(50) default 深圳 , year date ); / 建表結(jié)束/ 以下為插入字段insert into teacher values( ”,allen, 大連一中 ,1976-10-10 ); insert into teacher values( ”,jack,大連二中 ,1975-12-23 ); 如果你在 mysql 提示符鍵入上面的命令也可以,但不方便調(diào)試。(1) 你可以將以上命令原樣寫入一個(gè)文本文件中,假設(shè)為 s

45、chool.sql,然后復(fù)制到下,并在 dos狀態(tài)進(jìn)入目錄 mysqlbin, 然后鍵入以下命令:mysql -uroot -p 密碼 source c:school.sql; 也可以將school.sql 文件導(dǎo)入數(shù)據(jù)庫中。四、將文本數(shù)據(jù)轉(zhuǎn)到數(shù)據(jù)庫中1、文本數(shù)據(jù)應(yīng)符合的格式:字段數(shù)據(jù)之間用tab 鍵隔開, null 值用 n來代替 .例:3 rose 大連二中1976-10-10 4 mike 大連一中1975-12-23 假設(shè)你把這兩組數(shù)據(jù)存為school.txt 文件,放在c 盤根目錄下。2、數(shù)據(jù)傳入命令load data local infile “c:school.txt ” int

46、o table 表名; 注意:你最好將文件復(fù)制到mysqlbin目錄下,并且要先用use 命令打表所在的庫。五、備份數(shù)據(jù)庫: (命令在 dos的mysqlbin目錄下執(zhí)行)1.導(dǎo)出整個(gè)數(shù)據(jù)庫導(dǎo)出文件默認(rèn)是存在mysqlbin 目錄下mysqldump -u 用戶名-p 數(shù)據(jù)庫名 導(dǎo)出的文件名mysqldump -u user_name -p123456 database_name outfile_name.sql 2.導(dǎo)出一個(gè)表mysqldump -u 用戶名-p 數(shù)據(jù)庫名表名 導(dǎo)出的文件名mysqldump -u user_name -p database_name table_name o

47、utfile_name.sql 3.導(dǎo)出一個(gè)數(shù)據(jù)庫結(jié)構(gòu)mysqldump -u user_name -p -d add-drop-table database_name outfile_name.sql -d 沒有數(shù)據(jù)add-drop-table 在每個(gè) create 語句之前增加一個(gè)drop table 4.帶語言參數(shù)導(dǎo)出mysqldump -uroot -p default-character-set=latin1 set-charset=gbk skip-opt database_name outfile_name.sql 一、連接 mysql 。格式:mysql -h 主機(jī)地址-u 用

48、戶名p 用戶密碼1、例 1:連接到本機(jī)上的mysql 。首先在打開dos 窗口,然后進(jìn)入目錄mysqlbin,再鍵入命令mysql -uroot -p , 回車后提示你輸密碼,如果剛安裝好mysql , 超級(jí)用戶 root是沒有密碼的,故直接回車即可進(jìn)入到mysql中了, mysql的提示符是: mysql 2、例2:連接到遠(yuǎn)程主機(jī)上的mysql 。假設(shè)遠(yuǎn)程主機(jī)的ip 為:110.110.110.110,用戶名為root, 密碼為 abcd123。則鍵入以下命令:mysql -h110.110.110.110 -uroot -pabcd123 (注 :u 與 root 可以不用加空格,其它也一

49、樣)3、退出 mysql命令:exit (回車)二、修改密碼。格式: mysqladmin -u 用戶名-p 舊密碼password 新密碼1、例 1:給 root 加個(gè)密碼ab12。首先在dos下進(jìn)入目錄mysqlbin ,然后鍵入以下命令mysqladmin -uroot -password ab12 注:因?yàn)殚_始時(shí)root 沒有密碼,所以-p 舊密碼一項(xiàng)就可以省略了。2、例 2:再將 root 的密碼改為djg345。mysqladmin -uroot -pab12 password djg345 三、增加新用戶。 (注意:和上面不同,下面的因?yàn)槭莔ysql環(huán)境中的命令,所以后面都帶一個(gè)

50、分號(hào)作為命令結(jié)束符)格式: grant select on 數(shù)據(jù)庫 .* to 用戶名 登錄主機(jī)identified by 密碼 例 1、增加一個(gè)用戶test1 密碼為 abc,讓他可以在任何主機(jī)上登錄,并對(duì)所有數(shù)據(jù)庫有查詢、插入、修改、刪除的權(quán)限。首先用以root用戶連入 mysql ,然后鍵入以下命令:grant select,insert,update,delete on *.* to test1% identified by abc; 但例 1 增加的用戶是十分危險(xiǎn)的,你想如某個(gè)人知道test1 的密碼,那么他就可以在internet 上的任何一臺(tái)電腦上登錄你的mysql 數(shù)據(jù)庫并對(duì)你

51、的數(shù)據(jù)可以為所欲為了,解決辦法見例2。例 2、 增加一個(gè)用戶test2 密碼為 abc,讓他只可以在localhost 上登錄,并可以對(duì)數(shù)據(jù)庫mydb 進(jìn)行查詢、 插入、修改、刪除的操作 (localhost指本地主機(jī),即mysql數(shù)據(jù)庫所在的那臺(tái)主機(jī)),這樣用戶即使用知道 test2 的密碼,他也無法從internet 上直接訪問數(shù)據(jù)庫,只能通過mysql主機(jī)上的web 頁來訪問了。grant select,insert,update,delete on mydb.* to test2localhost identified by abc; 如果你不想test2 有密碼,可以再打一個(gè)命令將密

52、碼消掉。grant select,insert,update,delete on mydb.* to test2localhost identified by ; 在上篇我們講了登錄、增加用戶、 密碼更改等問題。下篇我們來看看mysql中有關(guān)數(shù)據(jù)庫方面的操作。注意:你必須首先登錄到mysql中,以下操作都是在mysql的提示符下進(jìn)行的,而且每個(gè)命令以分號(hào)結(jié)束。一、操作技巧1、 如果你打命令時(shí), 回車后發(fā)現(xiàn)忘記加分號(hào),你無須重打一遍命令,只要打個(gè)分號(hào)回車就可以了。也就是說你可以把一個(gè)完整的命令分成幾行來打,完后用分號(hào)作結(jié)束標(biāo)志就ok。2、你可以使用光標(biāo)上下鍵調(diào)出以前的命令。但以前我用過的一個(gè)my

53、sql舊版本不支持。我現(xiàn)在用的是mysql-3.23.27-beta-win 。二、顯示命令1、顯示數(shù)據(jù)庫列表。show databases; 剛開始時(shí)才兩個(gè)數(shù)據(jù)庫:mysql 和 test。 mysql庫很重要它里面有mysql的系統(tǒng)信息, 我們改密碼和新增用戶,實(shí)際上就是用這個(gè)庫進(jìn)行操作。2、顯示庫中的數(shù)據(jù)表:use mysql; 打開庫,學(xué)過foxbase 的一定不會(huì)陌生吧show tables; 3、顯示數(shù)據(jù)表的結(jié)構(gòu):describe 表名 ; 4、建庫:create database 庫名 ; 5、建表:use 庫名;create table 表名(字段設(shè)定列表 );6、刪庫和刪表

54、: drop database 庫名 ; drop table 表名;7、將表中記錄清空:delete from 表名 ; 8、顯示表中的記錄:select * from 表名 ; 三、一個(gè)建庫和建表以及插入數(shù)據(jù)的實(shí)例drop database if exists school; / 如果存在school 則刪除create database school; / 建立庫 school use school; / 打開庫 school create table teacher / 建立表 teacher ( id int(3) auto_increment not null primary ke

55、y, name char(10) not null, address varchar(50) default 深圳 , year date ); / 建表結(jié)束/ 以下為插入字段insert into teacher values(,glchengang, 深圳一中 ,1976-10-10); insert into teacher values(,jack, 深圳一中 ,1975-12-23); 注:在建表中(1)將 id 設(shè)為長度為3 的數(shù)字字段 :int(3)并讓它每個(gè)記錄自動(dòng)加一 :auto_increment 并不能為空 :not null 而且讓他成為主字段 primary key

56、(2) 將 name 設(shè)為長度為10 的字符字段(3) 將 address設(shè)為長度 50 的字符字段, 而且缺省值為深圳。varchar 和 char 有什么區(qū)別呢,只有等以后的文章再說了。(4)將 year設(shè)為日期字段。如果你在 mysql 提示符鍵入上面的命令也可以,但不方便調(diào)試。你可以將以上命令原樣寫入一個(gè)文本文件中假設(shè)為school.sql,然后復(fù)制到下,并在dos狀態(tài)進(jìn)入目錄 mysqlbin ,然后鍵入以下命令:mysql -uroot -p 密碼school.bbb 注釋 :將數(shù)據(jù)庫 school 備份到 school.bbb 文件,school.bbb 是一個(gè)文本文件,文件名任

57、取,打開看看你會(huì)有新發(fā)現(xiàn)。有很多朋友雖然安裝好了mysql 但卻不知如何使用它。在這篇文章中我們就從連接mysql、修改密碼、增加用戶等方面來學(xué)習(xí)一些mysql 的常用命令。一、連接 mysql。格式:mysql -h 主機(jī)地址-u 用戶名p 用戶密碼1、例 1:連接到本機(jī)上的mysql 。首先在打開dos 窗口,然后進(jìn)入目錄mysqlbin ,再鍵入命令mysql -uroot -p ,回車后提示你輸密碼,如果剛安裝好mysql,超級(jí)用戶root 是沒有密碼的,故直接回車即可進(jìn)入到mysql 中了,mysql 的提示符是:mysql 2、例 2:連接到遠(yuǎn)程主機(jī)上的mysql。假設(shè)遠(yuǎn)程主機(jī)的i

58、p 為:110.110.110.110,用戶名為 root ,密碼為abcd123。則鍵入以下命令:mysql -h110.110.110.110 -uroot -pabcd123 (注 :u 與 root 可以不用加空格,其它也一樣)3、退出mysql 命令:exit (回車)二、修改密碼。格式: mysqladmin -u 用戶名-p 舊密碼password 新密碼1、例 1:給 root 加個(gè)密碼ab12。首先在dos下進(jìn)入目錄mysqlbin ,然后鍵入以下命令mysqladmin -u root -password ab12 注:因?yàn)殚_始時(shí)root 沒有密碼,所以-p 舊密碼一項(xiàng)就可

59、以省略了。2、例 2:再將 root 的密碼改為djg345。mysqladmin -u root -p ab12 password djg345 三、增加新用戶。(注意:和上面不同,下面的因?yàn)槭莔ysql 環(huán)境中的命令,所以后面都帶一個(gè)分號(hào)作為命令結(jié)束符)格式: grant select on 數(shù)據(jù)庫 .* to 用戶名 登錄主機(jī)identified by 密碼 例 1、 增加一個(gè)用戶test1 密碼為abc, 讓他可以在任何主機(jī)上登錄,并對(duì)所有數(shù)據(jù)庫有查詢、插入、修改、刪除的權(quán)限。 首先用以root 用戶連入mysql,然后鍵入以下命令:grant select, insert, upda

60、te, delete on *.* to test1% identified by abc; 但例 1 增加的用戶是十分危險(xiǎn)的,你想如某個(gè)人知道test1 的密碼,那么他就可以在internet 上的任何一臺(tái)電腦上登錄你的mysql 數(shù)據(jù)庫并對(duì)你的數(shù)據(jù)可以為所欲為了,解決辦法見例2。例 2、 增加一個(gè)用戶test2 密碼為 abc,讓他只可以在localhost 上登錄,并可以對(duì)數(shù)據(jù)庫mydb 進(jìn)行查詢、 插入、修改、刪除的操作 (localhost指本地主機(jī),即mysql數(shù)據(jù)庫所在的那臺(tái)主機(jī)),這樣用戶即使用知道 test2 的密碼,他也無法從internet 上直接訪問數(shù)據(jù)庫,只能通過my

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論