PART I
MySql常用命令總結
MYSQL常用操作基本操作,以下都是MySQL5.0下測試通過(guò)首先說(shuō)明下,記住在每個(gè)命令結束時(shí)加上;(分號)
1.導出整個(gè)數據庫
mysqldump -u 用戶(hù)名 -p --default-character-set=latin1 數據庫名 > 導出的文件名(數據庫默認編碼是latin1)
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.導出一個(gè)表
mysqldump -u 用戶(hù)名 -p 數據庫名 表名> 導出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.導出一個(gè)數據庫結構
mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 沒(méi)有數據 –add-drop-table 在每個(gè)create語(yǔ)句之前增加一個(gè)drop table
4.導入數據庫
常用source 命令
進(jìn)入mysql數據庫控制臺,
如mysql -u root -p
mysql>use 數據庫
然后使用source命令,后面參數為腳本文件(如這里用到的.sql)
mysql>source d:wcnc_db.sql
一、啟動(dòng)與退出
1、進(jìn)入MySQL:?jiǎn)?dòng)MySQL Command Line Client(MySQL的DOS界面),直接輸入安裝時(shí)的密碼即可。此時(shí)的提示符是:mysql>
2、退出MySQL:quit或exit
二、庫操作
1、、創(chuàng )建數據庫
命令:create database <數據庫名>
例如:建立一個(gè)名為xhkdb的數據庫
mysql> create database xhkdb;
2、顯示所有的數據庫
命令:show databases (注意:最后有個(gè)s)
mysql> show databases;
3、刪除數據庫
命令:drop database <數據庫名>
例如:刪除名為 xhkdb的數據庫
mysql> drop database xhkdb;
4、連接數據庫
命令: use <數據庫名>
例如:如果xhkdb數據庫存在,嘗試存取它:
mysql> use xhkdb;
屏幕提示:Database changed
5、當前選擇(連接)的數據庫
mysql> select database();
6、當前數據庫包含的表信息:
mysql> show tables; (注意:最后有個(gè)s)
三、表操作,操作之前應連接某個(gè)數據庫
1、建表
命令:create table <表名> ( <字段名1> <類(lèi)型1> [,..<字段名n> <類(lèi)型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));
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 <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號為1的名為T(mén)om的成績(jì)?yōu)?6.45, 編號為2 的名為Joan 的成績(jì)?yōu)?2.99,編號為3 的名為Wang 的成績(jì)?yōu)?6.5.
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
5、查詢(xún)表中的數據
1)、查詢(xún)所有行
命令: select <字段1,字段2,...> from < 表名 > where < 表達式 >
例如:查看表 MyClass 中所有數據
mysql> select * from MyClass;
2)、查詢(xún)前幾行數據
例如:查看表 MyClass 中前2行數據
mysql> select * from MyClass order by id limit 0,2;
6、刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表 MyClass中編號為1 的記錄
mysql> delete from MyClass where id=1;
7、修改表中數據:update 表名 set 字段=新值,… where 條件
mysql> update MyClass set name='Mary' where id=1;
7、在表中增加字段:
命令:alter table 表名 add字段 類(lèi)型 其他;
例如:在表MyClass中添加了一個(gè)字段passtest,類(lèi)型為int(4),默認值為0
mysql> alter table MyClass add passtest int(4) default '0'
8、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改為YouClass
mysql> rename table MyClass to YouClass;
更新字段內容
update 表名 set 字段名 = 新內容
update 表名 set 字段名 = replace(字段名,'舊內容','新內容');
文章前面加入4個(gè)空格
update article set content=concat(' ',content);
字段類(lèi)型
1.INT[(M)] 型: 正常大小整數類(lèi)型
2.DOUBLE[(M,D)] [ZEROFILL] 型: 正常大小(雙精密)浮點(diǎn)數字類(lèi)型
3.DATE 日期類(lèi)型:支持的范圍是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式來(lái)顯示DATE值,但是允許你使用字符串或數字把值賦給DATE列
4.CHAR(M) 型:定長(cháng)字符串類(lèi)型,當存儲時(shí),總是是用空格填滿(mǎn)右邊到指定的長(cháng)度
5.BLOB TEXT類(lèi)型,最大長(cháng)度為65535(2^16-1)個(gè)字符。
6.VARCHAR型:變長(cháng)字符串類(lèi)型
5.導入數據庫表
(1)創(chuàng )建.sql文件
(2)先產(chǎn)生一個(gè)庫如auction.c:mysqlbin>mysqladmin -u root -p creat auction,會(huì )提示輸入密碼,然后成功創(chuàng )建。
(2)導入auction.sql文件
c:mysqlbin>mysql -u root -p auction < auction.sql。
通過(guò)以上操作,就可以創(chuàng )建了一個(gè)數據庫auction以及其中的一個(gè)表auction。
6.修改數據庫
(1)在mysql的表中增加字段:
alter table dbname add column userid int(11) not null primary key auto_increment;
這樣,就在表dbname中添加了一個(gè)字段userid,類(lèi)型為int(11)。
7.mysql數據庫的授權
mysql>grant select,insert,delete,create,drop
on *.* (或test.*/user.*/..)
to 用戶(hù)名@localhost
identified by '密碼';
如:新建一個(gè)用戶(hù)賬號以便可以訪(fǎng)問(wèn)數據庫,需要進(jìn)行如下操作:
mysql> grant usage
-> ON test.*
-> TO
testuser@localhost;
Query OK, 0 rows affected (0.15 sec)
此后就創(chuàng )建了一個(gè)新用戶(hù)叫:testuser,這個(gè)用戶(hù)只能從localhost連接到數據庫并可以連接到test 數據庫。下一步,我們必須指定testuser這個(gè)用戶(hù)可以執行哪些操作:
mysql> GRANT select, insert, delete,update
-> ON test.*
-> TO
testuser@localhost;
Query OK, 0 rows affected (0.00 sec)
此操作使testuser能夠在每一個(gè)test數據庫中的表執行SELECT,INSERT和DELETE以及UPDATE查詢(xún)操作?,F在我們結束操作并退出MySQL客戶(hù)程序:
mysql> exit
Bye9!
-----建立索引-----------
創(chuàng )建表
create table employee (employee_id char(6) primary key,name char(8),sex char(2),birthday
date);
create table products (product_id char(2) primary key, name char(20));
察看表結構
describe employ-ee;
describe products;
修改表結構
alter table employee modify name char(10);
alter table products modiry name char(30);
向表中添加數據
insert into employee values ('200301','zhangsan','m','1978/5/8');
insert into employee values ('200302','lisi','f','1973/3/20');
insert into employee values ('200303','wangwu','f','1970/10/9');
insert into employee values ('200304','zhaoliu','m','1975/1/18');
修改表內容
update employee set employee_id="200310" where name="zhaoliu";
創(chuàng )建索引
建表時(shí)創(chuàng )建帶索引的表
create table test1 (test1_id char(4),name char(20), index idx_test1(name(10)));
create index idx_employee on employee(name); 用create為name列創(chuàng )建索引
alter table products add index idx_products(name); 用alter為name列創(chuàng )建索引
察看索引
show index from employee;
show index from products;
刪除索引
drop index idx_employee on employee;
alter table products drop index idx_products;
---------------------------------------------
1:使用SHOW語(yǔ)句找出在服務(wù)器上當前存在什么數據庫:
mysql> SHOW DATABASES;
2:2、創(chuàng )建一個(gè)數據庫MYSQLDATA
mysql> Create DATABASE MYSQLDATA;
3:選擇你所創(chuàng )建的數據庫
mysql> USE MYSQLDATA; (按回車(chē)鍵出現Database changed 時(shí)說(shuō)明操作成功!)
4:查看現在的數據庫中存在什么表
mysql> SHOW TABLES;
5:創(chuàng )建一個(gè)數據庫表
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';
PART II
以下是無(wú)意中在網(wǎng)絡(luò )看到的使用MySql的管理心得,
摘自:http://www1.xjtusky.com/article/htmldata/2004_12/3/57/article_1060_1.html
在windows中MySql以服務(wù)形式存在,在使用前應確保此服務(wù)已經(jīng)啟動(dòng),未啟動(dòng)可用net start mysql命令啟動(dòng)。而Linux中啟動(dòng)時(shí)可用“/etc/rc.d/init.d/mysqld start"命令,注意啟動(dòng)者應具有管理員權限。
剛安裝好的MySql包含一個(gè)含空密碼的root帳戶(hù)和一個(gè)匿名帳戶(hù),這是很大的安全隱患,對于一些重要的應用我們應將安全性盡可能提高,在這里應把匿名帳戶(hù)刪除、 root帳戶(hù)設置密碼,可用如下命令進(jìn)行:
use mysql;
delete from User where User="";
update User set Password=PASSWORD('newpassword') where User='root';
如果要對用戶(hù)所用的登錄終端進(jìn)行限制,可以更新User表中相應用戶(hù)的Host字段,在進(jìn)行了以上更改后應重新啟動(dòng)數據庫服務(wù),此時(shí)登錄時(shí)可用如下類(lèi)似命令:
mysql -uroot -p;
mysql -uroot -pnewpassword;
mysql mydb -uroot -p;
mysql mydb -uroot -pnewpassword;
上面命令參數是常用參數的一部分,詳細情況可參考文檔。此處的mydb是要登錄的數據庫的名稱(chēng)。
在進(jìn)行開(kāi)發(fā)和實(shí)際應用中,用戶(hù)不應該只用root用戶(hù)進(jìn)行連接數據庫,雖然使用root用戶(hù)進(jìn)行測試時(shí)很方便,但會(huì )給系統帶來(lái)重大安全隱患,也不利于管理技術(shù)的提高。我們給一個(gè)應用中使用的用戶(hù)賦予最恰當的數據庫權限。如一個(gè)只進(jìn)行數據插入的用戶(hù)不應賦予其刪除數據的權限。MySql的用戶(hù)管理是通過(guò) User表來(lái)實(shí)現的,添加新用戶(hù)常用的方法有兩個(gè),一是在User表插入相應的數據行,同時(shí)設置相應的權限;二是通過(guò)GRANT命令創(chuàng )建具有某種權限的用戶(hù)。其中GRANT的常用用法如下:
grant all on mydb.* to
NewUserName@HostName identified by "password" ;
grant usage on *.* to
NewUserName@HostName identified by "password";
grant select,insert,update on mydb.* to
NewUserName@HostName identified by "password";
grant update,delete on mydb.TestTable to
NewUserName@HostName identified by "password";
若要給此用戶(hù)賦予他在相應對象上的權限的管理能力,可在GRANT后面添加WITH GRANT OPTION選項。而對于用插入User表添加的用戶(hù),Password字段應用PASSWORD 函數進(jìn)行更新加密,以防不軌之人竊看密碼。對于那些已經(jīng)不用的用戶(hù)應給予清除,權限過(guò)界的用戶(hù)應及時(shí)回收權限,回收權限可以通過(guò)更新User表相應字段,也可以使用REVOKE操作。
下面給出本人從其它資料(
www.cn-java.com)獲得的對常用權限的解釋?zhuān)?
全局管理權限:
FILE: 在MySQL服務(wù)器上讀寫(xiě)文件。
PROCESS: 顯示或殺死屬于其它用戶(hù)的服務(wù)線(xiàn)程。
RELOAD: 重載訪(fǎng)問(wèn)控制表,刷新日志等。
SHUTDOWN: 關(guān)閉MySQL服務(wù)。
數據庫/數據表/數據列權限:
Alter: 修改已存在的數據表(例如增加/刪除列)和索引。
Create: 建立新的數據庫或數據表。
Delete: 刪除表的記錄。
Drop: 刪除數據表或數據庫。
INDEX: 建立或刪除索引。
Insert: 增加表的記錄。
Select: 顯示/搜索表的記錄。
Update: 修改表中已存在的記錄。
特別的權限:
ALL: 允許做任何事(和root一樣)。
USAGE: 只允許登錄--其它什么也不允許做。
--------------------------------------------------------------------------
PART III
MYSQL常用命令(上)
有很多朋友雖然安裝好了mysql但卻不知如何使用它。在這篇文章中我們就從連接MYSQL、修改密碼、增加用戶(hù)等方面來(lái)學(xué)習一些MYSQL的常用命令。有很多朋友雖然安裝好了mysql但卻不知如何使用它。在這篇文章中我們就從連接MYSQL、修改密碼、增加用戶(hù)等方面來(lái)學(xué)習一些MYSQL的常用命令。
一、連接MYSQL
格式: mysql -h主機地址 -u用戶(hù)名 -p用戶(hù)密碼
1、例1:連接到本機上的MYSQL
首先在打開(kāi)DOS窗口,然后進(jìn)入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車(chē)后提示你輸密碼,如果剛安裝好MYSQL,超級用戶(hù)root是沒(méi)有密碼的,故直接回車(chē)即可進(jìn)入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:連接到遠程主機上的MYSQL
假設遠程主機的IP為:110.110.110.110,用戶(hù)名為root,密碼為abcd123。則鍵入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
?。ㄗ?u與root可以不用加空格,其它也一樣)
3、退出MYSQL命令: exit (回車(chē))
二、修改密碼
格式:mysqladmin -u用戶(hù)名 -p舊密碼 password 新密碼
1、例1:給root加個(gè)密碼ab12。首先在DOS下進(jìn)入目錄mysqlbin,然后鍵入以下命令:
mysqladmin -uroot -password ab12
注:因為開(kāi)始時(shí)root沒(méi)有密碼,所以-p舊密碼一項就可以省略了。
2、例2:再將root的密碼改為djg345
mysqladmin -uroot -pab12 password djg345
MYSQL常用命令(下)
作者: , 出處:動(dòng)網(wǎng)先鋒, 責任編輯: 武揚, 2005-04-13 09:58 其實(shí)MYSQL的對數據庫的操作與其它的SQL類(lèi)數據庫大同小異,您最好找本將SQL的書(shū)看看。我在這里只介紹一些基本的,其實(shí)我也就只懂這些了
一、操作技巧
1、如果你打命令時(shí),回車(chē)后發(fā)現忘記加分號,你無(wú)須重打一遍命令,只要打個(gè)分號回車(chē)就可以了。也就是說(shuō)你可以把一個(gè)完整的命令分成幾行來(lái)打,完后用分號作結束標志就OK。
2、你可以使用光標上下鍵調出以前的命令。但以前我用過(guò)的一個(gè)MYSQL舊版本不支持。我現在用的是mysql-3.23.27-beta-win。
二、顯示命令
1、顯示數據庫列表。
show databases;
剛開(kāi)始時(shí)才兩個(gè)數據庫:mysql和test。mysql庫很重要它里面有MYSQL的系統信息,我們改密碼和新增用戶(hù),實(shí)際上就是用這個(gè)庫進(jìn)行操作。
2、顯示庫中的數據表:
use mysql; //打開(kāi)庫,學(xué)過(guò)FOXBASE的一定不會(huì )陌生吧
show tables;
3、顯示數據表的結構:
describe 表名;
4、建庫:
create database 庫名;
5、建表:
use 庫名;
create table 表名 (字段設定列表);
6、刪庫和刪表:
drop database 庫名;
drop table 表名;
7、將表中記錄清空:
delete from 表名;
8、顯示表中的記錄:
select * from 表名;
三、一個(gè)建庫和建表以及插入數據的實(shí)例
drop database if exists school; //如果存在SCHOOL則刪除
create database school; //建立庫SCHOOL
use school; //打開(kāi)庫SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //建表結束
//以下為插入字段
insert into teacher values('','glchengang','深圳一中','1976-10-10');
insert into teacher values('','jack','深圳一中','1975-12-23');
注:在建表中(1)將ID設為長(cháng)度為3的數字字段:int(3)并讓它每個(gè)記錄自動(dòng)加一:auto_increment并不能為空:not null而且讓他成為主字段primary key
?。?)將NAME設為長(cháng)度為10的字符字段
?。?)將ADDRESS設為長(cháng)度50的字符字段,而且缺省值為深圳。varchar和char有什么區別呢,只有等以后的文章再說(shuō)了。
?。?)將YEAR設為日期字段。
如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。你可以將以上命令原樣寫(xiě)入一個(gè)文本文件中假設為school.sql,然后復制到c:\下,并在DOS狀態(tài)進(jìn)入目錄\mysql\bin,然后鍵入以下命令:
mysql -uroot -p密碼 < c:\school.sql
如果成功,空出一行無(wú)任何顯示;如有錯誤,會(huì )有提示。(以上命令已經(jīng)調試,你只要將//的注釋去掉即可使用)。
四、將文本數據轉到數據庫中
1、文本數據應符合的格式:字段數據之間用tab鍵隔開(kāi),null值用\n來(lái)代替.
例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
2、數據傳入命令 load data local infile "文件名" into table 表名;
注意:你最好將文件復制到\mysql\bin目錄下,并且要先用use命令打表所在的庫 。
五、備份數據庫:(命令在DOS的\mysql\bin目錄下執行)
mysqldump --opt school>school.bbb
注釋:將數據庫school備份到school.bbb文件,school.bbb是一個(gè)文本文件,文件名任取,打開(kāi)看看你會(huì )有新發(fā)現。