当前位置: 首页 > news >正文

网店运营推广高级实训攻略优化营商环境的金句

网店运营推广高级实训攻略,优化营商环境的金句,永久个人网站,深圳企业网站制作设计一、SQL结构化语言介绍 数据查询语言DQL:其语句称为“数据检索语言”,用以从库中获取数据,确定数据怎样在应用程序给出,保留select是dql(也是所有sql)用的最多的动词 数据操作语言DML:其语句包括动词insert…

一、SQL结构化语言介绍

数据查询语言DQL:其语句称为“数据检索语言”,用以从库中获取数据,确定数据怎样在应用程序给出,保留select是dql(也是所有sql)用的最多的动词

数据操作语言DML:其语句包括动词insert,update和delete,分别用于添加,修改和删除表中的行,也称为动词查询语言

数据控制语言DCL:他的语句通过grant或者revoke获得许可,确定单个用户和用户组对数据库对象的访问,某些rdbms可用grant或者revoke控制对表单个列的访问。

数据定义语言DDL:其语句包括动词create和drop,在数据库创建新表或者删除表,为表加入索引等,DDL包括许多人数据库目录中获得数据有关的保留字,他也是动作查询的一部分。

二、数据定义语言DDL

1.系统数据库的介绍

information_schema        虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户                                             表信息、列信息、权限信息、字符信息等
performance_schema      主要存储数据库服务器的性能参数
mysql                                 授权库,主要存储系统用户的权限信息
sys                                     主要存储数据库服务器的性能参数(目标是把                                                                           performance_schema的把复杂度降低)

2.创建数据库:DDL

(1)命令行创建数据库

语法;mysql -u用户 -p密码 -e “create database 数据库名 default charset ‘utf8’ ”

[root@localhost ~]# mysql -uroot -p123 -e "create database db2 default charset 'utf8'"

(2)在mysql里面创建数据库

语法:create database 数据库名  指定字符集 ;

mysql> create database db3  default charset 'utf8';
Query OK, 1 row affected (0.00 sec)

数据库命名规则:

区分大小写

唯一性

不能使用关键字 create select

不能单独使用数字

(3)查看所有数据库

语法:show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| db2                |
| db3                |
| mysql              |
| performance_schema |
| school             |
| sys                |
+--------------------+
8 rows in set (0.00 sec)

(4)查看创建库的信息

  语法:show create database 库名;

mysql> show create database db2;
+----------+--------------------------------------------------------------+
| Database | Create Database                                              |
+----------+--------------------------------------------------------------+
| db2      | CREATE DATABASE `db2` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)

(5)查看当前库(路径)

语法:select database();

mysql> select database();
+------------+
| database() |
+------------+
| db2        |
+------------+
1 row in set (0.00 sec)

(6)切换数据库

语法:use 数据库名;

mysql> use db2
Database changedmysql> show tables;
Empty set (0.00 sec)

(7)删除数据库

语法:drop database 库名;

mysql> drop database db2;
Query OK, 0 rows affected (0.01 sec)

3.表的DDL操作

(1)在命令行创建表

语法:mysql -u用户 -p密码 -e “use 库名;create table 表名 (字段  数据类型 约束条件)”

[root@localhost ~]# mysql -uroot -p123 -e"use db3;create table t1(name varchar(30),age int)"
mysql: [Warning] Using a password on the command line interface can be insecure.

(2)在数据库中创建表

语法:create table 表名(字段名称 数据类型 约束条件)

mysql> create table t2(-> id int primary key auto_increment not null,-> age int,-> name varchar(40)-> );
Query OK, 0 rows affected (0.00 sec)

(3)查看表结构

语法:desc 表名;

mysql> desc t2;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| age   | int(11)     | YES  |     | NULL    |                |
| name  | varchar(40) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

(4)显示数据的详细信息

语法:show create 表名; 

           show table status like '表名';

