MySQL数据库操作(二)——DQL

本文详细介绍了SQL查询的基础知识,包括基本查询、条件查询、聚合函数等,并通过具体实例展示了如何进行连接字符串操作、给列起别名以及使用排序、分组等高级查询技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人博客:haichenyi.com。感谢关注

DQL

关键字:select、from、where、group by、having、roder by

基本查询

  查询所有:select * from 表名;

select * from t_stu;

  查询部分列select 列名,...列名 from 表名;

select stu_num,stu_name from t_stu;

  查询去除完全重复的列select distinct * from 表名;

select distinct * from t_stu;
select distinct stu_age from t_stu;

  也可以查询同时做加、减、乘、除运算操作

//把查询出来的年龄都乘以2倍。
select stu_age*2 from t_stu;
//如果查出来的年龄为null,就设置为29
select ifnull(stu_age,29) from t_stu;

  做连接字符串操作:CONCAT

//把名字和年龄拼接起来
select CONCAT(stu_name,stu_age) from t_stu;

select CONCAT('我的名字是:',stu_name,',我今年',stu_age,'岁') from t_stu;

  给列起别名:as

select stu_age as 年龄 from t_stu;
select stu_age as 年龄,stu_name as 姓名 from t_stu;
select CONCAT(stu_name,stu_age) as 描述 from t_stu;
条件查询

  跟前面一篇讲的更新,删除里面设置条件的方法是一样的。where后面跟条件

//查询年龄大于等于20的学生
select * from t_stu where stu_age>=20;
//查询年龄在15到25岁之间的学生
select * from t_stu where stu_age between 15 and 25;
//查询名字叫zhangsan,lisi,wangwu.zhaoliu的学生
select * from t_stu where stu_name in('zhangsan','lisi','wangwu','zhangliu');

  模糊查询like

//一个字加一个下划线,两个字就是两个下划线
//查询名字中张开头,并且是两个字的学生.
select * from t_stu where stu_name like '张_';
//查询名字是三个字的学生
select * from t_stu where stu_name like '___';

//百分号%匹配0~N个字符
//查询名字中以雷结尾的学生
select * from t_stu where stu_name like '%雷';
//查询名字中包含晓的学生
select * from t_stu where stu_name like '%晓%';
排序 order by
// desc:降序,asc:升序
//按学生年龄升序排列
select * from t_stu ORDER BY stu_age ASC;
//按学生年龄降序排列
select * from t_stu ORDER BY stu_age DESC;
//年龄相同的时候,按名字降序排列。可以无限添加排序条件
select * from t_stu ORDER BY stu_age ASC,stu_name DESC;
聚合函数(纵向查询)

计数count

//只要不为null,就+1
select count(*) from t_stu;
select count(stu_age) from t_stu;

计算和sum

//计算学生年龄加起来的总数
select sum(stu_age) from t_stu;

最大值max,最小值min

//查询年龄中最大的
select max(stu_age) from t_stu;
//查询年龄中最小的
select min(stu_age) from t_stu;

平均值avg

select avg(stu_age) from t_stu;
分组查询group by

写法:select 条件,聚合函数,...,聚合函数 from 表名 group by 条件;

分组查询必须都是聚合函数,并且,上面两个位置的条件必须相同

//按老师分组查询,每组老师名下的学生个数
select stu_teacher,count(*) from t_stu group by stu_teacher;

//分组前条件,不满足条件的没有参加分组
//按老师分组查询,查询每组老师名下年龄大于20岁的学生的个数
select stu_teacher,count(*) from t_stu where stu_age>20 group by stu_teacher;

//having 分组后条件
//按老师分组查询,查询老师名下年龄大于20岁的学生,并且剔除学生个数小于5个的老师
select stu_teacher,count(*) from t_stu where stu_age>20 group by stu_teacher having count(*)<5;
limit(MySQL特有的)
//从下标0开始,往后查询5条数据
select * from t_stu limit 0,5;

//分页查询,比方说如果你要查第N页的数据,每页数据M条
//(当前页-1)*每页的数据数
select * from t_stu limit (N-1)*M,M;
1. 用户与权限管理模块 角色管理: 学生:查看实验室信息、预约设备、提交耗材申请、参与安全考核 教师:管理课题组预约、审批学生耗材申请、查看本课题组使用记录 管理员:设备全生命周期管理、审核预约、耗材采购与分发、安全检查 用户操作: 登录认证:统一身份认证(对接学号 / 工号系统,模拟实现),支持密码重置 信息管理:学生 / 教师维护个人信息(联系方式、所属院系),管理员管理所有用户 权限控制:不同角色仅可见对应功能(如学生不可删除设备信息) 2. 实验室与设备管理模块 实验室信息管理: 基础信息:实验室编号、名称、位置、容纳人数、开放时间、负责人 功能分类:按学科(计算机实验室 / 电子实验室 / 化学实验室)标记,关联可开展实验类型 状态展示:实时显示当前使用人数、设备运行状态(正常 / 故障) 设备管理: 设备档案:名称、型号、规格、购置日期、单价、生产厂家、存放位置、责任人 全生命周期管理: 入库登记:管理员录入新设备信息,生成唯一资产编号 维护记录:记录维修、校准、保养信息(时间、内容、执行人) 报废处理:登记报废原因、时间,更新设备状态为 "已报废" 设备查询:支持按名称、型号、状态多条件检索,显示设备当前可用情况 3. 预约与使用模块 预约管理: 预约规则:学生可预约未来 7 天内的设备 / 实验室,单次最长 4 小时(可设置) 预约流程:选择实验室→选择设备→选择时间段→提交申请(需填写实验目的) 审核机制:普通实验自动通过,高危实验(如化学实验)需教师审核 使用记录: 签到 / 签退:到达实验室后扫码签到,离开时签退,系统自动记录实际使用时长 使用登记:填写实验内容、设备运行情况(正常 / 异常),异常情况需详细描述 违规管理:迟到 15 分钟自动取消预约,多次违规限制预约权限 4. 耗材与安全管理模块 耗材管理: 耗材档案:名称、规格、数量、存放位置、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海晨忆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值