- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11 复习
SELECT语句 SELECT的使用比较简单,但是包含一些可选子句,必须做相应的处理 SELECT子句 在关系数据库中,SELECT语句选取列值、常量值或表达式。 返回值可以是任意有效数据类型 SELECT可以: 单列选取:column_name 选取多个列:column_name1, column_name2,… 选取所有列:* 选取所有列和一个附加列:table_name_or_alias.*,附加列 选取唯一值:DISTINCT,UNIQUE 伪表 在关系数据库中,不只可以选取列,也可以选取表达式和常量 一个值直到调用时才出现,它通过函数返回,或还在动态的计算中,但仍然要从某处选取 这里的“某处”可以是数据库中存放的任何表,也可以从“伪表”中获得 “伪表”没有选取源的能力,它只是供应商为取悦客户的独创性表现形式 不同的RDBMS供应商对“伪表”概念的实现不同 ORACLE:当没有实体对象(表或视图)供选择时,Oracle提供的伪表为dual,如查询Oracle数据库系统时间: DB2:对于选取非列值,DB2 有本质上相同的概念,在SYSIBM系统架构下存放SYSDUMMY1表,如查询DB2数据库系统时间 MICROSOFT SQL SERVER:SQL Server允许完全摒弃FROM子句,如 列别名 三大RDBMS供应商都支持的标准功能 别名作用:为在SQL查询中选中的列赋予更生动的名称 在默认情况下,如果没有指定常量、表达式或函数这些构造列的别名,Oracle会将常量本身或表达式放在别名的位置;IBM DB2列编号以1开头;Microsoft SQL Server只是将列名空出 在SELECT子句中使用子查询 子查询的概念:一个查询嵌套在另一个查询内部,并且第二个查询为第一个查询提供必要数据。 SELECT查询使用嵌套的子查询检索未知数据 FROM子句 FROM子句:从哪里选取? 数据库对象能够从表和视图中选取数据,包括多种形式:临时表、实在表、视图等 在FROM子句中同样可以使用子查询 WHERE子句 where子句:设置水平限制 尽管选择表或视图中的所有内容对于某些操作来说是比较有价值的,但是,在多少情况下要查找的是一些特定的值 SQL WHERE子句提供了一种设置水平限制的机制,就是说通过指定一些限制条件或条件组,允许限制查询结果集中的行数。 Where子句中同样可以使用子查询 为了在where子句中指定条件,SQL使用了运算符 SQL运算符 SQL中的运算符定义为符号和关键字,用于指定一个或多个被称为操作数或参数的表达式执行操作 运算符一般包括两种类型: 一元运算符:一次只对一个操作数进行运算 二元运算符:一次对两个操作数进行运算 算术运算符和字符串串联运算符 逻辑运算符 比较运算符 IS NULL 运算符 IS NULL运算符:null值的专用测试 注意null和‘’的区别 GROUP BY 和HAVING子句 group by和having子句:汇总结果 根据一些条件对结果集中的记录进行分组 注意:在select子句列表中指定的所有列,除了聚合列(聚合函数的参数)之外,其他列必须都包含在group by子句中 group by子句通常(并不总是)与聚合函数一起使用,聚合函数对一组值进行运算,并返回一个单一的值作为结果,集合被分成多个组分别进行聚合计算 创建一个新表时定义一个或多个约束 在创建表之后通过更改表来定义 * SELECT [DISTINCT] {column_name|*|expression|pseudocolumn [AS column_alias]} FROM {table_or_view_name [[AS] table_alias]} [WHERE predicate] [GROUP BY column_name,… [HAVING predicate] ] ORDER BY { column_name | column_number} [ASC | DESC],… SQL SELECT SYSDATE FROM DUAL; db2= SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1; SELECT (5+5); CONCAT || MOD(列1 | 表达式1, 列2 | 表达式2):DB2 9.5版本之前,只能对整数取余 MOD / * - + 含义 运算符 一组比较中某些值为true,则结果为true SOME 操作数与表达式列表中的某个相等,结果为true IN 以主查询为主 子查询包含任意行,则结果为true EXISTS BETWEEN expression
文档评论(0)