第五章 查询、视图与sql
第5章查询和视图.ppt
![第5章查询和视图.ppt](https://img.taocdn.com/s3/m/9f500463bed5b9f3f90f1cab.png)
5.1.1 SQL 语言概述
SQL的含义:SQL是英文Structure Query Language(结构化查询语言)的缩写,是关系数据库语言 通用的结构查询语言。
SEQUEL2 SQL 86 SQL 89
SQL:1999 SQL 92
一、SQL语言主要特点
1. 综合统一 2. 高度非过程化
ON Cj.kcdh = Kc.kcdh ON Xs.xh = Cj.xh ; ORDER BY Xs.xh
SELECT Xs.xh, Xs. xm, Kc.kcm, Cj.cj ; FROM jxsjk!xs ; INNER JOIN jxsjk!cj ON Xs.xh = Cj.xh ; INNER JOIN jxsjk!kc ON Cj.kcdh = Kc.kcdh; ORDER BY Xs.xh
数据定义语言,数据操纵语言, 数据查询语言,数据控制语言
3. 面向集合的操作方式
4.语言简洁、易学易用
5.以同一种语法结构提供两种使用方式
既可以作为交互式语言独立使用,也可以作 为子语言嵌入宿主语言中使用
二、VFP支持的SQL命令
1. CREATE CURSOR - SQL
2. CREATE TABLE - SQL 3. ALTER TABLE – SQL
SELECT Js.gh as 工号, Js.xm as 姓名,gl as 工龄; FROM jxsjk!js; WHERE gl NOT BETWEEN 8 AND 12
数据包含查询:若查找的列值是某几个值中 的一个,此时可用谓词IN…来表示。同样 可以使用谓词NOT IN…来表示与IN…完 全相反的查询。
查询某个、几个字段
例:1、查询学生表(xs)中的专业代号( zydh)
chap05 查询和视图
![chap05 查询和视图](https://img.taocdn.com/s3/m/6318c9d2a8956bec0875e377.png)
打开数据库,用命令来创建视图:
OPEN DATABASE 数据库名 CREATE SQL VIEW 视图文件名 AS SQL-SELECT
语句
20
视图的使用
利用视图更新源表数据
可在视图设计器的更新条件页面中进行如下设置 来实现对源表数据的更新:
set<fieldname>=<expression> 插入表记录命令:Insert into <tablename> (字段名列表)Values(值列表) 删除表记录命令:Delete From <tablename>
[where<条件表达式>]
22
5.3 SQL命令小结
非SQL命令
建表命令:Create 修改表命令:Modify Structure 修改表记录命令:Replace 插入表记录命令:Append 删除表记录命令:Delete
VFP程序设计教程
南京理工大学紫金学院 计算机系
Chapter05 查询和视图
2
5.1 查询的创建和使用
查询的概念 查询的创建
3
查询的概念
查询:就是向一个数据库发出检索信息的请求, 从中提取符合特定条件的记录。
查询文件:保存实现查询的SELECT-SQL命令的 文件。查询文件保存时,系统自动给出扩展 名.qpr;查询被运行后,系统还会生成一个编 译后的查询文件,扩展名为.qpx。
设置查询结果的排序依据
排序决定查询输出结果中记录显示的顺序。单击排序 依据 → 从选定字段框选中字段 → 选择升序或降序 → 单击添加。
7
查询的创建
设置查询结果的分组依据
SQL Server 2005数据库应用技术第5章 查询与视图
![SQL Server 2005数据库应用技术第5章 查询与视图](https://img.taocdn.com/s3/m/d73f29655acfa1c7aa00cc89.png)
5.1 基本查询
5.2 嵌套查询
5.3 连接查询 5.4 创建视图 5.5 视图的管理
第5章 查询与视图
《SQL Server 2005 数据库应用技术》
本章学习目标:
5.1 基本查询
5.2 嵌套查询
5.3 连接查询 5.4 创建视图 5.5 视图的管理
掌握T-SQL查询语句的基本结构和基本用 法。 掌握实现数据表嵌套查询的方法。 掌握实现数据表之间连接查询的方法。 掌握视图的概念及操作方法。
5.1 基本查询
5.1 基本查询
5.2 嵌套查询
5.3 连接查询 5.4 创建视图 5.5 视图的管理
SQL Server利用SELECT语句实现数据查询。SELECT 语句的基本结构包括SELECT…FROM…。该结构对所 有的查询语句都是必备的。SELECT语法提供了强大的 查询功能,可以对一个或多个表或视图进行查询;可以 对查询列进行筛选和计算;还可以对查询行进行分组、 分组筛选和排序。SQL Server的基本查询包括简单查询 和根据查询条件查询。
5.2 嵌套查询
5.3 连接查询 5.4 创建视图 5.5 视图的管理
运算符 ALL
ANY BETWEEN EXISTS IN LIKE
SOME
5.1 基本查询 5.1.3
5.1 基本查询
WHERE子句
5.2 嵌套查询
5.3 连接查询 5.4 创建视图 5.5 视图的管理
5.1 基本查询 5.1.2
5.1 基本查询
带条件查询
5.2 嵌套查询
5.3 连接查询 5.4 创建视图 5.5 视图的管理
[WHERE <search_condition>] 其中search_condition是条件表达式。条件表达式用的比 较符有:=(等于)、!=或<>(不等于)、>(大于)、 >=(大于等于)、<(小于)、<=(小于等于)等。 例5-5 对“学生”表,列出“入学成绩”为600分及以上 的学生记录。 SELECT * FROM 学生 WHERE 入学成绩>=600 例5-6 对“课程”表,列出所有选修课程的记录。 SELECT 课程编号,课程名称,课程类别,学分 FROM 课 程 WHERE 课程类别='选修'
第5章 SQL语言、查询与视图(精简版)
![第5章 SQL语言、查询与视图(精简版)](https://img.taocdn.com/s3/m/2bcf92116c175f0e7cd13747.png)
第五章 SQL语言,查询与视图 SQL语言ห้องสมุดไป่ตู้查询与视图
5.1.1 SQL的数据定义 SQL的数据定义 1,定义表
命令格式: CREAT TABLE <表名> (<字段名1> <类型> ( <长度> [,<小数 <表名> (<字段名1> <类型> <长度> [, 位数> 位数> ] ) [,<字段名2> <类型> (<长度> [,<小数位数>] ) …] 字段名2> <类型> (<长度> [, 小数位数>] SQL创建学生表 例5.1 用SQL创建学生表
第五章 SQL语言,查询与视图 SQL语言,查询与视图
5.1.2 SQL的数据修改 SQL的数据修改
Visual FoxPro提供了三条命令进行数据操作. FoxPro提供了三条命令进行数据操作.
1,INSERT命令 INSERT命令
格式1 格式1: INSERT INTO 表名 [ (字段名1 [,字段名2,…])] (字段名1 [,字段名2 VALUES (表达式1 [,表达式2,…]) (表达式1 [,表达式2
第五章 SQL语言,查询与视图 SQL语言,查询与视图
(3) 空值查询
例5.12 查询缺考学生的学号和课程号 SELECT 学号,课程号 FROM 成绩 WHERE 成绩 IS NULL
(4) GROUP BY 子句
将查询结果按某一列或多列值分组,值相等的为一组. 例5.13 将学生表中的学生按年龄进行分组,并统计 各组的人数 SELECT 年龄,COUNT(姓名) FROM 学生 GROUP BY 年龄,COUNT(姓名) 年龄
第5章 数据库的查询和视图
![第5章 数据库的查询和视图](https://img.taocdn.com/s3/m/6d96fdcc50e2524de5187e9b.png)
2016年4月5日星期二
Page 9
10
• 4.查询经过计算的值 • SELECT子句的<字段列表>不仅可以是表中的属性 列,也可以是表达式,包括字符串常量、函数等。 其语法格式为: • 计算字段名=表达式
【例5.4】 查询“学生信息”表中所有学生的学号、姓名及年 龄。 USE jxgl GO SELECT stu_id,stu_name,age=DATEDIFF(YY,stu_birth,GETDATE( )) FROM 学生信息 GO 2016年4月5日星期二 Page 10
11
• 5.返回全部记录(ALL) • 要返回所有记录可在SELECT后使用ALL, ALL是默认设置,因此也可以省略。
• 【例5.5】 查询“学生信息”表中所有学生的系 别代码。 USE jxgl GO SELECT dept_id FROM 学生信息 GO
2016年4月5日星期二 Page 11
2016年4月5日星期二 Page 15
15
16
• 【例5.9】 创建一个和“学生信息”表结构相同 的xs_new表。 USE jxgl GO SELECT * INTO xs_new FROM学生信息 WHERE 6>8 • 设置“WHERE 6>8”这样一个明显为逻辑否的条 件的目的是为了只保留“学生信息”表的结构,而 不返回任何记录。
2016年4月5日星期二
Page 19
20
• 1.比较表达式作查询条件 • 比较表达式是逻辑表达式的一种,使用比较表达 式作为查询条件的一般表达形式是: • 表达式 比较运算符 表达式 • 其中: • 表达式为:常量、变量和列表达式的任意有效组 合。 • 比较运算符包括:=(等于)、<(小于)、> (大于)、<>(不等于)、!>(不大于)、!< (不小于)、>=(大于等于)、<=(小于等 于)、!=(不等于)。
第5章查询与视图
![第5章查询与视图](https://img.taocdn.com/s3/m/6cae9f3eaef8941ea66e056a.png)
(3)参数说明
<字段名表>:逐一列出当前表中可被访问的字段的名称。
ALL:表示允许访问当前表中的所有字段。
ALL LIKE <字段名通配式>:表示当前表中所有与<字段名通配 式>相匹配的字段均为可被访问字段。
ALL EXCEPT <字段名通配式>:表示当前表中所有不与<字段 名通配式>相匹配的字段均为可被访问字段。
(2)功能
对当前数据表中<范围>内、满足指定条件的记录的 指定数值字段进行纵向求平均值,若命令中含有<内存 变量名表>,则将结果送入对应的内存变量中保存。
提示 :
1.COUNT/SUM/AVERAGE命令中<范围>缺省时表示 所有记录。
第5章 查询与视图
主要内容:
1、结构化查询语言SQL 2、查询设计器的使用 3、视图及视图设计器 4、查询与视图的区别 重点:
1 、结构化查询语言SQL 的查询语句 2、查询设计器的使用 难点: 1 、结构化查询语言SQL 的查询语句 2、查询与视图的区别 要求:
1、掌握结构化查询语言SQL的数据定义、数据操纵 及数据查询语句
对当前数据表中<范围>内满足<条件>的记录,按指定数 值字段进行纵向求和,若命令中含有<内存变量名表>,则 将结果送入对应的内存变量中保存。
3.计算平均数命令:AVERAGE (1)格式
AVERAGE [<数值字段名表>] [<范围>] [FOR/WHILE < 条件>] [TO <内存变量名表>]
执行该命令,系统查找主控索引关键字的值与命令 中<表达式>的值相匹配的第一条记录,若找到, 指针指向该记录,FOUND()返回.T.;若没找到, 指针指向表的eof标志,FOUND()和EOF()将分别返 回.F.和.T.。
第5_6章 查询与视图(SQL)
![第5_6章 查询与视图(SQL)](https://img.taocdn.com/s3/m/5d5f5d1cfc4ffe473368ab3d.png)
删除记录 示例: 示例: 职务= 技术员 技术员” delete from gzgl!zg where 职务=“技术员” browse &&物理删除 pack &&物理删除 browse
更新记录 【例SQL-5.prg】: 】 实发工资=工资+奖金update gzgl!gz set 实发工资=工资+奖金-水电费 &&set用于指定列和修改的值 browse &&set用于指定列和修改的值
②视图设计器
SQL命令 ③ SQL命令
【例5.4】利用视图向导,创建一个多表本地视图文 】利用视图向导, 学生成绩” 视图中的数据包含学号、姓名、 件“学生成绩”,视图中的数据包含学号、姓名、 系科和课程号、成绩等字段的内容, 系科和课程号、成绩等字段的内容,视图中只含 男同学的记录并以成绩的降序排列。 男同学的记录并以成绩的降序排列。 【例5.5】利用视图设计器,创建一个多表本地视图 】利用视图设计器, 成绩单视图” 视图中的数据包含Student表、 “成绩单视图”,视图中的数据包含 表 Course表和 表和Assign表,视图中包含 表和 表 视图中包含Student表的学 表的学 姓名、系科; 表中的课程号、 号、姓名、系科; Assign表中的课程号、成绩; 表中的课程号 成绩; Course表中的等课程名、学分等字段的内容;查询 表中的等课程名、 表中的等课程名 学分等字段的内容; 结果以学号的升序和课程号升序排列。 结果以学号的升序和课程号升序排列。 【例5.6】利用本地视图“学生视图”,更新 】利用本地视图“学生视图” Student表中的数据。 表中的数据。 表中的数据
②排序短语 &&查询全部记录, &&查询全部记录,并按职工号降序排列 查询全部记录 SELECT * FROM 职工工资 order by 职工号 desc &&统计student表中各专业的女生人数 &&统计student表中各专业的女生人数 统计student ③分组短语
SQL查询及视图
![SQL查询及视图](https://img.taocdn.com/s3/m/4323e6492b160b4e767fcf84.png)
• 视图和基本表不同,视图是一个虚表,数据库中只 存储视图的定义(存在数据字典中),实际的数据 不存储。 • 基本表本身是实际存在,一个基本表就是一个关系 ,它不是有其他表导出的表。 • 视图和基本表示相互联系的。 • 视图是从一个或几个基本表(或视图)导出的表, 某一用户可以定义若干个视图,因此对某一用户而 言,它的外模式是由若干个基本表和若干个视图组 成的。
(1)创建视图S1(Sno,Gavg,Cnum)将所 有成绩在80分以上的同学的学号、选修门 数组成一个视图; Create view S1(Sno, Gavg,Cnum) As Select Sno,Avg(grade),Count(Cno) From SC Where Grade>=80 Group by Sno
• [题5] 已知一个关系数据库的模式如下: S(SNO,SNAME,SCITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,JCITY) SPJ(SNO,PNO,JNO,QTY) 其中S表示供应商,它的各属性依次为供应商号, 供应商名,供应商所在城市; • P表示零件,它的各属性依次为零件号,零件名, 零件颜色,零件重量; • J表示工程,它的各属性依次为工程号,工程名, 工程所在城市; • SPJ表示供货关系,它的各属性依次为供应商号, 零件号,工程号,供货数量。 请用SQL语句分别表示下面两个查询要求: ⑴找出北京的任何工程都不购买的零件的零件号。 ⑵按工程号递增的顺序列ROM P WHERE NOT EXISTS (SELECT * FROM SPJ,S WHERE SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.SCITY=’北京’); ② SELECT JNO,SUM(QTY) FROM SPJ GROUP BY JNO ORDER BY JNO ASC;
VF复习资料第五章
![VF复习资料第五章](https://img.taocdn.com/s3/m/caff990552ea551810a687e8.png)
第五章查询和视图1.用向导建立查询(1)建立文件菜单→新建或常用工具栏新建按钮,选文件类型为查询→向导步骤1—字段选取(见图4.2)将可用字段中字段选入选定字段中→下一步,进入查询向导步骤2—为表建立关系(见图4.3)。
添加→下一步步骤3—筛选记录(见图4.5)→下一步步骤4—排序记录(见图4.6),选学生.学号→添加→下一步,步骤5—完成对话框(见图4.8)→预览→完成。
打开另存为对话框,在文件名文本框输入查询学生→保存。
在查询设计器打开下,通过查询菜单,查询SQL选项可查看对应的SQL SELECT 语句。
图4.1 向导选取对话框图4.2 查询向导步骤1对话框图4.3 查询向导步骤2对话框图4.4 查询向导步骤2a图4.5 查询向导步骤3—筛选记录图4.6 查询向导步骤4—排序记录图4.7 查询向导步骤4a—限制记录图4.8 查询向导步骤5—完成对话框2.用查询设计器建立查询文件→新建或常用工具栏的新建按钮,打开新建对话框,选查询→新建文件按钮,打开打开对话框,选学生表→确定(见图4.9)。
在添加表或视图对话框中选学生表→添加,选学生成绩表→添加→关闭。
进入如图4.10所示查询设计器中。
图4.9 添加表或视图对话框图4.10 查询设计器在查询设计器中有几个选项卡,含义为:(1)字段选项卡,对应于SELECT 中的输出结果字段。
(2)联接选项卡,对应于SELECT 中的JOIN子句。
(3)筛选选项卡,对应于SELECT 中WHERE子句。
(4)分组选项卡,对应于SELECT 中GROUP 与HA VING 子句。
(5)排序选项卡,对应于SELECT 中ORDER BY子句。
(6)杂项选项卡,对应于SELECT 中[ALL|DISTINCT]子句与[TOP …]子句。
3.定向输出查询结果在查询设计器打开基础上:查询菜单→查询去向,,默认为浏览即屏幕输出。
图4.11 查询去向表4.3 查询输出去向类型说明执行查询1.文件→打开,再打开对话框中选文件类型为查询,选文件名为查询学生1→确定。
SQL Server 2008数据库应用技术第5章 查询与视图
![SQL Server 2008数据库应用技术第5章 查询与视图](https://img.taocdn.com/s3/m/519ed71de87101f69e3195f3.png)
5.1 基本查询 5.1.1
5.1 基本查询
SELECT子句
5.2 嵌套查询
5.3 连接查询 5.4 创建视图 5.5 视图的管理
SELECT子句的语法结构如下: SELECT [ ALL | DISTINCT ] [ TOP expression [ PERCENT ] [ WITH TIES ] ] <select_list> 各选项的含义如下: (1)ALL指定在结果集中可以包含重复行,ALL 是默认 值;DISTINCT指定在结果集中只能包含唯一行。对于 DISTINCT 关键字来说,Null值是相等的。 (2)TOP expression [ PERCENT ] [ WITH TIES ]指示 只能从查询结果集返回指定的第一组行或指定的百分比 数目的行。 column_ alias是查询结果集内替换列名的可选名。
5.1 基本查询 5.1.2
5.1 基本查询
FROM子句
5.2 嵌套查询
5.3 连接查询 5.4 创建视图 5.5 视图的管理
FROM子句的语法: [ FROM { <table_source> } [ ,...n ] ] 指定在SELECT语句中使用的表、视图、派生表和联接表。 <table_source>的语法格式如下所示。 <table_source> ::= { table_or_view_name [[ AS ] table_alias ][ <tablesample_clause> ] | rowset_function [ [ AS ] table_alias ] [ ( bulk_column_alias [ ,...n ] ) ] | user_defined_function [ [ AS ] table_alias ] [ (column_alias [ ,...n ] ) ] | OPENXML <openxml_clause> | derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ] | <joined_table> }
第5章查询与视图.ppt
![第5章查询与视图.ppt](https://img.taocdn.com/s3/m/21544815e518964bce847c0b.png)
“筛选过滤”分为横向和纵向两种。前者叫做记录筛 选,它能够屏蔽掉不满足条件的记录集;后者叫做字段筛 选,它能够屏蔽我们不感兴趣的字段集。记录筛选实现了 关系运算中的选择运算(Selection),字段筛选实现了关系运 算中的投影运算(Projection)。
1.记录筛选命令:SET FILTER (1)格式 SET FILTER TO <条件> (2)功能 设置当前表中可以被访问的记录必须满足的 条件。
若命令中含有<内存变量名>,则将结果送入指定内存变量 中保存。否则将统计结果显示在屏幕上。
提示 : 如果SET DELETE是ON,已做了删除标记的记录将不 被COUNT命令统计,但仍被RECCOUNT()函数统计。
2019-8-13
谢谢欣赏
12
2.计算总和命令:SUM (1)格式
SUM [<数值字段名表>] [<范围>] [FOR/WHILE <条件 >] [TO <内存变量名表>] (2)功能
1.顺序查询命令:LOCATE (1)格式 LOCATE [<范围>] FOR <条件> (2)功能 执行该命令,系统在指定的记录范围(缺省表示所有
记录)内,顺序查询满足条件的第一个记录。
提示: ① 顺序查询不需对表事先建立索引。
② 若要继续查找满足条件的下一个记录,应使用CONTINUE。 ③ VFP默认EXACT OFF,在此状态下用LOCATE命令查找字符 型数据时,进行的是不精确匹配,若要进行精确匹配查找,请使用 “==”。
操作步骤如下: (1)启动查询设计器,添加“学生成绩”库中的 STUDENT表、GRADE表和COURSE表(2)设置联接条件(图1)。(3)选 定输出列(图2) 。 (4)设置筛选条件(图3) 。 (5) 结果排序的依据(图4) 。 (6) 分组所依据的字段(图5) (7)选择“杂项”选项卡(图6) (8)保存查询 文件。
VF 第五章 查询、视图与SQL
![VF 第五章 查询、视图与SQL](https://img.taocdn.com/s3/m/a20b9cbafd0a79563c1e72cc.png)
5.1.2
用查询向导创建查询
操作方法举例说明如下: 【例5.3】 利用查询向导创建数据表kcb.dbf和xkcjb.dbf 的多表查询dbcx2.qpr,查询选修大学计算机基础且成绩在 60分及以上的学生学号、课程名、成绩。 操作步骤如下: ①启动查询向导。 选择【文件】菜单下【新建】 命令,打开【新建】对话框, 选择【查询】,单击【向导】 按钮,弹出【向导选取】对话框
5.1.3
查询文件的运行
(3)用命令运行 格式:DO<查询文件名> 功能:运行查询文件。 说明:<查询文件名>中的扩展名不能缺省。 例如,我们要运行查询文件dbcx1.qpr,则可以在 命令窗口中输入命令:DO dbcx1.qpr,其运行结 果如下图所示。
5.1.4
查询文件的修改
修改查询文件的方法通常有2种: (1)用菜单打开查询文件进行修改 选择【文件】菜单中的【打开】命令,指定文 件类型为“查询”,选择相应的查询文件,单击 【确定】,打开该查询文件的查询设计器,即可对 该查询文件进行修改。 (2)用命令打开查询文件进行修改 格式:MODIFY QUERY<查询文件名> 功能:打开指定查询文件的查询设计器,以便修改 该查询文件。
5.1 创建查询
②选择查询输出字段。 在【字段】页面中选择输出字段:dab.学号、dab.姓 名、kcb.课程名和xkcjb.成绩。 ③设置查询条件。 设定筛选条件为:dab.姓名=“陈兴华”。 ④设置查询输出排序依据。 选择【排序依据】选项卡,双击字段xkcjb.成绩,添 加到排序条件中。 ⑤保存查询文件。 选择【文件】菜单下【保存】或【另存为】命令,进 入【另存为】对话框,将查询文件保存为bcx1.qpr。
⑤预览查询效果。 单击【预览】按钮,进入【预览】窗口,结果 如下图所示。
SQLserver数据库课件第5章视图及应用
![SQLserver数据库课件第5章视图及应用](https://img.taocdn.com/s3/m/4a808047df80d4d8d15abe23482fb4daa48d1d44.png)
Use Student Go Alter View st_view2 WITH ENCRYPTION AS Select xh , xm , rxsj , ssx From stab
Where xh NOT IN(Select Distinct xh From sctab ) Order By rxsj ASC Go
5.4.1 使用SQL Server Management Studio操作视图
3.删除或重命名视图或查看视图属性 (1)启动SQL Server Management Studio,并连接到SQL Server 2008
中的数据库,在“对象资源管理器”窗口中展开“数据库”节点,再 展开操作的视图所属的数据库名(比如Student),展开其“视图” 节点,右击要删除或重命名或查看属性的视图名,系统出现弹出菜单, 如上图5-6所示。 (2)执行弹出菜单中的【删除】命令,可删除视图。 (3)执行弹出菜单中的【重命名】命令,可重命名视图。 (4)执行弹出菜单中的【属性】命令,可查看视图的属性。 4.查看视图的内容 因为视图本身也是一个表,因此查看其内容同表操作一样,执行上图 5-6弹出菜单中的【编辑前200行】命令即可查看视图内容。
[WITH ENCRYPTION] AS
select_statement [ WITH CHECK OPTION ]
其中: • view_name指定视图的名称。 • column指定视图中的列名。若没有指定,其列名由SELECT命令指派,
即为SELECT命令中的列名。注意:视图中的列名个数得与SELECT 命令中的列项数相同。 • WITH ENCRYPTION表示 SQL Server 加密包含 CREATE VIEW 语 句文本在内的系统表列。 • select_statement用于创建视图的SELECT语句,利用SELECT命令 可以从表中或者视图中选择列构成新视图的列。 • WITH CHECK OPTION用于强制视图上执行的所有数据修改语句都 必须符合由 select_statement 设置的准则。
数据库基础 第五章 SQL语言、查询和视图
![数据库基础 第五章 SQL语言、查询和视图](https://img.taocdn.com/s3/m/addc4c2f915f804d2b16c120.png)
【例】查询spxx.dbf中零售价大于10元且类别为‚日用品‛ 的商品名称。 SELECT 商品名称 FROM spxx ; WHERE 零售价>10 AND 类别=„日用品‘
数据库应用基础
5.1.3 SQL查询
(3) 确定范围 ([NOT] BETWEEN <值1> AND <值2>) 【例】 查询零售价在5元至50元之间的商品的名称、类别、零售价。 SELECT 商品名称,类别,零售价; FROM spxx WHERE 零售价 BETWEEN 5 AND 50 等价于: SELECT名称,类别,零售价; FROM spxx WHERE 零售价 >=5 AND 零售价 <=50 【例】 查询零售价不在5元至50元之间的商品的名称、类别、零售价。 SELECT名称,类别,零售价; FROM spxx WHERE 零售价 NOT BETWEEN 5 AND 50
5.1 SQL语言
SQL是结构化查询语言(Structured Query Language, SQL)的缩写,它是一个通用的,功能极强的关系数据库的 标准语言。它与VFP的其它表操作命令相独立,即可以独立 使用。如SQL操作表时,可以不用USE命令打开表 1. SQL语言具有以下特点: 综合统一 高度非过程化 面向集合的操作方式 以同一种语法结构提供两种使用方式 语言简洁,易学易用
数据库应用基础
5.1.3 SQL查询
【例】查询jhxx.dbf中商品的进货总数和平均价格
FROM(数据源) <表名>[<别名>][,…] [WHERE(查询条件) <条件1>] [GROUP BY(对列分组)<列名1>[HAVING <条件2>]] [ORDER BY(对列排序) <列名2> [ASC/DESC]] ;
第5章 查询、SQL与视图
![第5章 查询、SQL与视图](https://img.taocdn.com/s3/m/d8fb1b573c1ec5da50e270f7.png)
5.1.2 SQL数据查询语句
3.嵌套查询 3.嵌套查询 查询并显示这样一些教师的姓名; 例5-12. 查询并显示这样一些教师的姓名; 他至少已担任了代号0101教师所担任课程中 他至少已担任了代号0101教师所担任课程中 0101 的一门课程
SELECT tname; FROM offer,teachers; WHERE offer.tno=teachers.tno AND offer.tno !="0101" ; (SELECT AND cno IN (SELECT cno from offer where tno="0101") tno="0101")
一般格式: 一般格式: 对应
SELECT [ALL|DIST][TOP 表达式[PERC]]字段名表; 表显示区 对应 表达式[PERC] 字段名表; 连接条件]; FROM 表名表 [ON 连接条件]; 去处框 去处]; [INTO 去处]; 对结果 对应 对应 [连接条件 连接条件][AND 筛选条件]]; [WHERE [连接条件][AND 筛选条件]]; 表筛选联接卡 排序依据卡 BY 字段名表]; 字段名表]; [GROUP [HANVING 筛选条件]; 筛选条件]; 对应 对应 字段名[ASC|DESC]; [ORDER BY 字段名[ASC|DESC]; 分组依据卡 [,字段名[ASC|DESC]…] 字段名[ASC|DESC] [,字段名[ASC|DESC] ] 筛选卡
5.1.2 SQL数据查询语句
1. 单表查询 全表查询) 例5-1 (全表查询) 查询并显示xim表的全部数据。 xim表的全部数据 查询并显示xim表的全部数据。 SELECT xdh,ximing,leader; FROM xim 或 SELECT *; FROM xim
5 查询和视图
![5 查询和视图](https://img.taocdn.com/s3/m/da0e9f6a561252d380eb6ee2.png)
SELECT xh, xm,xb FROM xs ; WHERE xb= "女"
★ 条件查询
例: 查询XS表中籍贯为“上海”或“江苏扬
州” 的学生的学号、姓名和籍贯。 SELECT xs.xh, xm, jg FROM xs; WHERE jg in"上海" OR jg="江苏扬州" jg = ("上海","江苏扬州")
SELECT xh, xm, xdh FROM xs
★ 去除重复信息
DISTINCT选项: 去掉查询结果的重复行
例: 查询XS表中的系代号(xdh),相同 的只显示1次。
SELECT
distinct
xdh FROM xs
★ 输出字段表达式
例: 基于学生表(XS),查询学生的学号(xh)、 姓名(xm)和年龄(相关字段为csrq)
★模糊条件查询
• LIKE子句
“_”: 匹配任意一个西文或中文字符
匹配零个或多个字符
“%”:
★模糊条件查询
例: 查询JS表中D部门工作的教师情况。
(工号的第1位表示部门)
select * from js where js.gh like „D%‟
★模糊条件查询
例:查询XS表中姓名第二个字为”林”的学生信 息 SELECT * ; FROM xs ; WHERE xs.xm
SELECT xh, cj; FROM cj; WhERE kcdh= “01“; ORDER BY cj (2) ,xh(1) desc
二、联接查询
联接查询与单表查询的不同
– 查询的数据源为两个以上的表或视图 – 表之间需要建立联接条件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章查询、视图与sql5.1 创建查询1、下列关于查询说法不正确的是(d)。
a)查询是预先定义好的一个sql select b)查询是visual foxpro支持的一种数据库对象c)查询是从指定的表或视图中提取满足条件的记录,可将结果定向输出d)查询设计器具有局限性,仅限于从单个表或视图中提取记录2、查询的数据源可以来自(d)。
a)自由表 b)视图 c)数据库表 d)以上均可3、关于查询的叙述,正确的是(d)。
a)不能根据自由表建立查询 b)只能根据自由表建立查询c)只能根据数据库表建立查询 d)可以根据数据库表和自由表建立查询4、利用命令方式打开查询设计器,应在命令窗口中输入(d)。
a)open view b)open query c)create view d)create query5、在visual foxpro中,如果建立的查询是基于多个表,那么要求这些表之间(b)。
a)必须是独立的 b)必须有联系 c)不一定有联系 d)必须是自由表6、查询设计器中包含的选项卡依次为(a)。
a)字段、连接、筛选、排序依据、分组依据、杂项b)字段、连接、筛选、分组依据、排序依据、杂项c)字段、连接、筛选、排序依据、分组依据、更新条件、杂项d)字段、连接、筛选、分组依据、排序依据、杂项、更新条件7、建立查询前,首先会弹出一个“添加表或视图”的对话框,它相当于sql select语句中的(b)。
a)select b)from c)where d)into8、在查询设计器中,“字段”选项卡相当于sql select语句中的(a)。
a)select 子句部分 b)from 子句部分 c)where 子句部分 d)into 子句部分9、sql select语句中的group by子句对应于查询设计器中的(d)。
a)“筛选”选项卡 b)“连接”选项卡 c)“排序依据”选项卡 d)“分组依据”选项卡10、查询设计器中“排序依据”选项卡对应的sql短语是(b)。
a)into b)order by c)where d)group by11、在【查询设计器】中【筛选】选项卡对应的sql短语是(c)。
a)select b)for c)whered)join12、若要进行多表查询,可用于设置连接条件的选项卡是(b)。
a)“筛选”选项卡 b)“连接”选项卡 c)“排序依据”选项卡 d)“分组依据”选项卡13、在查询设计器的“杂项”选项卡中可以(d)。
14、运行查询文件cxi.qpr的命令是(c)。
a)create qurry cxi b)do query cxi c)do cxi.qpr d)do cxi15、在查询设计器环境中,“查询”菜单下的“查询去向”命令指定了查询结果的输出去向,输出去向不包括(c)。
a)临时表 b)表 c)文本文件 d)屏幕16、查询的默认去向是(b)。
a)数据表 b)浏览c)图形 d)报表17、在vfp系统中,使用【查询设计器】生成的查询文件中保存的是(a)。
a)查询的命令 b)与查询有关的基表 c)查询的结果 d)查询的条件5.2 创建视图1.视图不可以单独存在它必须依赖于(b)。
a)数据库表 b)数据库c)自由表d)查询2、使用视图之前,首先应该(c)。
a)新建一个数据库 b)新建一个数据库表 c)打开相关的数据库 d)打开相关的数据表3、下列关于视图的说法中,错误的是(b)。
a)视图可以从单个表或多个表中派生b)可以在磁盘中找到相应的视图文件c)视图可以作为查询的数据源d)利用视图可以暂时使数据从数据库中分离成为自由数据4、以下关于视图的描述正确的是(d)。
a)视图与数据表相同,用来存储数据 b)视图不能同数据库表进行连接操作c)在视图上不能进行更新操作 d)视图是从一个或多个数据库表中导出的虚拟表5、下列哪条命令执行后不能产生磁盘文件?(b)。
a)create table b)create view c)create query d)createdatabase6、视图设计器中包含的选项卡依次为(c)。
a)字段、连接、筛选、排序依据、分组依据、杂项b)字段、连接、筛选、分组依据、排序依据、杂项c)字段、连接、筛选、排序依据、分组依据、更新条件、杂项d)字段、连接、筛选、分组依据、排序依据、杂项、更新条件7、修改本地视图的命令是( a)。
a)modify view b)create view c)delete viewd)rename view8、视图设计器的选项卡与查询设计器中的选项卡几乎一样,只是视图设计器中的选项卡比查询设计器中的选项卡多一个(d)。
a)字段 b)排序依据 c)联接 d)更新条件9、下列关于查询和视图的说法,不正确的一项是(d)。
a)查询设计器中没有“更新条件”选项卡 b)视图设计器中不存在“查询去向”的选项c)视图结果存放在数据库中 d)查询和视图都可以在磁盘中找到相应的文件5.3 sql语言5.3.1 sql语言简介1、关于sql语言特点叙述错误的是(b)。
a)sql语言是一种一体化的语言 b)sql语言是一种高度过程化的语言c)sql语言非常简洁d)sql语言可以直接以命令方式交互使用,也可嵌入到程序中使用2、sql的数据操作语句不包括(d)。
a)insert b)update c)select d)change3、下列不属于sql数据操作功能的是(a)。
a)新建表 b)添加记录 c)修改记录 d)删除记录4、sql语言的核心是(a)。
a)数据查询 b)数据定义c)数据操纵d)数据控制5、select语句的作用是(b)。
a)选择工作区语句 b)数据查询 c)选择sql标准语句d)数据修改6、sql语言只能进行数据查询(x)7、在sql语句中实现数据检索功能的语句是(d)。
a)insert b)update c)alter d)select8、sql语言又称为(c)。
a)结构化定义语言b)结构化控制语言 c)结构化查询语言 d)结构化操纵语言9、下列选项中,不属于sql数据定义功能的是(a)。
a)select b)create c)alter d)drop 5.3.2 使用sql语句定义表1、建立表的命令是(a)。
a)create table b)create database c)alter table d)create2、sql命令:create table 学生表(姓名 c(20),性别 l,年级 c(4),专业班级 c(20))可以在当前数据库中创建一个名为“学生表”的数据表。
(√)3、用sql语句建立表时,将属性定义为主关键字,应使用短语(b)。
a)free b)primary c)checkd)unique4、在sql语句中,用于修改表结构的命令是(c)。
a)alter structure b)modify structure c)alter table d)modify table5、若要在student表中增加一个宽度为2的“性别”字段,应使用的sql命令为(a)。
a)alter table student add 性别 c(2) b)alter table student add 性别with c(2)c)insert table student add 性别 c(2) d)insert table student add 性别 with c(2)6、若要将student表中“姓名”字段的宽度由8改为10,应使用的sql命令为(b)。
a)alter table student 姓名 with c(10) b)alter table student alter 姓名 c(10)c)insert table student 姓名 with c(10) d)insert table student 姓名with c(10)7、在sql的数据定义功能中,下列命令格式可以用来修改表字段名的是(c)。
a)create table 数据表名 name…… b)alter table 数据表名 alter 字段名……c)alter table 数据表名 rename 字段名 to…… d)alter table 数据表名 alter 字段名 set default8、假设有student表,可以正确添加字段“平均分数”的命令是(a)。
a)alter table student add 平均分数f(6,2) b)alter dbf student add 平均分数f6,2c)change table student add 平均分数f(6,2) d)change table student insert 平均分数f6,29、若要删除student表中的“性别”字段,应使用的sql命令为(a)。
a)alter table student drop 性别 b)alter table student delete性别c)delete table student drop 性别 d)drop student alter erase 性别10、在sql语句中删除表的命令是(a) 。
a)drop table b)delete table c)erase tabled)delete dbf5.3.3 使用sql语句查询表数据1、sql基本查询语句的结构是(d)。
a)select…from …order by b)select…where …groupbyc)select…where …having d)select…from …where1)基本的select语句1、在sql的查询语句中,实现投影操作的短语为(a)。
a)select b)from c)where d)jionon2、从dab.dbf表中查询所有的姓名,应输入命令(b)a)select dab from 姓名 b)select 姓名 from dab c)select 姓名 d)select dab where 姓名2)唯一性查询1、sql的select语句中,使用distinct子句可以消除结果中的重复记录。
1、已知商品数据表goods的结构为(代码c10,品名c30,单价n5,供应商代码c10)。
以下哪条vfp-sql语句能够实现功能:查询全部不重复的“单价”。
(d)a)select 单价 top from goods b)select ″单价″ top from goodsc)select distinct ″单价″ from goods d)select distinct 单价 from goods3)带条件的查询1.sql查询时用where子句指出的是查询(c)。