VF第6章sql查询语言

上传人:灯火****19 文档编号:124912833 上传时间:2020-03-14 格式:PPT 页数:56 大小:390KB
返回 下载 相关 举报
VF第6章sql查询语言_第1页
第1页 / 共56页
VF第6章sql查询语言_第2页
第2页 / 共56页
VF第6章sql查询语言_第3页
第3页 / 共56页
VF第6章sql查询语言_第4页
第4页 / 共56页
VF第6章sql查询语言_第5页
第5页 / 共56页
点击查看更多>>
资源描述

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

1、第六章 SQL查询语言的使用 学习目标 1 了解SQL的基本知识 2 掌握SQL的数据查询操作 3 熟悉SQL的数据定义功能 4 熟悉SQL的数据操纵功能 6 1 SQL 基础知识 SQL Structured Query Language 结构化查 询语言 是一种介于关系代数与关系运算之间的语 言 SQL语言动词 SQL功能动词动词 数据查询查询select 数据定义义creat drop alter 数据操纵纵insert update delete 数据控制grant revoke 6 2 SQL 的数据定义功能 一 创建表 格式1 CREATE TABLE FREE 类型 长度 类型

2、长度 功能 创建一个以为表的名字 以指定 的字段属性定义数据表 说明 定义表的各个属性时 需要指明其数据 类型及长度 例1 创建新表stu2 其结构和学生表相同 creat table stu2 学号 C 8 姓名 C 8 性别 C 2 出生日期 D 入校总分 N 3 0 三好 生 L 特长 M 照片 G 格式2 CREATE TABLE FREE 类型 长度 类型 长度 NULL NOT NULL CHECK ERROR 提示信息 DEFAULT FREE 说明定义的表是自由表 NULL 允许一个字段为空值 如果一个或多个字 段允许包含空值 一个表最多可以定义254个字段 NOT NULL

3、不允许字段为空值 即字段必须取 一个具体的值 CHECK 定义字段级的有效性规则 是逻辑型表达式 ERROR 提示信息 定义字段的错误信息 当 字段中的数据违背了字段的完整性约束条件时 Visual FoxPro就会显示 提示信息 定义的出错 信息 DEFAULT 定义字段的默认值 的数据类型必须和字段类型一致 例2 在数据库xsgl DBC中 使用命令建立 jsj DBF 表 表结构包括 学号 C 8 姓名 C 6 笔试 N 5 1 上机 N 5 1 并设置学号 为主索引 笔试和上机的有效性规则是 0 如 果违反有效性规则 系统提示 成绩必须大 于0 creat database xsgl

4、DBC creat table jsj DBF 学号 C 8 primary key 姓名 C 6 笔试 N 5 1 check 笔试 0 error 成绩必须大于0 上机N 5 1 check 上机 0 error 成绩必须大于0 二 修改表的结构 1 增加字段 格式 ALTER TABLE ADD NULL NOT NULL CHECK ERROR 提示信息 PRIMARY KEY UNIQUE 功能 为指定的表的指定字段进行添加指定的 字段 例3 为xsdb表添加两个字段 平均分 字段N 5 1 和 总分 字段N 5 1 alter table xsdb dbf add 平均分 N 5

5、1 check 平均分 80 error 平均分要大于 80 alter table xsdb dbf add 总分N 5 1 注意 check 对非数据库表 dbc 不可用 2 修改字段 格式 ALTER TABLE ALTER 类 型 长度 NULL NOT NULL SET CHECK ERROR 提示信息 功能 为指定的表的指定字段进行修改指定的字 段 例4 在xsdb表中 修改两个字段 学号 字段C 10 和 英语 字段 N 6 1 alter table xsdb DBF alter 学号 C 10 alter table xsdb DBF alter 英语 N 6 1 例5 修改

6、或定义上机字段的有效性规则 alter table jsj dbf alter 上机 set check 上机 0 error 上机应该大于0 3 删除字段 ALTER TABLE Drop Drop 功能 删除指定的表中指定字段 例6 删除xsdb表中的平均分 奖学金和备注字段 alter table xsdb dbf drop 平均分 drop 奖学金 drop 备注 4 修改字段名 格式 alter table rename column to 功能 将表中的名字修改为 例7 将jsj表的笔试字段名改为笔试成绩 alter table jsj dbf rename column 笔试 t

7、o 笔试成绩 三 删除表 格式 DROP TABLE 功能 从数据库和磁盘上将表直接删除掉 例8 删除jsj表 drop table jsj dbf 四 视图的定义和删除 格式 CREATE VIEW AS SELECT SQL命令 功能 按照AS子句中的SELECT SQL命令提 出的查询要求 创建一个本地或远程的SQL视图 视图的名称由命令中指定 1 定义视图 例9 从 xsgl 数据库所含有的学生和选课 两个表中抽取学号 姓名 和课程号3个字段 组成名称为 myview 的SQL视图 open database xsgl creat view myview as select 学生 学

8、号 学生 姓名 选课 课程号 from 学生 dbf 选课 dbf where 学生 学号 选课 学号 2 查询视图 例10 查询 xsgl 数据库中的 myview 视 图 要求显示学生姓名和课程号 open database xsgl select 姓名 课程号 from myview 3 删除视图 格式 drop view 功能 删除数据库中指定的视图 例11 删除数据库 xsgl 中的 myview 视图 open database xsgl drop view myview 6 3 SQL 的数据查询功能 一 SELECT语句格式 SELECT ALL DISTINCT AS FRO

