USE hrs;
###DQL练习
#####1、查询年龄为20、21、22、23岁的女性员工信息。
select * from emp where gender='女' and age in(21,22,23);
#####2、查询性别为男,并且年龄在20~40岁(含)以内的姓名为三个字的员工
select * from emp where gender='男' and age between 20 and 40 and name like '___';
#####3、统计员工表中,年龄小于60岁的,男性员工和女性员工的人数
select gender,count(*) from emp where age<60 group by gender;
#####4、查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序
select name,age from emp where age<=35 order by age asc,entrydate desc;
#####5、查询性别为男,且年龄在20~40岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序
select * from emp where gender='男' and age between 20 and 40 order by age asc,entrydate asc limit 5;
###DQL执行顺序
######编写顺序
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
#####执行顺序
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
SELECT
字段列表
ORDER BY
排序字段列表
LIMIT
分页参数
####查询年龄大于15的员工的姓名、年龄,并根据年龄进行升序排序
select name,age from emp where age>15 order by age asc;
#DCL-用户管理
####管理用户
#####1、查询用户
use mysql;
select * from user;
#####2、创建用户
create user '用户名'@'主机名' identified by '密码';
#####3、修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
#####4、删除用户
drop user '用户名'@'主机名';
-- 创建用户itcast,只能够在当前主机localhost访问,密码123456;
create user 'itcast'@'localhost' identified by '123456';
-- 创建用户heima,可以在任意主机访问该数据库,密码123456;
create user 'heima'@'%' identified by '123456';
-- 修改用户 heima 的访问密码为1234;
alter user 'heima'@'%' identified with mysql_native_password by '1234';
-- 删除itcast@localhost用户
drop user 'itcast'@'localhost';
select * from user;
## DCL-权限控制
1、查询权限
SHOW GRANTS FOR '用户名'@'主机名';
-- 查询权限heima
show grants for 'heima'@'%';
2、授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
-- 授予权限(此时heima的权限是所有权限是针对于itcast的所有权限,采用上面的查询权限可以得出此结论)
grant all on itcast.* to 'heima'@'%';
3、撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
-- 从heima当中撤销itcast当中的所有权限
revoke all on itcast.* from 'heima'@'%';
/*
注意:
1、多个权限之间,使用逗号分隔
2、授权时,数据库名和表名可以使用*进行通配,代表所有
*/
#函数
##函数-字符串函数
####函数是指一段可以直接被另一段程序调用的程序或代码
#####函数演示
-- cancat
select concat('Hello','MySQL');
-- upper 全部大写
select upper('Hellow');
-- lpad 左边填充
select lpad('01',5,'-');
-- rpad 右边填充
select rpad('01',5,'-');
-- trim 去除空格
select trim(' Hello MySQL ');
-- substring 截取字符串
select substring('Hello MySqL',1,5)##截取的字符串为Hello
/*
案例:由于业务需求变更,企业员工的工号,统一为6位数,目前不足6位数的全部在前面补0。比如:1号员工的工号应该为000001.
*/
update emp set workno=lpad(workno,6,'0');
mysql代码笔记2
最新推荐文章于 2024-05-13 22:55:41 发布