MySQL常用語句一覽

本文實例,運行於 MySQL 5.0 及以上版本,爲以後查詢方便標記於此,MySQL使用基本語句:

 

一、連接MYSQL。

格式: mysql -h主機地址 -u用戶名 -p用戶密碼

1、例1:連接到本機上的MYSQL。

首先在打開DOS窗口,然後進入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車後提示你輸密碼,如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是:mysql>

2、例2:連接到遠程主機上的MYSQL。假設遠程主機的IP爲: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加個密碼ab12。首先在DOS下進入目錄mysqlbin,然後鍵入以下命令

mysqladmin -uroot -password ab12

注:因爲開始時root沒有密碼,所以-p舊密碼一項就可以省略了。

2、例2:再將root的密碼改爲djg345。

mysqladmin -uroot -pab12 password djg345

三、(注意:和上面不同,下面的因爲是MYSQL環境中的命令,所以後面都帶一個分號作爲命令結束符)

格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by \"密碼\"

例1、增加一個用戶test1密碼爲abc,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MYSQL,然後鍵入以下命令:

grant select,insert,update,delete on *.* to test1@\"%\" Identified by \"abc\";

但例1增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一臺電腦上登錄你的mysql數據庫並對你的數據可以爲所欲爲了,解決辦法見例2。

例2、增加一個用戶test2密碼爲abc,讓他只可以在localhost上登錄,並可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL數據庫所在的那臺主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據庫,只能通過MYSQL主機上的web頁來訪問了。

grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\";

如果你不想test2有密碼,可以再打一個命令將密碼消掉。

grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";

在上篇我們講了登錄、增加用戶、密碼更改等問題。下篇我們來看看MYSQL中有關數據庫方面的操作。注意:你必須首先登錄到MYSQL中,以下操作都是在MYSQL的提示符下進行的,而且每個命令以分號結束。

 

MySQL 賦予用戶權限命令的簡單格式可概括爲:grant 權限 on 數據庫對象 to 用戶

一、grant 普通數據用戶,查詢、插入、更新、刪除 數據庫中所有表數據的權利。
用一條 MySQL 命令來替代:
grant select, insert, update, delete on testdb.* to common_user@'%'

二、grant 數據庫開發人員,創建表、索引、視圖、存儲過程、函數。。。等權限。
grant 創建、修改、刪除 MySQL 數據表結構權限。

grant create on testdb.* to developer@'192.168.0.%';
grant alter  on testdb.* to
developer@'192.168.0.%';
grant drop   on testdb.* to
developer@'192.168.0.%';

grant 操作 MySQL 外鍵權限。

grant references on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 臨時表權限。

grant create temporary tables on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 索引權限。

grant index on  testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 視圖、查看視圖源代碼 權限。

grant create view on testdb.* to developer@'192.168.0.%';
grant show   view on testdb.* to
developer@'192.168.0.%';

grant 操作 MySQL 存儲過程、函數 權限。

grant create routine on testdb.* to developer@'192.168.0.%';  -- now, can show procedure status
grant alter  routine on testdb.* to
developer@'192.168.0.%';  -- now, you can drop a procedure
grant execute        on testdb.* to
developer@'192.168.0.%';
三、grant 普通 DBA 管理某個 MySQL 數據庫的權限。
grant all privileges on testdb to dba@'localhost'
其中,關鍵字 “privileges” 可以省略。

四、grant 高級 DBA 管理 MySQL 中所有數據庫的權限。
grant all on *.* to dba@'localhost'


五、MySQL grant 權限,分別可以作用在多個層次上。
1. grant 作用在整個 MySQL 服務器上:

grant select on *.* to dba@localhost; -- dba 可以查詢 MySQL 中所有數據庫中的表。
grant all    on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有數據庫
2. grant 作用在單個數據庫上:

grant select on testdb.* to dba@localhost; -- dba 可以查詢 testdb 中的表。

3. grant 作用在單個數據表上:

grant select, insert, update, delete on testdb.orders to dba@localhost;

4. grant 作用在表中的列上:

grant select(id, se, rank) on testdb.apache_log to dba@localhost;