mysql> show create table t2;
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                           |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t2    | CREATE TABLE `t2` (`id` int(11) NOT NULL AUTO_INCREMENT,`age` int(11) DEFAULT NULL,`name` varchar(40) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> show table status like 't2' \G
*************************** 1. row ***************************Name: t2Engine: InnoDBVersion: 10Row_format: DynamicRows: 0Avg_row_length: 0Data_length: 16384
Max_data_length: 0Index_length: 0Data_free: 0Auto_increment: 1Create_time: 2023-09-28 08:33:56Update_time: NULLCheck_time: NULLCollation: utf8_general_ciChecksum: NULLCreate_options: Comment: 
1 row in set (0.00 sec)

(5)添加字段

语法:alter table 表名 add 字段名称 字段类型 约束条件

mysql> alter table t2 add  math   int    not null;#新字段 数据类型  约束条件
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

(6)修改数据类型

语法:alter table  表名 modify  字段名 新的数据类型 新的约束条件;

mysql> alter table t2 modify math varchar(20) null;  #将数据类型改为varchar,约束条件改变
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

(7)修改字段名(列)和数据类型

语法:alter table 表名 change 旧字段名 新字段名 新的数据类型 约束条件;

mysql> alter table t2 change math chinese int null; #将math改名为Chinese,int ,null
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

(8)删除字段名(列)

语法:alter table 表名  drop 字段名

mysql> alter table t2 drop chinese;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

(9)删除表

语法:drop table 表名;

mysql> drop table t2;
Query OK, 0 rows affected (0.00 sec)

三、数据操作语言DML

1.插入数据

语法:insert into  表名(字段1...字段n)values(值1....值n)

mysql> insert into  employee values (1,'qiancheng','man','20180314','hr','talk',7000,501,102);
Query OK, 1 row affected (0.00 sec)mysql> insert into employee(id,name,hire_date,post,salary) values (50,'zxvb','20190423','hr',8000);
Query OK, 1 row affected (0.00 sec)mysql> insert into employee(id,name,salary) values(51,'ab',6500), (52,'cd',7600), (53,'ef',8900);
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

2.更新数据update

语法:update 表名 set 字段1=值1,字段2=值2 where 条件;

mysql> update employee6 set emp_name='ab';
Query OK, 6 rows affected (0.00 sec)
Rows matched: 6  Changed: 6  Warnings: 0mysql> select * from employee6;
+--------+----------+------+---------+
| emp_id | emp_name | age  | dept_id |
+--------+----------+------+---------+
|      1 | ab       |   19 |     200 |
|      2 | ab       |   26 |     201 |
|      3 | ab       |   30 |     201 |
|      4 | ab       |   24 |     202 |
|      5 | ab       |   40 |     200 |
|      6 | ab       |   28 |     204 |
+--------+----------+------+---------+
6 rows in set (0.00 sec)mysql> update employee6 set emp_name='cd' where emp_id=3;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from employee6;
+--------+----------+------+---------+
| emp_id | emp_name | age  | dept_id |
+--------+----------+------+---------+
|      1 | ab       |   19 |     200 |
|      2 | ab       |   26 |     201 |
|      3 | cd       |   30 |     201 |
|      4 | ab       |   24 |     202 |
|      5 | ab       |   40 |     200 |
|      6 | ab       |   28 |     204 |
+--------+----------+------+---------+
6 rows in set (0.00 sec)

3.删除数据delete

语法:delete from 表名 where 条件;

mysql> select * from employee6;
+--------+----------+------+---------+
| emp_id | emp_name | age  | dept_id |
+--------+----------+------+---------+
|      1 | ab       |   19 |     200 |
|      2 | ab       |   26 |     201 |
|      4 | ab       |   24 |     202 |
|      5 | ab       |   40 |     200 |
|      6 | ab       |   28 |     204 |
+--------+----------+------+---------+
5 rows in set (0.00 sec)mysql> delete from employee6;
Query OK, 5 rows affected (0.01 sec)mysql> select * from employee6;
Empty set (0.00 sec)mysql> desc employee6;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| emp_id   | int(11)     | NO   | PRI | NULL    | auto_increment |
| emp_name | varchar(50) | YES  |     | NULL    |                |
| age      | int(11)     | YES  |     | NULL    |                |
| dept_id  | int(11)     | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

四、数据查询语言DQL

1.单表查询

(1).基础查询

a.查询所有信息

语法 :select * from  表名;

mysql> select * from employee;
+----+----------+-------+------------+------------+-----------------+----------+--------+--------+
| id | name     | sex   | hire_date  | post       | job_description | salary   | office | dep_id |
+----+----------+-------+------------+------------+-----------------+----------+--------+--------+
| 20 | tom      | man   | 2017-09-15 | instructor | teach           |  8000.00 |    501 |    100 |
| 21 | alince   | woman | 2013-04-28 | instructor | teach           |  5500.00 |    501 |    100 |
| 22 | robin    | man   | 2020-09-18 | instructor | teach           |  7200.00 |    501 |    100 |
| 23 | zhuzhu   | man   | 2016-12-09 | hr         | hrcc            |  6000.00 |    502 |    101 |
| 24 | gougou   | woman | 2015-04-27 | hr         | NULL            |  6000.00 |    502 |    101 |
| 30 | maomao   | man   | 2019-08-12 | sale       | talk            | 20000.00 |    503 |    102 |
| 31 | yiyi     | man   | 2015-06-17 | talk       | NULL            |  8000.00 |   NULL |   NULL |
| 40 | harry    | woman | 2018-02-05 | hr         | hrcc            |  6900.00 |    502 |    102 |
| 41 | tianyuan | man   | 2018-02-05 | null       | salecc          |  9700.00 |    501 |    102 |
| 42 | xiaoyi   | man   | 2018-02-05 | null       | salecc          |  5700.00 |    501 |    102 |
+----+----------+-------+------------+------------+-----------------+----------+--------+--------+
10 rows in set (0.00 sec)
b.去除重复记录

语法:select distinct 字段 from 表名;

mysql> select distinct office from employee;
+--------+
| office |
+--------+
|    501 |
|    502 |
|    503 |
|   NULL |
+--------+
4 rows in set (0.00 sec)

(2).条件查询

语法: select 字段 from 表名 where 条件列表

#单条件查询
mysql> select name,salary from employee where  salary = 8000
;
+------+---------+
| name | salary  |
+------+---------+
| tom  | 8000.00 |
| yiyi | 8000.00 |
+------+---------+
2 rows in set (0.00 sec)
#多条件查询
mysql> select name,salary from employee where salary between 4000 and 20000;
+----------+----------+
| name     | salary   |
+----------+----------+
| tom      |  8000.00 |
| alince   |  5500.00 |
| robin    |  7200.00 |
| zhuzhu   |  6000.00 |
| gougou   |  6000.00 |
| maomao   | 20000.00 |
| yiyi     |  8000.00 |
| harry    |  6900.00 |
| tianyuan |  9700.00 |
| xiaoyi   |  5700.00 |
+----------+----------+
10 rows in set (0.00 sec)
mysql> select name,salary from employee where salary=4000 or salary=6000;
+--------+---------+
| name   | salary  |
+--------+---------+
| zhuzhu | 6000.00 |
| gougou | 6000.00 |
+--------+---------+
2 rows in set (0.00 sec)

关键字is 

#查询employee中office为空的人
mysql> select name,office from employee where office is null;
+------+--------+
| name | office |
+------+--------+
| yiyi |   NULL |
+------+--------+
1 row in set (0.00 sec)#查询employee表中office不为空的人mysql> select name,office from employee where office is notnull;
+----------+--------+
| name     | office |
+----------+--------+
| tom      |    501 |
| alince   |    501 |
| robin    |    501 |
| zhuzhu   |    502 |
| gougou   |    502 |
| maomao   |    503 |
| harry    |    502 |
| tianyuan |    501 |
| xiaoyi   |    501 |
+----------+--------+
9 rows in set (0.00 sec)

关键字in

#查询employee表中工资为4000,8000,20000的员工
mysql> select name,salary from employee where salary in (4000, 8000,20000); 
+--------+----------+
| name   | salary   |
+--------+----------+
| tom    |  8000.00 |
| maomao | 20000.00 |
| yiyi   |  8000.00 |
+--------+----------+
3 rows in set (0.00 sec)
mysql> select name,salary from employee where salary in (4000,8000,20000);
+--------+----------+
| name   | salary   |
+--------+----------+
| tom    |  8000.00 |
| maomao | 20000.00 |
| yiyi   |  8000.00 |
+--------+----------+
3 rows in set (0.01 sec)

(3).排序查询

语法:select 字段 from 表名 order by 排序字段1,排序字段2

ASC:升序排列(默认)

DESC:降序排列

#按名字升序排列
mysql> select name from employee order by name;
+----------+
| name     |
+----------+
| alince   |
| gougou   |
| harry    |
| maomao   |
| robin    |
| tianyuan |
| tom      |
| xiaoyi   |
| yiyi     |
| zhuzhu   |
+----------+
10 rows in set (0.00 sec)#按名字倒叙排列
mysql> select name from employee order by name desc;
+----------+
| name     |
+----------+
| zhuzhu   |
| yiyi     |
| xiaoyi   |
| tom      |
| tianyuan |
| robin    |
| maomao   |
| harry    |
| gougou   |
| alince   |
+----------+
10 rows in set (0.00 sec)从第四行开始显示5行
mysql> select name from employee order by name desc limit 3, 5;
+----------+
| name     |
+----------+
| tom      |
| tianyuan |
| robin    |
| maomao   |
| harry    |
+----------+
5 rows in set (0.00 sec)
#按多列排序,先按入职时间,再按工资
mysql> select * from employee order by hire_date,salary asc;
+----+----------+-------+------------+------------+-----------------+----------+--------+--------+
| id | name     | sex   | hire_date  | post       | job_description | salary   | office | dep_id |
+----+----------+-------+------------+------------+-----------------+----------+--------+--------+
| 21 | alince   | woman | 2013-04-28 | instructor | teach           |  5500.00 |    501 |    100 |
| 24 | gougou   | woman | 2015-04-27 | hr         | NULL            |  6000.00 |    502 |    101 |
| 31 | yiyi     | man   | 2015-06-17 | talk       | NULL            |  8000.00 |   NULL |   NULL |
| 23 | zhuzhu   | man   | 2016-12-09 | hr         | hrcc            |  6000.00 |    502 |    101 |
| 20 | tom      | man   | 2017-09-15 | instructor | teach           |  8000.00 |    501 |    100 |
| 42 | xiaoyi   | man   | 2018-02-05 | null       | salecc          |  5700.00 |    501 |    102 |
| 40 | harry    | woman | 2018-02-05 | hr         | hrcc            |  6900.00 |    502 |    102 |
| 41 | tianyuan | man   | 2018-02-05 | null       | salecc          |  9700.00 |    501 |    102 |
| 30 | maomao   | man   | 2019-08-12 | sale       | talk            | 20000.00 |    503 |    102 |
| 22 | robin    | man   | 2020-09-18 | instructor | teach           |  7200.00 |    501 |    100 |
+----+----------+-------+------------+------------+-----------------+----------+--------+--------+
10 rows in set (0.00 sec)

(4)分组查询

语法:select 字段,(group_concat(字段名)) from 表名 group by 字段名;

GROUP_CONCAT 函数用于将一个分组内的多行数据合并成一个字符串,并以指定的分隔符进行分隔。

mysql> select post from employee group by post;
+------------+
| post       |
+------------+
| hr         |
| instructor |
| null       |
| sale       |
| talk       |
+------------+
mysql> select post,group_concat(name) from employee group by post;
+------------+---------------------+
| post       | group_concat(name)  |
+------------+---------------------+
| hr         | zhuzhu,gougou,harry |
| instructor | tom,alince,robin    |
| null       | tianyuan,xiaoyi     |
| sale       | maomao              |
| talk       | yiyi                |
+------------+---------------------+
5 rows in set (0.00 sec)mysql> select post,group_concat(id) from employee group by
post;
+------------+------------------+
| post       | group_concat(id) |
+------------+------------------+
| hr         | 23,24,40         |
| instructor | 20,21,22         |
| null       | 41,42            |
| sale       | 30               |
| talk       | 31               |
+------------+------------------+
5 rows in set (0.00 sec)

(5)模糊查询(通配符%)

mysql> select * from employee where salary like "%20%";
+----+--------+------+------------+------------+-----------------+----------+--------+--------+
| id | name   | sex  | hire_date  | post       | job_description | salary   | office | dep_id |
+----+--------+------+------------+------------+-----------------+----------+--------+--------+
| 22 | robin  | man  | 2020-09-18 | instructor | teach           |  7200.00 |    501 |    100 |
| 30 | maomao | man  | 2019-08-12 | sale       | talk            | 20000.00 |    503 |    102 |
+----+--------+------+------------+------------+-----------------+----------+--------+--------+
2 rows in set (0.00 sec)

(6)正则查询

mysql> select * from employee where salary regexp '72+';
+----+-------+------+------------+------------+-----------------+---------+--------+--------+
| id | name  | sex  | hire_date  | post       | job_description | salary  | office | dep_id |
+----+-------+------+------------+------------+-----------------+---------+--------+--------+
| 22 | robin | man  | 2020-09-18 | instructor | teach           | 7200.00 |    501 |    100 |
+----+-------+------+------------+------------+-----------------+---------+--------+--------+
1 row in set (0.00 sec)mysql> select * from employee where name regexp '^xiao';
+----+--------+------+------------+------+-----------------+---------+--------+--------+
| id | name   | sex  | hire_date  | post | job_description | salary  | office | dep_id |
+----+--------+------+------------+------+-----------------+---------+--------+--------+
| 42 | xiaoyi | man  | 2018-02-05 | null | salecc          | 5700.00 |    501 |    102 |
+----+--------+------+------------+------+-----------------+---------+--------+--------+
1 row in set (0.00 sec)mysql> select * from employee where name regexp "yi$";
+----+--------+------+------------+------+-----------------+---------+--------+--------+
| id | name   | sex  | hire_date  | post | job_description | salary  | office | dep_id |
+----+--------+------+------------+------+-----------------+---------+--------+--------+
| 31 | yiyi   | man  | 2015-06-17 | talk | NULL            | 8000.00 |   NULL |   NULL |
| 42 | xiaoyi | man  | 2018-02-05 | null | salecc          | 5700.00 |    501 |    102 |
+----+--------+------+------------+------+-----------------+---------+--------+--------+
2 rows in set (0.00 sec)mysql> select * from employee where name regexp "yi$";
+----+--------+------+------------+------+-----------------+---------+--------+--------+
| id | name   | sex  | hire_date  | post | job_description | salary  | office | dep_id |
+----+--------+------+------------+------+-----------------+---------+--------+--------+
| 31 | yiyi   | man  | 2015-06-17 | talk | NULL            | 8000.00 |   NULL |   NULL |
| 42 | xiaoyi | man  | 2018-02-05 | null | salecc          | 5700.00 |    501 |    102 |
+----+--------+------+------------+------+-----------------+---------+--------+--------+
2 rows in set (0.00 sec)

2.多表查询

a) 内连接

