mysql

本文详细介绍了SQL查询的各种操作,包括选取特定字段、别名使用、条件筛选、范围查询、多条件组合查询、排序及分组,以及LIMIT用于限制返回结果数量。还涉及到日期函数的运用,如查询当月和当天生日的学生。通过对学生信息表和成绩表的实际案例,展示了SQL在数据检索中的强大功能。

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

-- 查询表中的所有数据

select * from studentinfo;

 

-- 查询学生信息表中的姓名、年龄、性别字段

select studentname,age,sex from studentinfo;

-- as 别名

SELECT studentname as 姓名,age as 年龄, sex as 性别 from studentinfo;

SELECT studentname 姓名,age 年龄, sex 性别 from studentinfo;

 

-- 查询班里年龄在20以上学生信息

SELECT * FROM studentinfo WHERE age>20;

 

-- 查询班里女生的学号、姓名、年龄

SELECT studentno 学号,studentname 姓名,age 年龄 FROM studentinfo WHERE sex="女";

 

-- 查询班里年龄在17~20之间的学生信息

SELECT * FROM studentinfo WHERE age BETWEEN 17 AND 20;

 

-- 多条件查询

-- 查询班里年龄在17~20之间的学生信息

SELECT * FROM studentinfo WHERE age>=17 AND age<=20;

 

-- 查询班里年龄为17的男生信息

SELECT * FROM studentinfo WHERE age=17 AND sex="男";

 

-- 查询班里年龄不到20 或者 家不在王者峡谷的学生信息

SELECT * FROM studentinfo WHERE age<20 or address!="王者峡谷"; 

SELECT * FROM studentinfo WHERE age<20 or address<>"王者峡谷"; 

 

 

-- 查询学生信息表里都有哪些班级的学生信息

SELECT DISTINCT classid FROM studentinfo;

 

-- limit 限定返回的行数

-- 返回学生表中的前5条数据

select * from stu LIMIT 5;

-- 等同于 SELECT * FROM stu LIMIT 0,5;

-- 返回学生表中的第6~8数据

SELECT * from stu LIMIT 5,3;

 

-- 查询没有填写性别的学生信息

SELECT * from stu WHERE gender is null;

-- 查询填写性别的学生信息

SELECT * from stu WHERE gender is not null;

 

-- asc 升序

-- desc 降序

-- 按照学生年龄以升序的方式进行排列

SELECT * FROM stu ORDER BY age;

-- 等同于

SELECT * FROM stu ORDER BY age asc;

 

-- 按照学生年龄以降序的方式进行排列

SELECT * FROM stu ORDER BY age desc;

 

-- 查询成绩表里大学英语前3的学生id

SELECT * FROM score WHERE subject="大学英语" ORDER BY score desc LIMIT 3;

 

 

-- 多字段的排序

-- 年龄降序,姓名升序

-- 对中文进行排序,需先进行字符编码转换,使用convert(字段名 using gbk)进行转换

SELECT * from stu ORDER BY age desc,convert(name using gbk);

 

-- 字符串拼接

SELECT concat("hello"," world");

-- 截取字符:

-- substring(字段名,位置,长度)

SELECT concat(substring(name,1,1),"**") FROM stu;

 

-- length(str)统计的是字节,(utf8中,一个汉字是3个字节)

-- char_length(str)统计的是字符长度

 

SELECT length("张三");

SELECT char_length("张三");

 

-- 本月过生日的学生姓名

 SELECT name,birthday FROM stu WHERE month(birthday)=month(curdate()) ;

-- 查看今天生日的学生

SELECT name,birthday FROM stu WHERE month(birthday)=month(curdate()) AND dayofmonth(birthday)=dayofmonth(curdate());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值