9、M 联接方式JOIN表名 ON联接条 件 WHERE ORDER BY ASC DESC GROUP BY HAVING分组筛选条件 INTO 功能 查询 二 投影查询 1 查询部分字段 在select语句后列出要查询的字段 之间用 逗号隔开 例1 从学生表中查询学号 姓名 性别和 出生日期 select 学号 姓名 性别 出生日期 from 学生 2 查询全部字段 可以在select后面列出全部字段 也可以用 星号 来表示全部字段 例2 查询教师表中的全部字段 select from 教师 select 教师号 姓名 性别 职称 工资 政 府津贴 from 教师 或者 3 取消重复记录 使用

10、distinct取消查询结果中的重复记录 例3 查询选课表中有成绩记录的学生学号 select distinct 学号 from 选课 4 查询经过计算的表达式 查询的列可以是字段 也可以是计算后的表达式 例4 从教师表中查询教师的姓名 工资和涨 50 以后的工资 select 姓名 工资 工资 1 5 from 教师 select 姓名 工资 工资 1 5 as 涨后工资 from 教师 或者 as用来修改查询结果中指定列的列名 其中 as可以省略 三 条件查询 使用where来指定查询条件 常用的比较运算 符如表 运算符含义义举举例 比较较大小入校总总分 600 not and or多重条

11、件入校总总分 600 and 性别别 男 between and not between and 确定范围围 入校总总分 between 500 and 600 运算符含义义举举例 in not in确定集合学号 in s0803001 s0803002 like not like字符匹配姓名 like 王 is null not is null 空值查询值查询学号 is null 1 简单条件查询 例5 从学生表中查询三好生的信息 select from 学生 where 三好生 t 例6 从学生中查询7月份所生的学生的学号 姓名 性别和出生日期 select 学号 姓名 性别 出生日期 f

12、rom 学生 where month 出生日期 7 例7 从学生表中查询入校总分大于600分的 女生或者入校总分小于600的男生的学号 姓名 和入校总分 select 学号 姓名 入校总分 from 学生 where 入校总分 600 and 性别 女 or 入校总分 1990 01 01 and 入校总分 600 or 入 校总分80 六 查询的排序 使用order by 可以按字段值排序 asc为升 序 desc为降序 默认为升序 1 单列排序 例21 查询学生表中的学生信息 并按照入 校总分的降序排列 select from 学生 order by 入校总分 desc 例22 统计选课表

13、中每门课程的平均成绩 并 按照平均分数的降序排列 select 课程号 avg 成绩 as 平均成绩 from 选课 group by 课程号 order by 平均成绩 desc select 课程号 avg 成绩 as 平均成绩 from 选课 group by 课程号 order by 2 desc 或者 2表示以查询结果的第2列作为排序依据 2 多列排序 例23 查询学生表中的学生信息 并按照入 校总分的降序排列 若入校总分相同 按照学号 的升序排列 select from 学生 order by 入校总分 desc 学号 七 内连接查询 连接条件 两表的公共字段值相等 常用书写 格式

14、是 表1 公共字段 表2 公共字段 例23 从授课表和课程表中 查询各个教师担 任的课程的课程号及课程名 select 授课 教师号 授课 课程号 课程 课程 名 from 授课 课程 where 授课 课程号 课程 课程号 select 授课 教师号 授课 课程号 课程 课程 名 from 授课 join 课程 on 授课 课程号 课程 课程号 或者 例23 学生表和选课表中查询学号为 s0803004和s0803005的学生的选课情况 显示其 学号 课程号和成绩 select 学生 学号 选课 课程号 选课 成绩 from 学生 选课 where 学生 学号 选课 学号 and 学生 学号

15、 s08030004 or 学生 学号 s08030005 select 学生 学号 选课 课程号 选课 成绩 from 学生 join 选课 on 学生 学号 选课 学号 where 学生 学号 s08030004 or 学生 学号 s08030005 或者 八 自连接查询 将同一个表与其自身进行连接 称为自连接 在自连接查询涉及的字段前面 用别名加以限 制 定义表别名的语法是 例24 查询入校总分大于谢小芳的学生姓名 入校总分 select 学生 姓名 学生 入校总分 from 学生 学生 b where 学生 入校总分 b 入校总分 and b 姓名 谢小芳 九 修改查询去向 1 int

16、o dbf into table 将查询结果保存到以命名的永久表 中 并打开该表作为当前文件 2 into cursor 将查询结果保存到以命名 的临时表中 该文件为只读表 当关闭查询相 关的表文件时 该临时文件会被自动删除 3 into file addtive 将查询结果保存到以命名的文本 文件中 扩展名为txt 如果有addtive 查询结 果追加到文本文件的尾部 否则覆盖该文本文件 4 into array 将查询结果保存到指定的数组中 一 般将存放查询结果的数组作为二维数组来使用 5 to printer 将查询结果输出到打印机 十 嵌套查询 1 带比较运算符的嵌套查询 例25 查询入校总分大于谢小芳的学生姓名 入校总分 1 查询谢小芳的入校总分 select 入校总分 from 学生 where 姓名 谢小芳 此结果的显示为 谢小芳入校总分为610 2 查询入校总分大于610分的学生姓名 入 校总分 select 姓名 入校总分 from 学生 where 入校总分 select 入校总分 from 学生 where 姓名 谢小芳 3 将610用第 1 步中的select语

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

当前位置:首页 > IT计算机/网络 > 其它相关文档

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