只连接匹配的行

mysql> select employee6.emp_id,employee6.emp_name,employee6.age,department.dept_name from employee6,department where employee6.dept_id = department.dept_id;
+--------+----------+------+-----------+
| emp_id | emp_name | age  | dept_name |
+--------+----------+------+-----------+
|      1 | tianyun  |   19 | hr        |
|      2 | tom      |   26 | it        |
|      3 | jack     |   30 | it        |
|      4 | alice    |   24 | yunwei    |
|      5 | robin    |   40 | hr        |
+--------+----------+------+-----------+
5 rows in set (0.00 sec)mysql> select a.emp_id,a.emp_name,a.age,b.dept_name from employee6 a,department b where a.dept_id=b.dept_id;
+--------+----------+------+-----------+
| emp_id | emp_name | age  | dept_name |
+--------+----------+------+-----------+
|      1 | tianyun  |   19 | hr        |
|      2 | tom      |   26 | it        |
|      3 | jack     |   30 | it        |
|      4 | alice    |   24 | yunwei    |
|      5 | robin    |   40 | hr        |
+--------+----------+------+-----------+
5 rows in set (0.00 sec)
mysql> select a.emp_id,a.emp_name,a.age,b.dept_name from employee6 a inner join department b on a.dept_id=b.dept_id;
+--------+----------+------+-----------+
| emp_id | emp_name | age  | dept_name |
+--------+----------+------+-----------+
|      1 | tianyun  |   19 | hr        |
|      2 | tom      |   26 | it        |
|      3 | jack     |   30 | it        |
|      4 | alice    |   24 | yunwei    |
|      5 | robin    |   40 | hr        |
+--------+----------+------+-----------+
5 rows in set (0.00 sec)

