第五章 sql语言

上传人:今*** 文档编号:107405370 上传时间:2019-10-19 格式:PPT 页数:39 大小:316KB
返回 下载 相关 举报
第五章 sql语言_第1页
第1页 / 共39页
第五章 sql语言_第2页
第2页 / 共39页
第五章 sql语言_第3页
第3页 / 共39页
第五章 sql语言_第4页
第4页 / 共39页
第五章 sql语言_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《第五章 sql语言》由会员分享,可在线阅读,更多相关《第五章 sql语言(39页珍藏版)》请在金锄头文库上搜索。

1、5.1 SQL 概 述,SQL是结构化查询语言 Stuuctured Query Language的缩写,86年诞生 其功能强大,主要用于查询,还包含数据定义、数 据操纵和数据控制等,第五章 关系数据库标准语言SQL,5.2 查 询 功 能,SQL是结构化查询语言 Stuuctured Query Language的缩写,86年诞生 其功能强大,主要用于查询,还包含数据定义、数 据操纵和数据控制等,第五章 关系数据库标准语言SQL,Select命令的功能,显示表的内容 按关键字段顺序显示表中的记录(多关键字) 生成新表,生成文本文件 用函数计算字段的平均值、最大值等 分类汇总(不必先排序) 建

2、立关联表并显示或打印 联接两个表 使用前不需要打开表 缺省into子句时输出到浏览窗口,一、Select 命令格式,Select all|distinct 别名.字段表达式 as 列名, From 数据库名!表名 Into 目标| to File 文件名to screen Where 条件 Group by 字段表达式 Order by 关键表达式1 asc|desc,表达式2 asc|desc Inner join 表名 on 主表字段=副表字段,重复结果只出现一条,说明,* 指显示所有字段 From 指定来源表 Into 指定输出到:文件、打印机、屏幕,缺省是浏览窗口 Where 指定列表

3、记录的限制条件 Group by 指定分类汇总的关键字,必须与SUM()等函数连用 Order by 指定列表时的记录顺序 Having与group by连用,指定查询的条件 Join 建立主表与副表的关联,inner join建立内部关联,5.2 查 询 功 能,二、简单查询 例: 1.从职工关系中检索所有工资值 select 工资 from 职工表 select 工资 from 职工表 distinct,第五章 关系数据库标准语言SQL,2. 检索仓库关系中的所有元组 select * from 仓库表,3. 检索工资多于1230元的职工号 select 职工号 from 职工表 wher

4、e 工资1230,5.2 查 询 功 能,二、简单查询 例: 4.检索哪些仓库有工资多于1210元的职工 select distinct 仓库号 from 职工表 wherer 工资1210,第五章 关系数据库标准语言SQL,5. 给出在仓库“WH1”或WH2工作,并且工资少于1250元的职工号 select 职工号 from 职工 where 工资1250 and ; (仓库号=WH1 or 仓库号=WH2),5.2 查 询 功 能,三、简单的联接查询(用于多个关系的查询) 1.简单的联接查询 例1.找出工资多于1230元的职工号和他们所在的城市 select 职工号,城市 from 职工表

5、,仓库表 where 工资1230 and 职工表.仓库号=仓库表.仓库号,第五章 关系数据库标准语言SQL,5.2 查 询 功 能,三、联接查询(用于多个关系的查询) 1.简单的联接查询 例2.找出工作在面积大于400的仓库的职工号以及这些职工工 作所在的城市 select 职工号,城市 from 职工表,仓库表 where 面积400 and 职工表.仓库号=仓库表.仓库号,第五章 关系数据库标准语言SQL,5.2 查 询 功 能,三、联接查询(用于多个关系的查询) 2.超联接查询 格式: select from table inner|left|right|full join table

6、 On joincondition Where ,第五章 关系数据库标准语言SQL,见书128130 特别注意:130页最后说明,5.2 查 询 功 能,三、联接查询(用于多个关系的查询) 3.自联接查询 自联接查询一定要使用“别名”,第五章 关系数据库标准语言SQL,别名定义: ,别名除了在自联接查询使用外,也可为了简便,在进行多个关系查询时使用,5.2 查 询 功 能,四、嵌套查询(用于多个关系的查询) 例: 1.哪些城市至少有一个仓库的职工工资为1250元? select * from 仓库 where 仓库号 in; (select 仓库号 from 职工 where 工资1250),

7、第五章 关系数据库标准语言SQL,5.2 查 询 功 能,四、嵌套查询(用于多个关系的查询) 例: 2.查询所有职工的工资都多于1210元的仓库的信息? select 城市 from 仓库表 where 仓库号 not in; (select 仓库号 from 职工表 where 工资=1210); and 仓库号 in (select 仓库号 from 职工),第五章 关系数据库标准语言SQL,5.2 查 询 功 能,四、嵌套查询(用于多个关系的查询) 例: 3.找出和职工E4挣同样工资的所有职工? select 职工号 from 职工表 where 工资=; (select 工资 from

8、 职工 where 职工号=E4),第五章 关系数据库标准语言SQL,Select * from sb Select 编号,部门 from sb select 编号,价格*0.17 as 增值税 from sb sele sb.编号,sb.名称,zz.增值 from sb,zz; where sb.编号=zz.编号,5.2 查 询 功 能,sele * from 供应商表 where 供应商号 in; (sele s.供应商号 from 订购单表 s,订购单表 e; where s.供应商号=e.供应商号; and s.职工号=“E1“ and e.职工号=“E3“) and 地址=“北京“,

