自学内容网 自学内容网

SQL基本查询

简单查询

单表查询

查询表的全部信息:

--student是要查询的表

select  *  from student

使用别名查询表中的某个字段,或使用别名创建一个新的字段:

select name as studentname from student    --把查询出来的名字的列名改为学生姓名

select  YEAR(GETDATE()) - YEAR(birthday)  as age from student   --查询学生的年龄,列名为age

使用where关键字,根据条件查询表中的某个字段。下面关键字进行组合使用,即可确定筛选条件。 

比较=, >, >=, <=, <, <>, !=
确定范围BETWEEN … AND …, NOT BETWEEN … AND…
确定集合IN, NOT IN
字符匹配LIKE, NOT LIKE
空值IS NULL, IS NOT NULL
多重条件AND, OR

如查询姓名不为空的学生:

select * from student where name IS NOT NUll

查询出生日期在2002到2004年之间的学生:

select * from student where birthday   year(birthday)  BETWEEN  2002 AND  2004

复杂查询 

分组查询

使用group by可以将数据按照分组进行查询,具有相同属性值的行会划分为一组,例如统计每门课程的选课人数(多门课,每门课有多人)。查询语句如下。

select  count(*)  from SC group by Cno

having用于对分组后的统计结果再进行筛选,它的功能与WHERE类似,但它用于组而不是单个记录。并且在having by 中可以使用聚合函数。例如查询每门课程的选课人数不少于20人的课程。

select  count(*)  from SC group by Cno having count(*)  >=20 

联表查询

left join 左连接:以左表为条件,在右表查询相等的连接条件,右表没有符合条件的则用null替代。

right join 右连接:以右表为条件,在左表查询相等的连接条件,左表没有符合条件的则用null替代。

inner join 内连接:只返回符合连接条件的数据

例:查询全体学生的选课情况, 包括没有选课的学生。

select * from SC left join S on SC.Sno = S.Sno


原文地址:https://blog.csdn.net/weixin_56392989/article/details/140403602

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!