b)外连接

外连接:(了解)
        左连接:    会显示左边表内所有的值,不论在右边表内匹不匹配
        右连接:    会显示右边表内所有的值,不论在左边表内匹不匹配

语法:SELECT 字段 ROM 表1 LEFT|RIGHT JOIN 表2   ON 表1.字段 = 表2.字段;

mysql> select emp_id,emp_name,age,dept_name from employee6left join department on employee6.dept_id = department.dep
t_id;
+--------+----------+------+-----------+
| emp_id | emp_name | age  | dept_name |
+--------+----------+------+-----------+
|      1 | tianyun  |   19 | hr        |
|      5 | robin    |   40 | hr        |
|      2 | tom      |   26 | it        |
|      3 | jack     |   30 | it        |
|      4 | alice    |   24 | yunwei    |
|      6 | natasha  |   28 | NULL      |
+--------+----------+------+-----------+
6 rows in set (0.00 sec)mysql> select emp_id,emp_name,age,dept_name from employee6right join department on employee6.dept_id = department.de
pt_id;
+--------+----------+------+-----------+
| emp_id | emp_name | age  | dept_name |
+--------+----------+------+-----------+
|      1 | tianyun  |   19 | hr        |
|      2 | tom      |   26 | it        |
|      3 | jack     |   30 | it        |
|      4 | alice    |   24 | yunwei    |
|      5 | robin    |   40 | hr        |
|   NULL | NULL     | NULL | fd        |
+--------+----------+------+-----------+
6 rows in set (0.00 sec)

