MySQL資料庫系統管理
- 一、SQL語言概述
- 進入MySQL
- 查看資料庫,查看表
- 授權、連接Navicat
- 二、DDL——資料定義語言
- 新建庫、表
- 洗掉庫、表
- 三、DML——資料操縱語言
- 插入新的資料記錄
- 修改、更新資料表中的資料記錄
- 洗掉表中的資料記錄
- 四、DQL——資料查詢陳述句
- 五、DCL——資料控制陳述句
- 設定用戶權限
- 查看用戶權限
- 撤銷用戶權限
一、SQL語言概述
SQL語言(Structured Query Language),結構化語言,是關系型資料庫的標準語言,用于維護管理資料庫,
總共可分為以下四種,
| 名稱 | 含義 |
|---|---|
| DDL | 資料定義語言 |
| DML | 資料操縱語言 |
| DQL | 資料查詢語言 |
| DCL | 資料控制語言 |
下面將結合LInux命令和Navicat圖形界面為大家展示資料庫系統的各種簡單管理操作:
在安裝完MySQL,設定密碼之后,先進入資料庫,如圖,出現“mysql>”,就是在資料庫內了,
進入MySQL

查看資料庫,查看表

mysql> use mysql; //這條命令表明使用的是哪個資料庫,使用mysql資料庫
show tables; //查看此資料庫下的所有表

授權、連接Navicat
GRANT命令用于授權,如果想用連接Navicat,需要進行一個用戶的授權
GRANT 權限串列 ON 資料庫名.表名 TO 用戶名@來源地址 [ IDENTIFIED BY ‘密碼’]
mysql> GRANT all ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin123';
//為了方便操作,將所有庫的所有表的所有權限給外來地址以admin用戶登錄,admin123為密碼
打開Navicat ,按圖顯示填入,先連接測驗看是否成功,成功則確定,

連進去后,能看到授權的庫,這里都能看到,

二、DDL——資料定義語言
新建庫、表
CREATE DATABASE 資料庫名
use 資料庫名
CREATE TABLE 表名 (欄位定義…));
mysql> CREATE DATABASE ku; //創建資料庫ku Query OK, 1 row affected (0.00 sec)
mysql> use ku; //使用ku資料庫
Database changed
mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));
//創建表users,第一列名 是user_name,字符型別為char,長度為16.不能為空,第二列名為user_passwd,字符型別為char,長度為48,默認配置,鍵值為user_name列,
Query OK, 0 rows affected (0.02 sec)
更直觀的可以從Navicat 設計表頁面看,如下圖:

在linux系統中也可以用describe(desc)查看表格格式:

洗掉庫、表
DROP TABLE 表名
DROP DATABASE 資料庫名
mysql> use auth //先進入auth資料庫
Database changed
mysql> show tables; //看一下里面的表,是空的
Empty set (0.00 sec)
mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));
//手動創建表
Query OK, 0 rows affected (0.00 sec)
mysql> show tables; //看一下,新建的表出現了
+----------------+
| Tables_in_auth |
+----------------+
| users |
+----------------+
1 row in set (0.00 sec)
mysql> DROP TABLE auth.users; //使用DROP命令洗掉表users
Query OK, 0 rows affected (0.00 sec)
mysql> show tables; //再看一下,是空的,刪掉了
Empty set (0.00 sec)
mysql> DROP DATABASE auth; //洗掉資料庫auth
Query OK, 0 rows affected (0.00 sec)
mysql> show databases; //查看資料庫串列,沒有auth了
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbs |
| ku |
| mysql |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)
三、DML——資料操縱語言
用于對表中的資料進行管理
插入新的資料記錄
INSERT INTO 表名(欄位1,欄位2,…) VALUES(欄位1的值,欄位2的值,…)
mysql> use ku //使用資料庫ku
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> INSERT INTO users(user_name,user_passwd) values('zhangsan', password('123456'));
Query OK, 1 row affected, 1 warning (0.01 sec)
//在表中插入姓名為zhangsan ,密碼為密文格式的123456的資料
mysql> INSERT INTO users values('lisi', password('abcdef'));
Query OK, 1 row affected, 1 warning (0.00 sec)
//當插入資料與表列元素一一對應的時候,可以省略前面的列名
mysql>
重繪后,可以看見表中資料已經成功插入,密碼部分為密文格式

