版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 数据库数据的选择重点内容: SELECT语句定义 SELECT关键字开头子句使用 FROM字句使用 WHERE字句使用一、 SELECT语句定义 从某种意义上说,SELECT语句是SQL中真正核心的内容。使用SELECT语句可以让用户以各种不同的方式查找并查看数据。SELECT语句可以满足用户的各种需要,如符合某种条件的数据有多少,存放在那个表中等等,这些都可以用SELECT语句很好的完成。SELECT ALL | DISTINCT select_listFROM table_list/view_listWHERE conditionsGROUP BY group_listHAVING
2、 conditionsORDER BY order_list第一行关键字SELECT后的select_list列出了所选择列的名称,在检索之后系统将显示在seect_list中列出符合条件的的列的数据。SELECT关键字之后可选的关键字ALL表示将显示所有检索到的数据(包括重复的数据),DISTINCT表示不在结果中显示重复的数据;第二行在关键字FROM之后,指定要进行检索的表的名称table_list或视图的名称view_list;第三行在WHERE关键字之后,您可以指定检索的条件,使SELECT语句按照指定的检索条件在表中检索数据;第四行GROUP BY指定如何对检索到的数据进行分组,使显
3、示结果按照您的需要分好组,产生可读性更好的结果;HAVING子句可以看成用于组的WHERE子句。HAVING子句用来限制组,就象WHERE子句用来限制行一样;第六行ORDER BY指定如何对检索到的数据进行排序,使显示结果按照您的需要派好序,产生可读性更好的结果。最基本的SELECT语句中一般包含前面三行,后面三行是为了更好的显示查询的结果。使用后面三行可以清晰、直观的显示查询结果。 二、指定检索列1、选择所有的列 需要显示一个表中所有列的值,可以在SELECT关键字之后列出表中所有的列的名称。SQL中提供了一个符号:星号(*),用来表示选择表中所有的列。列的显示顺序将与其在CREATE TA
4、BLE时列出的先后顺序相同。SELECT dnumber, dname, mgrid, mgrstrdateFROM DepartmentResultsdnumber dname mgrid mgrstdate 1 开发部 1001 2001-11-32 市场部 2001 2002-3-13 人事部 3001 2001-4-54 技术部 4001 2001-1-155 测试部 5001 2002-6-56 财务部 6001 2002-3-106rowsSELECT *FROM DepartmentResultsdname dnumber mgrid mgrstdate 开发部 1 1001 2
5、001-11-3市场部 2 2001 2002-3-1人事部 3 3001 2001-4-5技术部 4 4001 2001-1-15测试部 5 5001 2002-6-5财务部 6 6001 2002-3-106rows 二、指定检索列2、选择所需的列 很多时候并不需要将所有列的数据都显示出来,SELECT子句也可以用来显示用户需要的列。 SELECT column_name, column_name, .FROM table_list/view_list SELECT dname, dnumber, mgridFROM DepartmentResultsdname dnumber mgrid
6、 开发部 1 1001 市场部 2 2001 人事部 3 3001 技术部 4 4001 测试部 5 5001 财务部 6 6001 6rows 二、指定检索列3、表达式的使用 在SELECT子句中,支持数学表达式的应用,以方便的完成对列上数据的计算并将计算结果包含在查询结果中。在SELECT子句中,表达式中可以包含数字、列名或二者都在表达式中使用。 (1)仅使用数字 在SELECT子句中的表达式不一定必须包括列,可以在表达式中单独使用,并作为单独的一列与其它查询结果一起显示。这样的使用仅仅在很特殊的场合中才存在。 (2)列与常量的结合使用 很多时候需要对查询到的数据进行一些计算,结合使用列与
7、常量能很好的完成用户所想实现的功能。加、减、乘、除这四种运算符都能在表达式中使用。 (3)在表达式中同时使用多个列 SQL中不仅可以对列与常量使用表达式,还支持在列与列之间使用算术运算符。 二、指定检索列4、别名的使用 SELECT dnumber, dname, mgrid, mgrstrdateFROM DepartmentResultsdnumber dname mgrid mgrstrdate 1 开发部 1001 2001-11-32 市场部 2001 2002-3-13 人事部 3001 2001-4-54 技术部 4001 2001-1-155 测试部 5001 2002-6-5
8、6 财务部 6001 2002-3-106rowsSELECT dnumber, dname AS Department, mgridFROM DepartmentResultsdnumber Department mgrid 1 开发部 1001 2 市场部 2001 3 人事部 3001 4 技术部 4001 5 测试部 5001 6 财务部 6001 6rows 在SQL中定义了关键字AS来改变select_list中的列和表达式在显示结果时的名称。这样显示的名称可以改善查询结果的可读性。AS不仅可以改变select_list中的列在显示结果时的名称,还可以为表达式指定显示时的名称。 三
9、、指定检索表SELECT语句中的FROM子句用来指定从那个表或视图中检索数据。table_list/view_list列出表或视图的名称,表名之间也是使用逗号隔开。为了明确说明列属于哪个表,可以在列名之前加上表名作为限定。SQL中提供了对表创建别名的方法来简化限定使用。 SELECT Department.dnumber, Department.dname, Department.mgridFROM Department四、使用WHERE子句筛选 WHERE子句在使用SELECT语句进行查询时最重要的子句,在WHERE子句中指出了检索的条件,系统进行检索时将按照这些指定的条件对表中记录进行检索
10、,找到符合条件的记录。 在SQL中提供了各种的运算符和关键字来定义搜索条件。其中,运算符分为比较运算符与逻辑运算符。关键字有IN、BETWEEN、LIKE、IS NULL、IS NOT NULL等等。 1、比较运算符 比较运算符在WHERE子句中使用的非常普遍,几乎所有的条件都要用到比较运算符。(1)数字的比较(2)字符串的比较(3)时间的比较四、使用WHERE子句筛选2、逻辑运算符 很多情况下,在WHERE子句中仅仅使用一个条件并不能准确的从表中检索到需要的数据。为了处理多条件查询,SQL提供了三个逻辑运算符:AND、OR、NOT。 AND(与)AND运算符可以连接两个或两个以上的条件,只有
11、当AND连接的条件都为TRUE(真)时,AND返回的结果才是TRUE(真)。如果其中有一个条件为FALSE(假),AND返回的值就是FALSE(假)。 OR(或)OR运算符连接的条件中只要有一个条件为TRUE时,OR返回的结果就是TRUE。当然两个条件均为TRUE时,OR返回的结果当然是TRUE。 NOT(非)如果原来条件返回TRUE,在其之前使用NOT之后则返回FALSE。如果原来条件返回FALSE,在其之前使用NOT之后则返回TRUE。 四、使用WHERE子句筛选2、逻辑运算符 SELECT pnumber, budget, gross, gross budget AS profitFRO
12、M ProjectWHERE NOT (gross budget)=40000.00 AND budget200000.00)Resultspnumber budget gross profit 101 110000.00 150000.00 40000.00 102 140000.00 180000.00 40000.00 103 150000.00 180000.00 30000.00 104 120000.00 160000.00 40000.00 201 200000.00 250000.00 50000.00 202 220000.00 280000.00 60000.00 301
13、300000.00 370000.00 70000.00 302 320000.00 380000.00 60000.00 303 360000.00 450000.00 90000.00 9rows 四、使用WHERE子句筛选3、IN子句 在查找特定条件的数据时,如果条件较多,就需要用到多个OR运算符,以查找满足其中任一条件的记录。但是使用多个OR运算符,将使得WHERE子句变得过于冗长。SQL提供了IN子句来取代多个OR运算符。 SELECT select_listFROM table_list/view_listWHERE column NOT IN(value_list)SELECT
14、name, sex, id, salary, dnoFROM EmployeeWHERE dno=1 OR dno=2 OR dno=3Resultsname sex id salary dno 林志千 男 1001 6000.00 1李明 男 1002 5000.00 1李大平 男 1003 3000.00 1林国荣 男 1004 4000.00 1庞文凯 男 1005 3000.00 1陈广海 男 2001 5000.00 2刘燕 女 2002 3000.00 2林志祥 男 2003 3000.00 2张宇 男 3001 5000.00 3吴忠彦 男 3002 3000.00 3魏箐 女
15、3003 4000.00 3王静 女 3004 3000.00 312rows SELECT name, sex, id, salary, dnoFROM EmployeeWHERE dno IN(1,2,3) Resultsname sex id salary dno 林志千 男 1001 6000.00 1李明 男 1002 5000.00 1李大平 男 1003 3000.00 1林国荣 男 1004 4000.00 1庞文凯 男 1005 3000.00 1陈广海 男 2001 5000.00 2刘燕 女 2002 3000.00 2林志祥 男 2003 3000.00 2张宇 男 3
16、001 5000.00 3吴忠彦 男 3002 3000.00 3魏箐 女 3003 4000.00 3王静 女 3004 3000.00 312rows 四、使用WHERE子句筛选4、BETWEEN子句 在查询中,限制范围也是经常使用的一个条件。用户可以同时使用大于(等于)号、小于(等于)号和AND运算符三者来完成范围的限制。SQL中提供了专门的BETWEEN子句也可以完成范围的限制。SQL也支持NOT与BETWEEN结合使用。 SELECT select_listFROM table_list/view_listWHERE column NOT BETWEEN lower_value AN
17、D upper_valueSELECT pnumber, budgetFROM ProjectWHERE budget BETWEEN 150000.00 AND 250000.00Resultspnumber budget 103 150000.00 201 200000.00 202 220000.00 203 250000.00 204 240000.005rows四、使用WHERE子句筛选5、LIKE子句 在SQL中提供了解决模式匹配问题的匹配方法LIKE关键字 SELECT select_listFROM table_list/view_listWHERE column NOT LI
18、KE pattern ESCAPE escape_char在使用中有两点需要说明:(1)在pattern中使用通配符来指定字符串匹配的模式,匹配的模式必须包含在引号中;(2)当模式中需要使用通配符的原义时,使用可选项ESCAPE,并在escape_char中指定使用的转义符。四、使用WHERE子句筛选6、等号、IN、LIKE三者的比较 SQL中等号、IN、LIKE三者都可以用来进行数据匹配。但三者并不相同。等号是用来查找与单个值匹配的所有数据;IN是用来查找与多个值匹配的所有数据;而LIKE用来查找与一个模式匹配的所有数据。 等号确切知道所要查找的内容,且为单一值时,可以使用等号运算符来进行数据比较。等号运算符中可以使用字符串、日期或数字。 IN子句当确切知道所要查找的内容,且为多个值时,可以使用IN子句来进行数据比较。IN子句中也可以使用数字、字符串或日期。 LIKE子句当无法确切知道所要查找的值,而是知道所要查找的数据符合的模式时,可以使用LIKE子句进行匹配。一般来说,LIKE子句仅在字符串类型时使用,有些系统也支持在日期数据中使用,但对数字类型数据是不能使用LIKE子句的。 四、使用WHERE子句筛选7、空值的处理 在很多情况下,表中记录在某一列的值为空值是常有的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电化学反应工岗中质量综合考核试卷含答案
- 医疗器械购销员安全实操模拟考核试卷含答案
- 地质实验员岗位记录考核试卷含答案
- 普通研磨工岗位工作合规化考核试卷含答案
- 2025数学三模拟试卷(真题+答案对照)
- 2026中考第一轮复习(知识能力+解题思路+易错警示+真题演练)第11课时:一次函数及应用(学生版+教师版合并)
- 2026届河北石家庄一中高三上学期9月摸底考英语试卷及答案
- 2026年春招:中国农业发展真题及答案
- 2026年医院公共救治能力提升工程项目融资计划书
- 跨境电商多平台运营对比-亚马逊-Shopee-TikTo-k-eBay
- 2026年船舶专业正高级船舶电子员考试练习题及答案
- 2026年德惠市公益性岗位人员招聘(378人)笔试参考题库及答案详解
- (一检)2026-2027学年福州市高三年级适应性练习地理试题(含答案)
- 2025年通信工程师中级通信专业实务(终端与业务)考试真题及答案
- 进入新时代的意义(课件)-2026-2027学年统编版道德与法治九年级上册
- 2026年从业人员健康证管理题库及答案
- 2026年广西壮族自治区贺州市法检系统书记员招聘笔试备考题库及答案详解
- 钢结构凉亭施工方案
- 上海绿色施工方案格式文本(2026版)
- 《传感器与检测技术》课件 第十章光纤传感器
- VDA6.3-2023版培训教材课件
评论
0/150
提交评论