
1.数据检索
简单的数据检索 :SELECT * FROM Student
只检索需要的列 :SELECT sName FROM Student 、age FROM Student WHERE sSex=‘女’。
还可以检索不与任何表关联的数据:select 1+1;select getdate();
可以为列起别名
2.Top、Distinct
Top 获取前几条数据,top一般都与order by连用
获得年纪最小的5个学生 ? ? ? ? ? Select top 5 sName,sAge from student order by sAge
获得年纪最大的10%的学生(percent)
Distinct 去除重复数据:
? ? ? ?select distinct sName from student
? ? ? ?select distinct sName,sAge from student
? ?DISTINCT是对查询出的整个结果集进行数据重复处理的,而不是针对某一个列。
3.带条件的查询
Select …from…where …
查询没有及格的学生的学号
select studentId from score where english < 60 ? ? ?
查询年龄在20-30岁之间的男学生
select sName,sAge,sSex from student where sAge >=20 and sAge <=30 and sSex ='男'
4.Between…and …在之间
查询年龄在20-30岁之间的男学生
查询math成绩在80-90分之间的所有学生
建议:使用between … and …。(闭区间)
select sName,sSex from student where sAge between 20 and 30 and sSex ='男'
5.空值处理
数据库中,一个列如果没有指定值,那么值就为null,数据库中的null表示“不知道”,而不是表示没有。因此select null+1结果是null,因为“不知道”加1的结果还是“不知道”。
select * from score where english = null ;?
select * from score where english != null ;都没有任何返回结果,因为数据库也“不知道”。
SQL中使用is null、is not null来进行空值判断: select * from score where english is null ; select * from score where english is not null ;
函数ISNULL ( check_expression,replacement_value )
6.数据排序
ORDER BY子句位于SELECT语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(从小到大排列,ASC)还是降序(从大到小排列,DESC)。?
按照年龄升序排序所有学生信息的列表:SELECT * FROM ?Student ORDER BY sAge ASC?
按照英语成绩从大到小排序,如果英语成绩相同则按照数学成绩从大到小排序 :SELECT * FROM ?Score ORDER BY english DESC,math DESC
ORDER BY子句要放到WHERE子句之后 : SELECT * FROM ?Score where english>=60 and math>=60 ORDER BY english DESC,math DESC
Order by 语句一般要放到所有语句的后面,就是先让其他语句进行筛选,全部筛选完成后,最后排序一下。
(表中数据是集合,集合是没有顺序的。Order by 返回的数据是有顺序的,故此我们把order by 以后返回的数据集合叫“游标”。)
欢迎关注趣味CSharp,完整笔记与您分享~~~~~~~~ (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|