网络编程
位置:首页>> 网络编程>> 数据库>> SQL学习笔记三 select语句的各种形式小结

SQL学习笔记三 select语句的各种形式小结

 来源:asp之家 发布时间:2011-09-30 11:09:31 

标签:select


代码如下:


Select * from T_Employee
select FName,FAge from T_Employee
select FName from T_Employee where FSalary < 5000
select FName as 姓名,FAge as 年龄,FSalary as 月薪from T_Employee where FSalary < 5000
select FName as 姓名,FAge as 年龄,FSalary as 月薪,getdate() as 当前时间from T_Employee

3.3.1 SELECT命令的格式与基本使用
&Oslash;数据查询是数据库中最常见的操作。
&Oslash;SQL语言提供SELECT语句,通过查询操作可得到所需的信息。
&Oslash;SELECT语句的一般格式为:
SELECT〈列名〉[{,〈列名〉}]
FROM〈表名或视图名〉[{,〈表名或视图名〉}]
[WHERE〈检索条件〉]
[GROUP BY <列名1>[HAVING <条件表达式>]]
[ORDER BY <列名2>[ASC|DESC]];
&Oslash;&Oslash;查询的结果是仍是一个表。
&Oslash;SELECT语句的执行过程是:
&Oslash;根据WHERE子句的检索条件,从FROM子句指定的基本表或视图中选取满足条件的元组,再按照SELECT子句中指定的列,投影得到结果表。
&Oslash;如果有GROUP子句,则将查询结果按照<列名1>相同的值进行分组。
&Oslash;如果GROUP子句后有HAVING短语,则只输出满足HAVING条件的元组。
&Oslash;如果有ORDER子句,查询结果还要按照<列名2>的值进行排序。
&Oslash;例3.21 查询全体学生的学号、姓名和年龄。
SELECT SNO, SN, AGE FROM S
&Oslash;例3.22 查询学生的全部信息。
SELECT * FROM S
&Oslash;用‘ * '表示S表的全部列名,而不必逐一列出。
&Oslash;例3.23 查询选修了课程的学生号。
SELECT DISTINCT SNO FROM SC
&Oslash;查询结果中的重复行被去掉
&Oslash;&Oslash;上述查询均为不使用WHERE子句的无条件查询,也称作投影查询。
&Oslash;另外,利用投影查询可控制列名的顺序,并可通过指定别名改变查询结果的列标题的名字。
例3.24 查询全体学生的姓名、学号和年龄。
SELECT SNAME NAME, SNO, AGE FROM S
&Oslash;其中,NAME为SNAME的别名
3.3.2 条件查询
&Oslash;当要在表中找出满足某些条件的行时,则需使用WHERE子句指定查询条件。
&Oslash;WHERE子句中,条件通常通过三部分来描述:
1. 列名;
2. 比较运算符;
3. 列名、常数。


3.3.2.1 比较大小
例3.25 查询选修课程号为‘C1'的学生的学号和成绩。
SELECT SNO,SCORE FROM SC WHERE CNO='C1'&Oslash;例3.26 查询成绩高于85分的学生的学号、课程号和成绩。
SELECT SNO,CNO,SCORE FROM SC WHERE SCORE>85
&Oslash;3.3.2.2 多重条件查询
&Oslash;当WHERE子句需要指定一个以上的查询条件时,则需要使用逻辑运算符AND、OR和NOT将其连结成复合的逻辑表达式。
&Oslash;其优先级由高到低为:NOT、AND、OR,用户可以使用括号改变优先级。
&Oslash;例3.27 查询选修C1或C2且分数大于等于85分学生的的学号、课程号和成绩。
SELECT SNO,CNO,SCORE
FROM SC
WHERE(CNO='C1' OR CNO='C2') AND SCORE>=85
3.3.2.3 确定范围
例3.28 查询工资在1000至1500之间的教师的教师号、姓名及职称。
SELECT TNO,TN,PROF
FROM T
WHERE SAL BETWEEN 1000 AND 1500
&Oslash;等价于
SELECT TNO,TN,PROF
FROM T
WHERE SAL>=1000 AND SAL<=1500
&Oslash;例3.29 查询工资不在1000至1500之间的教师的教师号、姓名及职称。
SELECT TNO,TN,PROF
FROM TWHERE SAL NOT BETWEEN 1000 AND 1500
3.2.2.4 确定集合
&Oslash;利用“IN”操作可以查询属性值属于指定集合的元组。
例3.30 查询选修C1或C2的学生的学号、课程号和成绩。
SELECT SNO, CNO, SCORE
FROM SC
WHERE CNO IN(‘C1', ‘C2')
&Oslash;此语句也可以使用逻辑运算符“OR”实现。
SELECT SNO, CNO, SCORE
FROM SC
WHERE CNO=‘C1' OR CNO= ‘C2'&Oslash;利用“NOT IN”可以查询指定集合外的元组。
例3.31 查询没有选修C1,也没有选修C2的学生的学号、课程号和成绩。
SELECT SNO, CNO, SCORE
FROM SC
WHERE CNO NOT IN(‘C1', ‘C2')
&Oslash;等价于:
SELECT SNO, CNO, SCORE
FROM SC
WHERE CNO!=‘C1' AND CNO!= ‘C2'&Oslash;
3.3.2.5 部分匹配查询
&Oslash;上例均属于完全匹配查询,当不知道完全精确的値时,用户还可以使用LIKE或NOT LIKE进行部分匹配查询(也称模糊查询)。
&Oslash;LIKE定义的一般格式为:
<属性名> LIKE <字符串常量>
&Oslash;属性名必须为字符型,字符串常量的字符可以包含如下两个特殊符号:
&Oslash;%:表示任意知长度的字符串;
&Oslash;_:表示任意单个字符。
例3.32 查询所有姓张的教师的教师号和姓名。
SELECT TNO, TN
FROM T
WHERE TN LIKE ‘张%'
例3.33 查询姓名中第二个汉字是“力”的教师号和姓名。
SELECT TNO, TN
FROM T
WHERE TN LIKE ‘_ _力%'&Oslash;注:一个汉字占两个字符。
3.3.2.6 空值查询
&Oslash;某个字段没有值称之为具有空值(NULL)。
&Oslash;通常没有为一个列输入值时,该列的值就是空值。
&Oslash;空值不同于零和空格,它不占任何存储空间。
&Oslash;例如,某些学生选课后没有参加考试,有选课记录,但没有考试成绩,考试成绩为空值,这与参加考试,成绩为零分的不同。