修改、更新資料表中的資料記錄
UPDATE 表名 SET 欄位名1=值1 [,欄位名2=值2] WHERE 條件運算式
mysql> UPDATE ku.users SET user_passwd=password('123456') where user_name='lisi';
//更新users表,尋找user_name為lisi的行,把user_passwd改為和zhangsan一樣的密文123456
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
重繪一下看,第二列已經被修改

洗掉表中的資料記錄
DELETE FROM 表名 WHERE 條件運算式
mysql> select * from users; //查看表users的所有記錄
+-----------+-------------------------------------------+
| user_name | user_passwd |
+-----------+-------------------------------------------+
| lisi | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| zhangsan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
2 rows in set (0.00 sec)
mysql> DELETE FROM ku.users WHERE user_name='lisi'; //洗掉user_name為lisi的行
Query OK, 1 row affected (0.01 sec)
mysql> select * from users; //再看一下,刪掉了
+-----------+-------------------------------------------+
| user_name | user_passwd |
+-----------+-------------------------------------------+
| zhangsan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)
看一下圖形界面,重繪一下,刪掉了

四、DQL——資料查詢陳述句
SELECT 欄位名1,欄位名2… FROM 表名 WHERE 條件運算式
mysql> SELECT * FROM users; //查看表users的所有記錄,*通配符表示所有
+-----------+-------------------------------------------+
| user_name | user_passwd |
+-----------+-------------------------------------------+
| lisi | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| zhangsan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
2 rows in set (0.00 sec)
mysql> SELECT user_name FROM ku.users WHERE user_name='zhangsan'; //查看users表中,名字叫zhangsan 行的 姓名那一列的資料
+-----------+
| user_name |
+-----------+
| zhangsan |
+-----------+
1 row in set (0.00 sec)
五、DCL——資料控制陳述句
設定用戶權限
在沒有這個用戶的時候,它會自動創建用戶
GRANT 權限串列 ON 資料庫名.表名 TO 用戶名@來源地址 [ IDENTIFIED BY ‘密碼’]
mysql> GRANT select ON ku.* TO 'wang'@'localhost' IDENTIFIED BY '123456';
//給本地密碼為123456的wang用戶資料庫ku所有表的select權限,并且自動創建了wang這個用戶
Query OK, 0 rows affected, 1 warning (0.00 sec)
驗證
mysql> exit //先退出
Bye
[root@localhost ~]# mysql -u wang -p //以wang登錄
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 32
Server version: 5.7.20 Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select * from ku.users; //試驗select表記錄 成功查看
+-----------+-------------------------------------------+
| user_name | user_passwd |
+-----------+-------------------------------------------+
| lisi | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| zhangsan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
2 rows in set (0.00 sec)
mysql> drop table ku.users; //試驗drop 沒有權限,報錯
ERROR 1142 (42000): DROP command denied to user 'wang'@'localhost' for table 'users'
查看用戶權限
SHOW GRANTS FOR 用戶名@來源地址;
mysql> SHOW GRANTS FOR 'wang'@'localhost'; //查看剛剛設定的wang的權限
+----------------------------------------------+
| Grants for wang@localhost |
+----------------------------------------------+
| GRANT USAGE ON *.* TO 'wang'@'localhost' |
| GRANT SELECT ON "ku".* TO 'wang'@'localhost' |
+----------------------------------------------+
2 rows in set (0.00 sec)
撤銷用戶權限
REVOKE 權限串列 ON 資料庫名.表名 FROM 用戶名@來源地址

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/13337.html
標籤:其他
上一篇:MySql語法及命令(用心整理)