c)全外连接

全外连接:(了解)     包含左、右两个表的全部行

mysql> select * from employee6 full join department;
+--------+----------+------+---------+---------+-----------+
| emp_id | emp_name | age  | dept_id | dept_id | dept_name |
+--------+----------+------+---------+---------+-----------+
|      1 | tianyun  |   19 |     200 |     200 | hr        |
|      1 | tianyun  |   19 |     200 |     201 | it        |
|      1 | tianyun  |   19 |     200 |     202 | yunwei    |
|      1 | tianyun  |   19 |     200 |     203 | fd        |
|      2 | tom      |   26 |     201 |     200 | hr        |
|      2 | tom      |   26 |     201 |     201 | it        |
|      2 | tom      |   26 |     201 |     202 | yunwei    |
|      2 | tom      |   26 |     201 |     203 | fd        |
|      3 | jack     |   30 |     201 |     200 | hr        |
|      3 | jack     |   30 |     201 |     201 | it        |
|      3 | jack     |   30 |     201 |     202 | yunwei    |
|      3 | jack     |   30 |     201 |     203 | fd        |
|      4 | alice    |   24 |     202 |     200 | hr        |
|      4 | alice    |   24 |     202 |     201 | it        |
|      4 | alice    |   24 |     202 |     202 | yunwei    |
|      4 | alice    |   24 |     202 |     203 | fd        |
|      5 | robin    |   40 |     200 |     200 | hr        |
|      5 | robin    |   40 |     200 |     201 | it        |
|      5 | robin    |   40 |     200 |     202 | yunwei    |
|      5 | robin    |   40 |     200 |     203 | fd        |
|      6 | natasha  |   28 |     204 |     200 | hr        |
|      6 | natasha  |   28 |     204 |     201 | it        |
|      6 | natasha  |   28 |     204 |     202 | yunwei    |
|      6 | natasha  |   28 |     204 |     203 | fd        |
+--------+----------+------+---------+---------+-----------+
24 rows in set (0.00 sec)

