一、基础查询
1.查询数据显示所有列
select * from students;
2.查询数据并显示某些列
select id,name form students;
3.别名查询
select id as sid,name as sname from students; select id sid,name sname from students;
二、条件查询
通过where进行条件约束
符号运算符select * from students where id = 1; select * from students where id between 1 and 3;
逻辑运算符
符号 说明 < 小于 <= 小于或等于 = 等于 != 或<> 不等于 >= 大于等于 > 大于 in 在某集合内 between 在某范围内
not或! 逻辑非 or 或 逻辑或 and或&& 逻辑与
三、模糊查询
模糊查询是一种在数据库中查找与指定模式匹配的记录的方法。它允许用户输入部分或不完全准确的信息,然后返回与之相关的结果,使用关键字like实现。
1.%表示0个或多个字符
select id,name from students where name like 'l%';
2._表示任意一个字符
select id,name from students where name like '_s';
四、分页查询
分页查询是一种在数据库中检索数据的方法,它将结果集分成多个较小的部分(称为“页面”),以便用户可以逐页浏览和访问数据,使用limit关键字实现。(limit n,m)n代表从n+1行开始,m代表显示m列。
select * from students limit 0,3; #查询从第二行开始查询2行数据 select * from students limit 1,2;
五、去重查询
去重查询是一种在数据库中检索唯一记录的方法,它通过消除重复的记录来返回唯一的结果集,使用distinct关键字实现。
select distinct salary from students;
六、排列查询
排序查询是一种在数据库中检索数据并按照指定的顺序进行排列的方法。它允许用户根据一个或多个列的值对结果集进行排序,以便更容易地分析和理解数据,使用order by关键字实现。
默认升序排列
select * from students order by salary; select * from students order by salary limit 0,5;
使用desc设置为降序排序
select * from students order by salary desc; select * from students order by salary desc limit 0,5;
七、多表连接查询
多表连接查询是一种在数据库中从多个表中检索数据的方法,它允许用户根据一个或多个表之间的关系来获取相关的信息。分为内连接和外连接
1.内连接
select students.name,score.score,students.salary from students,score where students.name=score.name; #取别名查询 select students.name as 姓名,score.score as 成绩,students.salary as 薪资 from students,score where students.name=score.name; #以薪资排序 select students.name,score.score,students.salary from students,score where students.name=score.name order by salary desc; #使用inner join进行连接 select students.name,score.score,students.salary from students inner join score where students.name=score.name ; #取别名查询 select students.name as 姓名,score.score as 成绩,students.salary as 薪资 from students inner join score where students.name=score.name ; #以薪资排序 select students.name as 姓名,score.score as 成绩,students.salary as 薪资 from students inner join score where students.name=score.name order by salary desc;
2.外连接
左连接:以左表为基准,返回左边所有内容,右表不存在的会以null的形式显示
select * from students left outer join score on students.name = score.name;
右连接:以右表为基准,返回右边所有内容,左表不存在的会以null的形式显示
select * from students right outer join score on students.name = score.name;
八、子查询
多表联合查询是一种在数据库中从多个表中检索数据的方法,它允许用户根据一个或多个表之间的关系来获取相关的信息。
#查询出薪资比ls高的全部学生信息 select * from students where salary >=(select salary from students where name = 'ls'); #查询出工资高于平均的全部学生信息 select * from students where salary >= (select avg(salary) from students); #查询出薪资最高的学生名字 select name from students where salary in (select max(salary) from students);
每篇一言:人生如逆旅,我亦是行人