標籤雲

搜尋此網誌

2008/03/07

MySQL資料庫操作-使用者管理與資料庫建立

登入MySQL:
mysql --user=資料庫用戶名 -p
(參數p 代表需要輸入密碼)

查看資料庫:
SHOW DATABASES;

切換資料庫:
USE 資料庫;

查看目前資料庫有哪些資料表:
SHOW TABLES;

查看資料表:
DESCRIBE 資料表;

查看排序整理(collation):
SHOW COLLATION;


用戶:
MySQL 的用戶資料存放在 mysql.user 資料表裡面
可以對它直接做查詢及修改
如:
SELECT User,Host FROM mysql.user

建立用戶:
GRANT 權限
ON 資料庫 . 表
TO '使用者名稱' @ '域名'
IDENTIFIED BY '密碼欄位'
WITH GRANT OPTION;
(如果有WITH GRANT OPTION表示允許用戶對其他用戶進行授權)
例:
GRANT CREATE, DROP, SELECT, UPDATE, INSERT, DELETE
ON dbMember.*
TO 'edward' @ 'localhost'
IDENTIFIED BY 'userpassword'

刪除用戶:
DROP USER '使用者名稱' @ '域名'

刪除特定權限:
REVOKE 權限
ON 資料庫 . 表
FROM '使用者名稱' @ '域名'

建立資料庫:
CREATE DATABASE 資料庫名稱
DEFAULT CHARACTER SET 預設字元集
DEFAULT COLLATE 排序整理名稱;
例:
CREATE DATABASE dbMember
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

建立資料表:
CREATE TABLE 資料表名稱(
欄位名 欄位類型 [屬性],
......
[索引]
)[屬性];
例:
CREATE TABLE MyMem(
user_id INTEGER AUTO_INCREMENT PRIMARY KEY,
user_name VARCHAR(50) NOT NULL,
user_email VARCHAR(200) NOT NULL,
birthday DATE,
INDEX (user_name)
)ENGINE= InnoDB;

在已存在的表建立索引:
CREATE INDEX 索引名稱 ON 資料表名稱(欄位名稱);

外鍵:
(設定外鍵, 資料表都必須使用支援SQL Transcation 的 InnoDB 引擎, 否則會被忽略)
FOREIGN KEY (欄位名稱) REFERENCES 另一資料表(另一資料表的欄位) ON DELETE CASCADE;
設定外鍵的用意在於子表的紀錄必須對應到父表, 是一種驗證機制 (如討論區的回應一定是跟主題中的某筆記錄相關)
ON DELETE CASCADE表示"級聯刪除"(cascading delete), 當父表的紀錄被刪除時, 一併刪除在子表中外鍵設為該資料的相關記錄

刪除: (一旦刪除, 救不回來, 不應賦予一般使用者此權限)
DROP DATABASE 資料庫;
DROP TABLE 資料表;

沒有留言: