3、增加新用戶
注意:和上面不同,下面的因為是MYSQL環境中的命令,所以後面都帶一個分號作為命令結束符 格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by “密碼” 1、增加一個用戶test1密碼為abc,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用root用戶連入MYSQL,然後鍵入以下命令: grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”; 但增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一台電腦上登錄你的mysql數據庫並對你的數據可以為所欲為了,解決辦法見2。 2、增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,並可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL數據庫所在的那台主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據庫,只能通過MYSQL主機上的web頁來訪問了。 grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”; 如果你不想test2有密碼,可以再打一個命令將密碼消掉。 grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;
4.1 創建數據庫
注意:創建數據庫之前要先連接Mysql服務器 命令:create database <數據庫名> 例1:建立一個名為xhkdb的數據庫 mysql> create database xhkdb; 例2:創建數據庫並分配用戶 ①CREATE DATABASE 數據庫名; ②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 數據庫名.* TO 數據庫名@localhost IDENTIFIED BY '密碼'; ③SET PASSWORD FOR '數據庫名'@'localhost' = OLD_PASSWORD('密碼'); 依次執行3個命令完成數據庫創建。注意:中文 “密碼”和“數據庫”是戶自己需要設置的。
4.3 刪除數據庫
命令:drop database <數據庫名> 例如:刪除名為 xhkdb的數據庫 mysql> drop database xhkdb; 例子1:刪除一個已經確定存在的數據庫 mysql> drop database drop_database; Query OK, 0 rows affected (0.00 sec) 例子2:刪除一個不確定存在的數據庫 mysql> drop database drop_database; ERROR 1008 (HY000): Can't drop database 'drop_database'; database doesn't exist //發生錯誤,不能刪除'drop_database'數據庫,該數據庫不存在。 mysql> drop database if exists drop_database; Query OK, 0 rows affected, 1 warning (0.00 sec)//產生一個警告說明此數據庫不存在 mysql> create database drop_database; Query OK, 1 row affected (0.00 sec) mysql> drop database if exists drop_database;//if exists 判斷數據庫是否存在,不存在也不產生錯誤 Query OK, 0 rows affected (0.00 sec)
4.4 連接數據庫
命令: use <數據庫名> 例如:如果xhkdb數據庫存在,嘗試存取它: mysql> use xhkdb; 屏幕提示:Database changed use 語句可以通告MySQL把db_name數據庫作為默認(當前)數據庫使用,用於後續語句。該數據庫保持為默認數據庫,直到語段的結尾,或者直到發布一個不同的USE語句: mysql> USE db1; mysql> SELECT COUNT(*) FROM mytable; # selects from db1.mytable mysql> USE db2; mysql> SELECT COUNT(*) FROM mytable; # selects from db2.mytable 使用USE語句為一個特定的當前的數據庫做標記,不會阻礙您訪問其它數據庫中的表。下面的例子可以從db1數據庫訪問作者表,並從db2數據庫訪問編輯表: mysql> USE db1; mysql> SELECT author_name,editor_name FROM author,db2.editor -> WHERE author.editor_id = db2.editor.editor_id; USE語句被設立出來,用於與Sybase相兼容。 有些網友問到,連接以後怎麼退出。其實,不用退出來,use 數據庫後,使用show databases就能查詢所有數據庫,如果想跳到其他數據庫,用 use 其他數據庫名字 就可以了。
4.5 當前選擇的數據庫
命令:mysql> select database(); MySQL中SELECT命令類似於其他編程語言裡的print或者write,你可以用它來顯示一個字符串、數字、數學表達式的結果等等。如何使用MySQL中SELECT命令的特殊功能? 1.顯示MYSQL的版本 mysql> select version(); +-----------------------+ | version() | +-----------------------+ | 6.0.4-alpha-community | +-----------------------+ 1 row in set (0.02 sec) 2. 顯示當前時間 mysql> select now(); +---------------------+ | now() | +---------------------+ | 2009-09-15 22:35:32 | +---------------------+ 1 row in set (0.04 sec) 3. 顯示年月日 SELECT DAYOFMONTH(CURRENT_DATE); +--------------------------+ | DAYOFMONTH(CURRENT_DATE) | +--------------------------+ | 15 | +--------------------------+ 1 row in set (0.01 sec) SELECT MONTH(CURRENT_DATE); +---------------------+ | MONTH(CURRENT_DATE) | +---------------------+ | 9 | +---------------------+ 1 row in set (0.00 sec) SELECT YEAR(CURRENT_DATE); +--------------------+ | YEAR(CURRENT_DATE) | +--------------------+ | 2009 | +--------------------+ 1 row in set (0.00 sec) 4. 顯示字符串 mysql> SELECT "welecome to my blog!"; +----------------------+ | welecome to my blog! | +----------------------+ | welecome to my blog! | +----------------------+ 1 row in set (0.00 sec) 5. 當計算器用 select ((4 * 4) / 10 ) + 25; +----------------------+ | ((4 * 4) / 10 ) + 25 | +----------------------+ | 26.60 | +----------------------+ 1 row in set (0.00 sec) 6. 串接字符串 select CONCAT(f_name, " ", l_name) AS Name from employee_data where title = 'Marketing Executive'; +---------------+ | Name | +---------------+ | Monica Sehgal | | Hal Simlai | | Joseph Irvine | +---------------+ 3 rows in set (0.00 sec) 注意:這裡用到CONCAT()函數,用來把字符串串接起來。另外,我們還用到以前學到的AS給結果列'CONCAT(f_name, " ", l_name)'起了個假名。
5.1 創建數據表
命令:create table <表名> ( <字段名1> <類型1> [,..<字段名n> <類型n>]); 例如,建立一個名為MyClass的表,
字段名
數字類型
數據寬度
是否為空
是否主鍵
自動增加
默認值
id
int
4
否
primary key
auto_increment
name
char
20
否
sex
int
4
否
0
degree
double
16
是
mysql> createtable 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));