5. grant 作用在存儲過程、函數上:

grant execute on procedure testdb.pr_add to 'dba'@'localhost'
grant execute on function  testdb.fn_add to 'dba'@'localhost'
六、查看 MySQL 用戶權限
查看當前用戶(自己)權限:

show grants;
查看其他 MySQL 用戶權限:

show grants for dba@localhost;
七、撤銷已經賦予給 MySQL 用戶權限的權限。
revoke 跟 grant 的語法差不多,只需要把關鍵字 “to” 換成 “from” 即可:

grant  all on *.* to   dba@localhost;
revoke all on *.* from dba@localhost;
八、MySQL grant、revoke 用戶權限注意事項
1. grant, revoke 用戶權限後,該用戶只有重新連接 MySQL 數據庫,權限才能生效。

2. 如果想讓授權的用戶,也可以將這些權限 grant 給其他用戶,需要選項 “grant option“

grant select on testdb.* to dba@localhost with grant option;
這個特性一般用不到。實際中,數據庫權限最好由 DBA 來統一管理。

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

 

1.MySQL->CREATE DATABASE dbname;//創建數據庫

MySQL->CREATE TABLE tablename;//創建表

MySQL->SHOW DATABASES;//顯示數據庫信息,有那些可用的數據庫。

MySQL->USE dbname;//選擇數據庫

MySQL->SHOW TABLES;//顯示錶信息,有那些可用的表

MySQL->DESCRIBE tablename;//顯示創建的表的信息

2.數據庫備份/恢復

MySQL->mysqldump –uroot –pxcg213 sealightmis>d:\sealightmis.sql

MySQL->mysql –uroot –pxcg213 sealightmis<d:\sealightmis.sql

3.數據庫結構備份

MySQL->mysqldump -- opt -d –uroot –pxcg213 sealightmis>d:\sealightmis_DDL.sql

MySQL->mysql –uroot –pxcg213 sealightmis<d:\sealightmis_DDL.sql

4.數據庫結構修改常用語句

MySQL更改表結構添加字段:

1.            alter table `user_movement_log`  

2.            Add column GatewayId int not null default 0 AFTER `Regionid` (在哪個字段後面添加

MySQL更改表結構刪除字段:

1.            alter table `user_movement_log` drop column Gatewayid 

MySQL更改表結構調整字段順序:

1.            ALTER TABLE `user_movement_log` CHANGE `GatewayId` `GatewayId` int not null default 0 AFTER RegionID 

主鍵

al

1.            alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id); 

增加一個新列

1.            alter table t2 add d timestamp;  

2.            alter table infos add ex tinyint not null default ‘0′; 

刪除列

1.            alter table t2 drop column c; 

重命名列

1.            alter table t1 change a b integer; 

改變列的類型

1.            alter table t1 change b b bigint not null;  

2.            alter table infos change list list tinyint not null default ‘0′; 

重命名錶

1.            alter table t1 rename t2; 

加索引

1.            > alter table tablename change depno depno int(5) not null;  

2.            > alter table tablename add index 索引名 (字段名1[,字段名2 …]);  

3.            > alter table tablename add index emp_name (name); 

MySQL更改表結構中加主關鍵字的索引

1.            > alter table tablename add primary key(id); 

加唯一限制條件的索引

1.            > alter table tablename add unique emp_name2(cardnumber); 

刪除某個索引

1.            >alter table tablename drop index emp_name; 

修改表:

增加字段:

1.            > ALTER TABLE table_name ADD field_name field_type; 

修改原字段名稱及類型:

1.            > ALTER TABLE table_name CHANGE old_field_name new_field_name field_type; 

刪除字段:

1.            > ALTER TABLE table_name DROP field_name; 

以上的相關內容就是對MySQL更改表結構添加、刪除、修改字段、調整字段順序的介紹,望你能有所收穫。

6.MySQL UPDATE語句支持以下修飾符

MySQL> UPDATE persondata SET ageage=age+1;

MySQL> UPDATE persondata SET ageage=age*2, ageage=age+1; 
SQL>UPDATE items,month SET items.price=month.price WHERE items.id=month.id; 
發佈了111 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章