1.首先创建一个表格
代码展示:
create table student( id int primary key auto_increment comment '唯一标识', name varchar(10) not null unique comment'姓名', age int check ( age>0 and age<=100 ) comment '年龄', gender enum('男','女') comment '性别', stu_college varchar(11) check(stu_college in ('信工学院','金贸学院','经管学院','食品学院','物理学院')) comment '学院', birthdate date comment '出生日期', address varchar(11) comment '地址', mysql_score int comment 'mysql成绩', phone varchar(13) comment '联系方式', create_time datetime default current_timestamp comment '创建日期', update_time datetime comment '更新日期', is_delete char(1) default 0 comment '删除状态' );
图片展示:
2.然后插入一些数据(自己想写什么写什么)
代码展示:
#1. 按照字段约束插入十条不同的姓名和年龄以及成绩各不相同的数据,其中男性五人,女性五人。 insert into student(id,name,age,gender,stu_college,birthdate,address,mysql_score,phone,is_delete) values (1,'张三',12,'男','信工学院','2005-01-23','山东',65,'15645895226',1), (2,'李四',26,'男','金贸学院','1991-02-13','河南',80,'15645945226',0), (3,'王五',15,'男','经管学院','2002-09-24','陕西',75,'15649455226',1), (4,'老刘',20,'男','食品学院','1997-11-22','广东',91,'15646145226',1), (5,'赵启',23,'男','物理学院','1994-02-23','河北',64,'18275895226',0), (6,'王娟',11,'女','经管学院','2006-06-21','湖南',75,'15646455226',1), (7,'洛洛',20,'女','信工学院','1997-07-13','江西',82,'15642565226',1), (8,'嘻嘻',16,'女','食品学院','2001-10-16','上海',96,'15647425226',0), (9,'嘿嘿',27,'女','金贸学院','1990-05-13','北京',85,'18294525226',1), (10,'哈哈',18,'女','信工学院','1999-12-18','宁夏',73,'15663195226',1);
图片展示:
3.下面是是对数据的一些操作:
代码展示:
#2. 根据性别分组 , 统计男生 和 女生的数量 select gender,count(*) from student group by gender; #3. 查询年龄大于25岁的人,并按性别分组,统计每组的人数 select gender,count(*) from student where age>25 group by gender; #4. 查询性别为 男,且年龄在20-40 岁(含)以内的前3个学生信息,对查询的结果按年龄升序排序, 年龄相同按mysql_score分数升序排序。 select * from student where gender='男' and (age>=20 and age<=40) order by age,mysql_score limit 3; #5. 查询学生表姓名和成绩。如果根据成绩,如果大于80分,则返回优先,60-80为良好,否则不及格。 select name, mysql_score, case when mysql_score > 80 then '优秀' when mysql_score <= 80 and mysql_score >= 60 then '良好' else '不及格' end as 'dengji' from student; #6. 获取每个学生的出生年份信息,并根据年份倒序排序 select name,birthdate from student order by year(birthdate) desc ; #7. 查询每个学院的学生的最大年龄、最小年龄和平均年龄,查询结果按平均年龄降序排列。 select stu_college ,max(age),min(age),avg(age) from student group by stu_college order by avg(age); #8. 查询电话号码182开头的学生信息 select * from student where phone like '182%'; #9. 查询删除状态为0的可用的学生信息 select * from student where is_delete=0; #10. 查询出生年份为2005年的学生信息 select * from student where year(birthdate)='2005';
图片展示: