mysql 常用命令,用的時候方便查。

1. 連接mysql:
mysqlbinmysql -h主機地址 -u用戶名 -p用戶密碼

2.退出mysql:exit

3. 修改密碼:
mysqlbinmysqladmin -uroot -p(oldpassword) password newpassword

4.增加用戶:
添加一個用戶test1 密碼為ABC;讓他可以在任何主機上登錄,并對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入

mysql,然后鍵入以下命令:grant select,insert,update,delete on *.* to test1@"%" Identified
by "abc";

增加一個用戶test2密碼為abc,讓其只可以在localhost上登錄,并可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地

主機,即mysql數據庫所在的那臺主機),這樣用戶即使用知道test2的密碼,也無法從internet上直接訪問數據庫,只能通過mysql主機上的web頁

來訪問了。grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";

增加一個可以從任何地方連接服務器的一個完全的超級用戶
grant all privileges on *.* to test3@"%" identified by 'password' with grant option;

5.刪除授權
revoke select,insert,update,delete om *.* from test2@localhost ;

--------------------------------------------------------

6.顯示數據庫
show databases;

7.顯示數據庫中的表
use dataname;
show tables;

8.顯示表的結構
describe tablesname;

9.建庫
create database 庫名;

10.建表
use dataname;
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設為長度為3的數字字段:int(3),并讓它每個記錄自動加一: auto_increment,
并不能為空:not null,而且讓它成為主字段primary key
(2) 將NAME設為長度為10的字符字段
(3) 將ADDRESS設為長度50的字符字段,而且缺省值為深圳。varchar和char有什么區別
呢,只有等以后的文章再說了。
(4) 將YEAR設為日期字段。
如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。 你可以將以上命令
原樣寫入一個文本文件中假設為school.sql,然后復制到c:下,并在DOS狀態進入目錄
mysqlin,然后鍵入以下命令:
mysql -uroot -p密碼 < c:school.sql
如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你
只要將//的注釋去掉即可使用)。


11.刪除庫和刪除表
drop dataname;
drop tablename;

12.將表中的記錄清空
delete from tablename;

13.顯示表中的記錄
select * from tablename;

14.表重命名
alter table t1 rename t2


---------------------------------------------------------

15. 備份數據庫
mysqlbinmysqldump -h(ip) -uroot -p(password) databasename > database.sql

16. 恢復數據庫
mysqlbinmysql -h(ip) -uroot -p(password) databasename < database.sql

17.復制數據庫
mysqldump --all-databases > all-databases.sql

18.備份表
mysqlbinmysqldump -h(ip) -uroot -p(password) databasename tablename > tablename.sql

19.恢復表(操作前先把原來的表刪除)
mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql

----------------------------------------------------------

20.為了改變列a,從INTEGER改為TINYINT NOT NULL(名字一樣),
并且改變列b,從CHAR(10)改為CHAR(20),同時重命名它,從b改為c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

增加一個新TIMESTAMP列,名為d:
ALTER TABLE t2 ADD d TIMESTAMP;

在列d上增加一個索引,并且使列a為主鍵:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

刪除列c:
ALTER TABLE t2 DROP COLUMN c;

增加一個新的AUTO_INCREMENT整數列,命名為c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我們索引了c,因為AUTO_INCREMENT柱必須被索引,并且另外我們聲明c為NOT NULL,
因為索引了的列不能是NULL

---------------------------------------------------------------

21.數據的導入導出
A。mysqlimport
語法:mysqlbinmysqlimport database tables.txt( 文件名需要與表名相同)
參數:-d or --delete 新數據導入數據表中之前刪除數據數據表中的所有信息;
-f or --force 不管是否遇到錯誤,mysqlimport恐萍絳迦朧藎?br /> -i or --ignore mysqlimport跳過或者忽略那些有相同唯一關鍵字的行, 導入文件中的數據將被忽略;
-l or -lock-tables 數據被插入之前鎖住表,這樣就防止了, 你在更新數據庫時,用戶的查詢和更新受到影響;
--fields-enclosed- by= char
  指定文本文件中數據的記錄時以什么括起的, 很多情況下數據以雙引號括起。 默認的情況下數據是沒有被字符括起的。
  --fields-terminated- by=char
  指定各個數據的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數據之間的分隔符。默認的分隔符是跳格符

(Tab)
  --lines-terminated- by=str
  此選項指定文本文件中行與行之間數據的分隔字符串 或者字符。 默認的情況下mysqlimport以newline為行分隔符。 您可以選擇用一個字

符串來替代一個單個的字符: 一個新行或者一個回車。
  mysqlimport命令常用的選項還有-v 顯示版本(version), -p 提示輸入密碼(password)等。

--------------------------------------------------------------

22.常用插入、修改、刪除語句
插入記錄:insert into teacher values('','glchengang','深圳一中','1976-10-10');
修改記錄:update mytable set single=′y′ where name=′abccs′;
刪除記錄:delete from mytable where name=′abc′;