MySql(DCL:数据控制语言,DQL:数据查询语言)

本文详细介绍了MySQL中的DCL(Data Control Language)和DQL(Data Query Language)。在DCL部分,讲解了创建用户、授权、撤销权限、查看权限、删除用户和修改密码的操作。在DQL部分,涵盖了基本查询语法、条件查询、模糊查询、字段查询控制、排序、聚合函数、分组查询和分页查询等核心概念和用法。
摘要由CSDN通过智能技术生成

目录

一、DCL(Data Control Language):数据控制语言

1、创建用户

2、给用户授权

3、撤销授权

4、查看用户权限

5、删除用户

6、修改用户密码

二、DQL(Data Query Language):数据查询语言

1、基本语法

2、条件查询

3、模糊查询

4、字段查询控制

5、排序:

6、聚合函数:

7、分组查询:

8、分页查询:


一、DCL(Data Control Language):数据控制语言

1、创建用户

语法:CREATE USER ‘用户名’@地址 IDENTIFIED BY '密码';

2、给用户授权

语法:GRANT 权限1, … , 权限n ON 数据库.* TO ‘用户名’@地址;

GRANT ALL ON mydb1.* TO user2@localhost;

将mydb1所有的操作权限全部赋给user2这个用户

3、撤销授权

语法:REVOKE 权限1, … , 权限n ON 数据库.* FROM ‘用户名’@地址;

4、查看用户权限

语法:SHOW GRANTS FOR ‘用户名’@地址;

5、删除用户

语法:DROP USER ‘用户名’@地址;

6、修改用户密码

语法:use mysql;

alter user '用户名'@localhost identified by '新密码';

二、DQL(Data Query Language):数据查询语言

1、基本语法

(1)select 列名 from 表名;

'*' 通配符,表示所有

select * from 表名; //查询所有

(2)指定查询

SELECT  列名1, 列名2, …列名n  FROM  表名;

SELECT  sid,  sname, age  FROM  stu;

2、条件查询

(1)between 条件1 and 条件2;

(2)and:'与'关系

(3)or:'或'关系

(4)in(集合):查询在'集合'中的记录

(5)not in(集合):查询不在'集合'中的记录

SELECT  *  FROM  stu
WHERE  gender='female'  AND  age<50;
查询性别为女,并且年龄小于50的记录
查询学号为S_1001,S_1002,S_1003的记录
SELECT  *  FROM  stu
WHERE  sid  IN ('S_1001','S_1002','S_1003');

3、模糊查询

(1)通配符

'%':表示0个或多个字符

'_':表示单个字符

(2)关键字: like

SELECT  字段  FROM  表  WHERE  某字段  Like  条件

查询姓名由5个字母构成的学生记录
SELECT  * 
FROM  stu
WHERE  sname  LIKE '_ _ _ _ _';
查询姓名中第2个字母为“i”的学生记录
SELECT   * 
FROM   stu
WHERE   sname   LIKE  '_i%';
查询姓名以“z”开头的学生记录
SELECT  * 
FROM  stu
WHERE sname LIKE 'z%';
其中“%”匹配0~n个任何字母

4、字段查询控制

(1)去掉重复记录:

SELECT   DISTINCT  列名   FROM   表名;

5、排序:

order by子句,默认是升序(ASC).降序是DESC

查询所有学生记录,按年龄升序排序
SELECT  *
FROM  stu
ORDER  BY  sage  ASC;
或者
SELECT  *
FROM  stu
ORDER BY  sage;

6、聚合函数:

(1)COUNT():统计指定列不为NULL的记录行数

统计月薪与佣金之和大于2500元的人数:
SELECT  COUNT(*)  AS cnt  FROM emp WHERE sal+IFNULL(comm,0) > 2500;

(2)sum():求和

查询所有雇员月薪+佣金和:
SELECT  SUM(sal+IFNULL(comm,0))  FROM  emp;

(3)avg():求平均值

统计所有员工平均工资:
SELECT  SUM(sal), COUNT(sal)  FROM  emp;

(4)max():最大值

(5)min():最小值

7、分组查询:

(1)group by:分组

查询每个部门的部门编号和每个部门的工资和:
SELECT  deptno, SUM(sal)
FROM  emp
GROUP  BY  deptno;

(2)having:对分组后的记录进行筛选

查询工资总和大于9000的部门编号以及工资和:
SELECT  deptno,  SUM(sal)
FROM   emp
GROUP  BY  deptno
HAVING  SUM(sal) > 9000;

注意,WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

8、分页查询:

LIMIT 起始行索引,记录数  --->是MySQL特有的关键字

查询5行记录,起始行从0开始
SELECT  *  FROM  emp  LIMIT  0, 5;
注意,起始行从0开始,即第一行开始!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值