MySql2

# 学生表(姓名,年龄,性别)

create table stu2 (id int primary key auto_increment,name varchar(20),age tinyint, gender char(1));

insert into stu2(name,age,gender) value ('wang',20,'m'),('li',19,'m'),('h',16,'m'),('h',20,'g'), ('j',19,'g'),('a',19,'g'),('q',19,'g'),('z',16,'g');

# 1.查询出男生有多少人,女生有多少个人

select gender, count(gender) gcount from stu2  group by gender;

# 2. 查询出18岁以上的男生有多少人,18岁以上的女生有多少人 (年龄大于18岁) (where 分组之前执行过滤)

select gender ,count(gender) gcount from stu2 where age > 18 group by gender;

# 3. 查询出18岁以上的男生,人数大于3个的性别才加入统计(having 分组出结果之后,过滤结果)

select gender ,count(gender) gcount from stu2 where age > 18 group by gender having gcount > 3;

mysql的函数

    1. max 最大值

    求男生的最大年龄

    select gender, max(age) mage from stu2 group by gender having gender = 'm';

    2. min  最小值

    求女生最小年龄

    select gender, min(age) mage from stu2 group by gender having gender = 'g';

    3. count  数量和

    分别求男生和女生的数量

    select gender, count(gender) gcount from stu2  group by gender;

    4. avg 平均数

男生和女生的年龄的平均数

select gender, avg(age) gcount from stu2  group by gender;

    5. concat 字段拼接

    全表查询,把姓名字段和年龄字段拼接输出

    select name,age,concat(name,'-','age') cc from stu2;

    6. substring 字段裁剪 substring(字段,begin,count)  begin 是从1开始的

    截取姓名的字段的首字母输出

    select name ,substring(name,1,1) sub from stu2;

    7. password (不要求了解)

    加密 8.0被移除了,咱们在开发时候不使用,讲这个目的是 mysql的登录密码是password加密

    存储的时候对姓名进行加密,并查询

    8. md5 (不要求了解)

    insert into stu2 (name,age,gender) value (substring(md5('aa'),1,10),12,'m');

    select * from stu2 where name = substring(md5('aa'),1,10);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。