第四章 数据访问与修改.ppt
文本预览下载声明
数据库 教师:矫志杰 jiaozj@ral.neu.edu.cn 田 勇 tianyong@ral.neu.edu.cn 第四章 数据访问与修改 查询SQL数据 修改SQL数据 使用谓词 使用函数和值表达式 访问多个表 使用子查询访问和修改数据 掌握内容 查询SQL数据 SQL数据查询语句是SELECT语句。该语句的基本框架是SELECT-FROM-WHERE,它包含输出字段、数据来源和查询条件等基本子句。在这种固定格式中,可以不要WHERE,但是SELECT和FROM是必备的。查询语句的子句很多,理解了这条语句各项的含义,就能从数据库中查询出各种数据。 查询SQL数据 语法: Select [distinct | all ][top n[percent]] { * | select list }from table [{, talbe } …]数据源 [where search condition]查询条件[group by grouping specification]分组[having search condition]分组查询条件[order by order condition]排序 必须的子句只有 select和from,其余为可选项。 Select语句中的子句按照下列次序应用: 查询SQL数据 [distinct | all ]可选项 Distinct 确保查询结构不出现重复行,如果集合中指定的列有多行重复,那么只返回最前面的一行。 All 系统默认值,返回所有行。 { * | select list } * 表示返回集合中的所有列。 select list 可以是字段列表,算术表达式或使用聚合函数等。 如果结果集合从多个表获得,表名和字段名要同时出现。语法:表名.字段名, 表名.字段名, … From table [{, talbe } …] 指定数据的来源,一个表或多个表。 可对表名重新命名,使用关键字 AS Select A.学号,B.课程名称 from 选课 AS A,课程 AS Bwhere A.课程编号=B.课程编号 查询SQL数据 Select distinct 学号 from 选课 Select distinct 学号,姓名 from 选课 查询SQL数据 设定查询条件:[where search condition] search condition可以出现的运算 关系运算: =、、、=、=、、!=、!、! BETWEEN MinValue AND MaxValue select * from 工资库 where 工资 between 700 and 900 逻辑运算:NOT、AND、OR 集合运算: test_expression [NOT] IN?(expression [ ,...n ]?) test_expression [NOT] IN?(subquery ) Select 学号,姓名 from 选课 where 姓名 in (‘张三’,’李四’) 嵌套查询 select * from 课程 where 课程编号 in (select 课程编号 from 选课) 查询SQL数据 Select * from student Where 授课教师 in (select 授课教师 from lesson Where 课程名称=‘自动控制’) Select * from student as A, lesson as B Where A.授课教师=B.授课教师 and B.课程名称=‘自动控制’ 查询SQL数据 分组:[group by grouping specification] Group by 用于归纳信息类型,以汇总相关数据。 不论是否使用where字句,group by字句都可以包含在select语句中。 将表中的元组按指定列上的值相等的原则分组,然后在每一分组上使用聚集函数,得到每一分组的单一值。 聚集函数:max , min , sum , avg , count 对具有NULL字段使用group by子句时,所有NULL行组成一组 示例: Select 职务, sum(工资) as 职务统计 from 人员 group by 职务 Select 职务,count(*) as 职务人数 from 人员 group by 职务 查询SQL数据 指定组搜索条件:[having search condition] 如指定group by子句,那么这个having字句将应用于这个group by 字句创建的那些组。 如指定where子句,没有指定group by 子句,那么havi
显示全部