-- 查询表中的所有数据
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());