例3.34 查询没有考试成绩的学生的学号和相应的课程号。
SELECT SNO, CNO
FROM SC
WHERE SCORE IS NULL
&Oslash;注意:这里的空值条件为IS NULL,不能写成SCORE=NULL。

0
投稿

猜你喜欢

  • 如何用SQL 建表?    如下:CREATE TABLE statement 
  • 方法一1. 下载MySQL源码分发包,不用区分操作系统,我们需要的东西是一样的;2. 重命名自己的mysql的data目录下的mysql文件
  • BrowserPlus 到底是什么,又能做什么?BrowserPlus 是 Yahoo! 最近刚发布一个 Web 扩展的平台:终端用户需安装
  • 使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:1.如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就
  • 刚才要说的是这几天亲身体验了一下ebay的AIR感觉挺不错的,无论从界面,交互,功能上都感觉挺好的。关于topic中的“剑走偏锋”是因为我认
  • 第一个保存在新建一个文本中<% Dim Username,PassWord,strLogFile,f,ff,Str
  • 只要不是HTTP_REFERER来源于(google.com google.cn *.google.com *.google.cn baid
  • Yahoo和Google都有自己的建设高性能网站最佳实践, 我不做赘述, 需要了解的自行查阅资料:Yahoo的: Best Practice
  • 我把数据库操作类整理了一下,它包含了常用的数据库操作,由三种方式:简单的SQL拼接字符串的形式,SQL语句使用参数的形式和存储过程的形式,每
  • Software as a service 软件即服务,21世纪开始兴起的一种完全创新的软件应用模式。客户通过互联网向厂商定购所需的应用软件
  • 在本文中我们将展示一种新的使用仿CSS选择器的语法来快速开发HTML和CSS的方法。它由Sergey Chikuyonok开发。你在写HTM
  • asp函数代码 代码如下:<% Function RemoveHTML(str) Dim objRegExp, Match,strHT
  • 要做好一个HTML邮件,说简单,还真不怎么复杂,说它复杂,其实也不难。-_-!!以前写过类似的[ 关于HTML邮件的总结 ],最近又犯愁,就
  • 相信有很多人有用程序向Excel导数据的需求, 且做过. 一般导出一些文本数据是很方便的, 可选方法很多, 比如拼接文本字符串存.cvs格式
  • 网络开发的在分页上要是遇到数(几十)万以上的数据还是用ADO那样的分页会速度很慢的。有了存储过程速度就快多了。下面是本人用50万的数据进行的
  • 大家在写按钮(input、button)的时候会发现在 IE 下:随着字数的增多,两边的间距也会越来越大。在 WIN 的XP 风格下,当字数
  • 总结常用基本点如下: 1、触发器有两种类型:数据定义语言触发器(DDL触发器)和数据操纵语言触发器(DML触发器)。 DDL触发器:在用户对
  • YUI 中的 Grids CSS 主要有三个部分值得大家关注和学习:Yahoo!网站性能最佳体验的34条黄金守则—内容 1、布局的思想:使用
  • 当然如果想了解更多编辑器的原理制作方法,只有你自己去下载一个在线编辑器,慢慢研究,相信会有更多的收获!HTML在线编辑器的基本概念1,什么是
  • 主要要文件有:Index.html 实现功能,一个文本框,输入内容并实现提示 search.asp 查询功能,让文本框输入的内容在
手机版 网络编程 asp之家 www.aspxhome.com