9、第五章 关系数据库标准语言SQL,5.2 查 询 功 能,五、几个特殊运算符 (1)between and (在与之间) (2)like(字符串匹配运算符,通配符有%和_两个) (3)not(表示不等于!=) (4)not in(不属于范围) (5)not between and (不介于与之间),第五章 关系数据库标准语言SQL,5.2 查 询 功 能,六、排序 Order by order_itemasc|desc,order_itemasc|desc 可以按一个字段排序,也可以按两个或两个以上字段排序,既 当第一个字段值相等时,则按第二个字段的规定顺序排序,第五章 关系数据库标准语言SQ

10、L,5.2 查 询 功 能,七、简单的计算查询 (1)count(计数) (2)sum(求和) (3)avg(计算平均值) (4)max(求最大值) (5)min(求最小值) (6)distinct(表示相同的结果只计算一个),第五章 关系数据库标准语言SQL,5.2 查 询 功 能,八、分组与计算查询 GROUP BY ,HAVING 注意: (1)该命令对查询结果进行分组操作 (2)HAVING 选项表示在分组结果中,对满足条件的组 进行操作,HAVING总是跟在GROUP BY后面,不能单独使用,第五章 关系数据库标准语言SQL,5.2 查 询 功 能,九、内外层互相关嵌套查询 内层查询

11、的条件需要外层查询提供值,而外层查询的条件需要 内层查询的结果,第五章 关系数据库标准语言SQL,5.2 查 询 功 能,第五章 关系数据库标准语言SQL,十、使用量词和谓词的查询 在子查询中除in 和 not in之外还有以下几种: (1) any|all|some(子查询) (2)not exists (子查询),注意: (1)any 和 some在比较时只要子查询中有一行为真则为真 (2)exists和not exists用来检查子查询中存在或不存在元组,5.2 查 询 功 能,第五章 关系数据库标准语言SQL,例1: Sele * from 仓库表 where not exists;

12、(sele * from 职工表 where 仓库号=仓库表.仓库号),等价于 Sele * from 仓库表 where 仓库号 not in; (sele 仓库号 from 职工表),此查询功能:检索仓库中还没有职工的仓库的信息,5.2 查 询 功 能,第五章 关系数据库标准语言SQL,例2: Sele dist 仓库号 from 职工表 where 工资=any; (sele 工资 from 职工表 where 仓库号=“WH1”),等价于 Sele dist 仓库号 from 职工表 where 工资=; (sele min(工资) from 职工表 where 仓库号=“WH1”),

13、此查询功能:检索有职工的工资大于或等于WH1仓库中任何一 名职工工资的仓库号,5.2 查 询 功 能,第五章 关系数据库标准语言SQL,十一、集合的并运算 UNION,可以将两个查询结果通过并运算合并成一个查询结果, 但要求这样的两个查询结果具有相同的字段个数,例:检索城市在北京和上海的仓库信息 Sele * from 仓库表 where 城市=“北京”; Union; Sele * from 仓库表 where 城市=“上海”,5.2 查 询 功 能,十二、SQL SELECT的几个特殊选项 (1)top nPERCENT显示前几个的记录或前百分之几的记录 没有PERCENT时n为13276

14、7间的整数,否则为0.0199.99 (2)into array 将结果存放到数组中 into cursor 将结果存放到临时表中 into dbf|table 将结果存放到永久表中 (3)to file additive 将结果存放到文本文件中,有后面选项将结果追加到原文件尾,第五章 关系数据库标准语言SQL,5.2 查 询 功 能,第五章 关系数据库标准语言SQL,例1:sele * top 3 from 职工表 order by 工资 desc,例2:Sele * top 30 percent from 职工表 order by 工资,例3:Sele * from 职工表 into ar

15、ray tmp 其结果:查询的信息被放在名为tmp的二维数组 ?tmp(1,3)可看出结果,5.2 查 询 功 能,第五章 关系数据库标准语言SQL,例4:sele * from 职工表 into cursor tmp 查询结果被放置在名为tmp的临时表文件中,它为只读,例5:Sele * top 3 from 职工表 into table highsal; order by 工资 desc 查询结果被放置在名为highsal的永久表文件中,例6: Sele * top 3 from 职工表 to file tmp; order by 工资 desc 查询结果被放置在名为tmp的文本文件中,5

16、.3 操作功能,5.3.1 插入 格式1: Insert into 表名 (字段1,字段2,) values(表达式1,表达式2,),格式2: Insert into 表名 from array 数组名|from memvar,5.3 操作功能,5.3.1 插入,Use 订购单表 打开表文件,Scatter to arr1 将当前记录读到数组,Copy structure to ord2 拷贝当前表文件的结构,Insert inot ord2 from array arr1 将数组arr1的值插入到表文件ord2中,Select ord2 切换工作区至表ord2,browse 浏览表内容 use 关闭表文件,Delete file ord2.dbf 删除表文件,Scatter memvar 将当前记录读到内存变量中,Insert into ord2 from memvar 从内存变量插入记录到or

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号