格式:grant select on 數據庫.* to 用戶名@登陸主機 identified by 「密碼」
一、增長一個用戶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」;
若是你不想test2有密碼,能夠再打一個命令將密碼消掉。 grant select,insert,update,delete on mydb.* to test2@localhost 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.2 顯示數據庫命令:show databases (注意:最後有個s) mysql> show databases;
例子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();
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)
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)); 5.3 刪除數據表命令:drop table <表名>
例如:刪除表名爲 MyClass 的表 mysql> drop table MyClass;
DROP TABLE用於取消一個或多個表。您必須有每一個表的DROP權限。全部的表數據和表定義會被取消,因此使用本語句要當心!