Mysql学习笔记2

查询编写顺序为:

select-> from -> where -> group by -> having -> order by -> limit

基本查询综合题

1、查询emp表中性别为女并且年龄在21,21,22,23岁中的全部员工

select * from emp where gender=’女‘ and age in (20,21,22,23);

2、查询emp表中性别为男,年龄在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,workdate desc;

5、查询性别为男,且年龄在20-40岁(含)以内的前5个员工信息,对查询结果按年龄升序排序,年龄相同按入职时间升序排序

select * from emp where gender=’男‘ and age between 20 and 40 order by age asc,entrydate asc limit 5;

6、查询年龄小于45的员工,并根据地址分组,获取员工数量大于等于3的工作地址

select workaddress,count(*)(获取进行所有判断后所得的员工数量的值并显示出来) from emp where age < 45 group by workaddress having count(*) >=3(对分组后员工值进行数量判断);

DCL-管理数据库用户,控制数据库访问权限

用户管理

1、创建用户itcast,只能够在当前主机localhost访问,密码为123456;

create user ‘itcast’ @ ‘localhost’ identified by ‘123456’;

2、创建用户shizhen,可以在任意主机访问数据库,密码为123456;

create user ‘shizhen’ @ ‘%’ identified by ‘123456’;

3、修改用户‘shizhen’的访问密码为‘1234’

alter user ‘shizhen’ @ ’%’ identified with mysql_native_password ‘1234’;

4、删除itcast@localhost的用户

drop user ‘itcast’ @ ‘localhost’;

权限控制

1、查询权限

show grants for ‘heima’ (用户名)@ ‘%’(主机名);

2、授予权限

grant(授予) all(权限列表) on  itcast.* (数据库名.表名)to ‘heima’ (用户名)@ ‘%’(主机名);

3、撤销权限

revoke all on  itcast.*  from ‘heima’ @ ‘%’;

字符串函数

1、拼接字符串

select concot(‘Hello’,’MySQL’);

结果:HelloMySQL

2、转化字符串为小写

select lower(‘Hello’);

结果:hello

3、转化字符串为大写

select upper(‘Hello’);

结果:HELLO

4、填充字符串(向前面充字符)

select lpod(‘01’,5,’-’);   (操作字符串,填充位数到几位,拿什么填充)

结果:---01

5、填充字符串(向后面充字符)

select rpod(‘01’,5,’-‘);

结果:01---

6、去除头部尾部的空格

select trim(‘  Hello MySQL  ‘);

结果:Hello MySQL(只去除头部和尾部的空格)

7、截取字符串从1到5(与Java所规定不一样,这个第一个即1,第五个即5);

select substring(‘Hello,MySQL’,1,5);

结果:Hello

例:

由于业务需求的变更,企业员工的工号统一为5位数,不足5位数的全部在前面补0,比如1号员工的工号应为00001;

update emp set wordon=lpod(workon,5,’0’) ;

数值函数

1、向上取整

select ceil(1.5);

结果:2

2、向下取整

select floor(1.9);

结果:1

3、取余

select mod(6,4);

结果:2

4、求随机数(在0到1内随机生成数)

select rand();

5、四舍五入保留n位小数、round(?,n)、?保留n位小数

select round(2.345,2);

结果:2.35

例:

通过数据库的函数,生成一个六位数随机二维码

select lpod(round(rand()*1000000,0),6,’0’);

填充(四舍五入(随机数*1000000,保留0位数),生成6位数,用0填充);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值