五、数据库控制语言DCL

1.用户管理

(1)创建用户

语法:create user '用户名'@'客户端ip地址' identified by '密码';

mysql> create user 'cd'@'10.36.192.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

(2)修改用户信息

 语法:rename user '用户名'@'客户端来源ip地址' to '新用户名'@'客户端来源IP地址'

mysql> rename user 'cd'@'10.36.192.%' to 'ef'@'192.168.142.%';
Query OK, 0 rows affected (0.00 sec)

(3)修改普通用户的密码

a)语法:set password for '用户名'@'ip地址'=password('新密码');

b)语法:alter user '用户名'@'客户端来源IP地址'  identified by '新密码';

c)语法:update mysql.user set authentication_string=password('密码') where user='root' and host='localhost';

mysql> set password for 'ef'@'192.168.142.%'=password('111');
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> alter user 'ef'@'192.168.142.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

(4)删除用户

语法:drop user '用户名'@'客户端来源ip地址';

mysql> drop user 'ef'@'192.168.142.%';
Query OK, 0 rows affected (0.00 sec)

2.权限管理

(1).给普通用户授权并授权

语法:grant 权限 on 数据库.表  to '用户'@'客户端来源IP地址' identified by '密码';

mysql> grant all  on *.* to 'ef'@'192.168.142.%' identified
by '123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

