1、查询语句基本结构
SELECT <列名> from <表名>
[WHERE <条件表达式>]
[GROUP BY <分组依据列>]
[Having <组提取条件>]
[order by <排序依据列>]
2、单标查询
1)查询全部列
Select * from student(表名)
2)查询指定列
Select sname(列名),sage(列名) from student(表名)
3)消除重复行查询
Select distinct sname, sage from student
4) 条件查询
查询条件:
比较 | =, >, >=, <, <=, != |
范围 | Between xxx and xxxx, not between xxx and xxxx |
集合 | In, not in |
字符匹配 | Like, not like |
空值 | Is null, is not null |
多重条件 | And , or |
比较:
Select sname from student where sdept = ‘交通运输’
Select sname from student where sage <20
范围:
Select sname from student where sage between 18 and 21
集合:
列名 [not] in (常量1,常量2….)
Select sname, sage from student where sdept in (‘交通仿真’, ‘汽车服务’,’智能制造’)
字符匹配:
列名 [not] like <匹配字符串>
● _ 匹配任意一个字符
● % 匹配0个或多个字符
● [ ] 匹配 [ ] 中的任意一个字符
● [ ^ ] 不匹配[ ]中的任意一个字符
Select * from student where sname like ‘张%’
Select * from student where sname like ‘[张刘李]%’ //查询姓张、李、刘的所有学生信息
Select sname from student where sname like ‘王_’ //查询姓王且名字为两个字的学生信息
空值:
Select * from student where grade is null //查询成绩为空的学生信息
多重条件查询:
Select sname, sage from student where sdept = ‘交通运输’ and sage <20 //查询交通运输系年龄在20岁以下的学生信息
3、对查询结果排序
ORDER BY <列名> [ASC | DESC]
Select * from student order by sage ASC //将学生信息按年龄升序排列
4、多表连接查询
1)内连接
Select * from 表1 [insert] JOIN 表2 on <连接条件>
连接条件的一般格式为:
表1.列名 <比较运算符> 表2.列名
Select student.so, sname from student join sc on student.sno=sc.sno
2)外连接
Select * from 表1 left | right [outer] join 表2 on <连接条件>
Left: 左连接,限制表2的数据必须满足连接条件
select distinct from
Select student.sno, sname, Cno, grade from student left outer join sc on student.sno=sc.sno //查询学生选课情况,包括选了课程和没选课程的
Right 右连接,限制表1的数据必须满足连接条件
Select student.sno, sname, Cno, grade from sc right outer join student on student.sno=sc.sno //查询学生选课情况,包括选了课程和没选课程的
5、嵌套查询(子查询)
Select * from 表名 where 列名 [not] in (select 列名 from 表名where 条件表达式)
Select sno, sname, sdept from student where sdept in ( select sdept from student where sname=’张三’) //查询与张三在同一个系的学生
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论