MySQL 数据库管理(数据库的增、删、改、查及数据库用户授权)

49 篇文章 1 订阅
11 篇文章 0 订阅

一、数据库的基本操作

1.1、查看数据库结构

1.1.1、查看数据库信息

[root@localhost ~]# mysql -uroot -p
Enter password:   '输入密码'
mysql> show databases;    '必须以;结束,也可以先不输入直接按回车在下一行输入,输入的内容也可以是大写字母'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
mysql> 

1.1.2、查看当前使用的库中包含的表

mysql> use mysql   ##切换到这个库
Database changed
mysql> show tables;  ##查看当前库中包含的表
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
........  ##以下省略 ..........
| users                     |
+---------------------------+
32 rows in set (0.00 sec)

1.1.3、显示数据库的结构(字段)

mysql> describe user;  '数据库名或表名,也可以使用desc user;'
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(32)                          | NO   | PRI |                       |       |
| Select_priv            | enum('N','Y')                     | NO   |     | N        

1.2、SQL 语句概述

SQL语言
Structured Query Language的缩写,即结构化查询语言

关系型数据库的标准语言

用于维护管理数据库
包括数据查询、数据更新、访问控制、对象管理等功能

SQL分类
DDL:数据定义语言 create(表、库),drop,alter(表结构、属性、引擎)
DML:数据操纵语言 insert into、update、delete(数据)
DQL:数据查询语言 select
DCL:数据控制语言 grant (授权)、revoke(撤权)

1.2.1、DDL—创建数据库和表

DDL语句可用于创建数据库对象,如库、表、索引等

1.2.1.1、创建新的库

create database 数据库名

mysql> create database ab;  ## 创建新的库
Query OK, 1 row affected (0.00 sec)
1.2.1.2、创建新的表

create table 表名

mysql> use ab;  
mysql> create table abc (user_name CHAR(16) NOT NULL,user_passwd CHAR(48) DEFAULT '',PRIMARY KEY(user_name)); 
Query OK, 0 rows affected (0.00 sec)
mysql> describe abc; 
+-------------+----------+------+-----+---------+-------+
| Field       | Type     | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| user_name   | char(16) | NO   | PRI | NULL    |       |
| user_passwd | char(48) | YES  |     |         |       |
+-------------+----------+------+-----+---------+-------+
2 rows in set (0.02 sec
1.2.1.3、删除指定的数据表

DROP TABLE [数据库名] 表名

mysql> drop table auth.users;
Query OK, 0 rows affected (0.00 sec)
1.2.1.4、删除指定的数据库

DROP DATABASE 数据库名

mysql> drop database ab; 
Query OK, 1 row affected (0.00 sec)

1.2.2、DML—管理表中的数据

DML语句用于对表中的数据进行管理

包括的操作
INSERT:插入新数据
UPDATE:更新原有数据
DELETE:删除不需要的数据

1.2.2.1、插入新数据记录

INSERT INTO 表名(字段1,字段2,…) VALUES(字段1的值,字段2 的值,…)

mysql> create database aa;                        ## 创建库aa 
Query OK, 1 row affected (0.00 sec)  
mysql> create table bb (user_name CHAR(16) NOT NULL,user_passwd CHAR(48) DEFAULT '',PRIMARY KEY(user_name));    ## 创建表 bb              
Query OK, 0 rows affected (0.00 sec)   
mysql> insert into bb(user_name,user_passwd)values('lisi',PASSWORD('123456'));
Query OK, 1 row affected, 1 warning (0.00 sec)  ## 在表中插入记录,按指定插入
mysql> insert into bb values('wangwu',PASSWORD('123456'));
Query OK, 1 row affected, 1 warning (0.00 sec)  ## 在表中插入记录,按顺序插入
mysql> insert into bb(user_name,user_passwd) values('zhaoliu','123456');  ## 不加 PASSWORD(),就是明文
Query OK, 1 row affected (0.00 sec)
1.2.2.2、修改、更新数据表中的数据记录

UPDATE 表名 SET 字段名1=值1[,字段名2=值2] WHERE 条件表达式

mysql> update aa.bb set user_passwd='' where user_name='lisi';
mysql> select * from aa.bb;  ## 修改完后进行验证
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| lisi      |                                           |
| wangwu    | *E710DC2512FCF6F18FE0D652B53290DCB11F3334 |
| zhaoliu      | 123456                                    |
+-----------+-------------------------------------------+
3 rows in set (0.00 sec)
1.2.2.3、在数据表中删除指定的数据记录

DELETE FROM 表名 WHERE 条件表达式

mysql> delete from aa.bb where user_name='lisi';
Query OK, 1 row affected (0.00 sec)  ## 删除用户名为lisi的数据
mysql> select * from aa.bb;  ## 查询一下bb表中lisi数据是否删除
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| wangwu    | *E710DC2512FCF6F18FE0D652B53290DCB11F3334 |
| zhaoliu      | 123456                                    |
+-----------+-------------------------------------------+
2 rows in set (0.00 sec)

1.2.3、DQL—数据查询语句

DQL是数据查询语句,只有SELECT
用于从数据表中查找符合条件的数据记录
查询时可不指定条件
SELECT 字段名1,字段名2,…FROM 表名

mysql> select * from aa.bb;  ## 查询 库kk中的表KK,所有内容
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| wangwu    | *E710DC2512FCF6F18FE0D652B53290DCB11F3334 |
| zhaoliu      | 123456                                    |
+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

当需要特定的的条件查找记录时,where条件子句则是必不可少的。如:查找 lisi 的记录,显示用户名和密码字段的信息,可做以下操作

mysql> select * from aa.bb where user_name='lisi';
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)

二、数据库用户授权

2.1、DCL—数据控制语句

2.1.1、设置用户权限

GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [IDENTIFIED BY ‘密码’]

mysql> GRANT select ON auth.* TO 'jack'@'localhost' IDENTIFIED BY 'abc123';   '//创建jack用户名,并设置权限为仅选'
Query OK, 0 rows affected, 1 warning (0.00 sec)

2.1.2、查看用户权限

SHOW GRANTS for 用户名@来源地址;

mysql> SHOW GRANTS FOR 'jack'@'localhost';  '//查看用户权限'
+-----------------------------------------------+
| Grants for jack@localhost                      |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'jack'@'localhost'       |
| GRANT SELECT ON "auth".* TO 'jack'@'localhost' |
+-----------------------------------------------+
2 rows in set (0.00 sec)

2.1.3、撤销用户权限

REVOKE权限列表 ON 数据库名.表名 FROM 用户名@来源地址

mysql> REVOKE all ON auth.* from 'jack'@'localhost'; '//撤销权限'
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GRANTS FOR 'jack'@'localhost';  '//再次查看权限,发现没有SELECT权限'
+-----------------------------------------+
| Grants for jack@localhost                |
+-----------------------------------------+
| GRANT USAGE ON *.* TO 'jack'@'localhost' |
+-----------------------------------------+
1 row in set (0.00 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值