(2).取消普通用户的权限

语法:revoke 权限 on 数据库.表 from '用户'@'客户端来源IP地址

mysql> revoke all on *.*  from 'cd'@'192.168.142.%';
Query OK, 0 rows affected (0.00 sec)

(3).刷新权限

语法:flush privileges;

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

(4).查看授权信息

a.查看授权语句

语法:show grants for '用户'@'客户端来源IP地址';

mysql> show grants for 'ef'@'192.168.142.%';
+-----------------------------------------------------+
| Grants for ef@192.168.142.%                         |
+-----------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'ef'@'192.168.142.%' |
+-----------------------------------------------------+
1 row in set (0.00 sec)
b.查看生效的授权信息

语法:select * from mysql.user where user='用户'\G

mysql> select * from mysql.user where user='ef'\G
*************************** 1. row ***************************Host: 192.168.142.%User: efSelect_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: YProcess_priv: YFile_priv: YGrant_priv: NReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: YCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: Y
Create_tablespace_priv: Yssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257password_expired: Npassword_last_changed: 2023-09-28 15:06:11password_lifetime: NULLaccount_locked: N
1 row in set (0.00 sec)

http://www.15wanjia.com/news/57180.html

相关文章:

  • 开源网站建设是什么工作小程序搭建
  • 平原县网站seo优化排名百度seo报价
  • 祖庙网站建设公司电商软文范例
  • 建网站挣钱靠谱吗苏州seo怎么做
  • 如何做网站?私人网站服务器
  • 商城web网站开发百度快照怎么做
  • 青岛模板建站多少钱网络营销典型案例
  • 新的网站平台如何做地推百度公司地址
  • 5在线做网站如何设计企业网站
  • 建设企业展示网站爱站seo
  • 网站备案负责人修改360搜索引擎推广
  • 教育网站设计方案seo优化公司哪家好
  • 网站的分类有哪些找客户资源的软件哪个最靠谱
  • 做网站用的小图标今天的新闻有哪些
  • 网站的支付系统怎么做在线培训app
  • 查询网站备案查询深圳网络推广服务是什么
  • 山东德州网站建设哪家最好网站结构有哪几种
  • 动效做的好的网站企业网站优化
  • 网站建设扌首选金手指萧山区seo关键词排名
  • 南昌网站开发建设长沙网络推广营销
  • 模拟创建一个公司石家庄百度快照优化排名
  • 个人网站设计论文道客巴巴百度客服中心人工在线咨询
  • 武汉汉口做网站哪家好社群营销的案例
  • 58同城深圳招聘网站个人自己免费建网站
  • 大型网站制作哪家好品牌软文案例
  • 广东网站建设便捷可以访问违规网站的浏览器
  • 郑州做网站九零后找代写文章写手
  • 淘特app官方网站下载竞价推广哪里开户
  • 福州专业建站公司短链接生成网址
  • 佛山做网站上海好的seo公司