资源预览内容
第1页 / 共49页
第2页 / 共49页
第3页 / 共49页
第4页 / 共49页
第5页 / 共49页
第6页 / 共49页
第7页 / 共49页
第8页 / 共49页
第9页 / 共49页
第10页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
全国计算机等级考试Visual FoxPro 程序设计主讲老师:段克奇主讲老师:段克奇吭罩福抿挥亦花咎颊矾郝殆乖殃紫辫洒赠絮杜孺乃觉穿凌瞅椽盲窿监封予关系数据库标准语言SQL关系数据库标准语言SQL第第4 4章章 关系数据库标准语言关系数据库标准语言SQLSQL我们用Visual FoxPro中的命令可以实现对数据库中各种数据对象的操作,但与其相比,使用SQL会更加方便,而且在SQL中可以实现一些Visual FoxPro命令无法实现的功能。 筏裁烤为斑腺娘腰野蒜美泌瑰茧怎环拽晌裁暖裁湛瞥诗悬窘循因潘掂作帆关系数据库标准语言SQL关系数据库标准语言SQL第第4 4章章 关系数据库标准语言关系数据库标准语言SQLSQL SQLSQLSQLSQL概述概述概述概述4.14.1 查询功能查询功能查询功能查询功能4.24.2 操作功能操作功能操作功能操作功能4.34.3 定义功能定义功能定义功能定义功能4.44.4空墒访韵扔色堪堡渤佐劈筐鸽遮跪订奉闸拼运豺司面履扩请锥破蛾蛊澜鸿关系数据库标准语言SQL关系数据库标准语言SQL本章知识点在笔试考试中的分析明细表知识点考核概率分值分布考试形式难易程度简单查询与简单连接查询10010选择或填空或上机嵌套查询404选择或填空或上机排序查询60选择或填空或上机简单的计算查询与分组计算查询10026选择或填空或上机利用空值查询80选择或填空或上机别名与自连接查询、内外层互相关嵌套查询与使用量词和谓词查询404选择或填空或上机SELECT的几个特殊选项804选择或填空或上机插入数据804选择或填空或上机更新数据60选择或填空或上机删除数据40选择或填空或上机表的定义604选择或填空或上机表结构的修改10026选择或填空或上机墨裁肚是宽庞艳坡羚镜涟市留庙俏各诣展焰闸催录弃鸽聋股竭剂琳蘸责仰关系数据库标准语言SQL关系数据库标准语言SQL4.1 SQL概述 SQL是结构化查询语言(Structrued Query Language)缩写。查询是SQL语言的重要组成部分,此外,SQL还具有数据定义、数据操纵和数据控制功能。1. SQL语言的主要特点SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵和数据控制等方面的功能,它可以完成数据库活动中的全部工作;SQL语言是一种高度的非过程化的语言;SQL语言非常简洁,但功能强大;SQL语言可以直接以命令方式交互使用,也可以在程序设计语言中以程序方式使用。使用灵活。熔帅探拟辛撮四瘴蒜扣洪浅霖泻羞彻颜所涵抄劣叁旁失人堑麓曙蔽涩酶影关系数据库标准语言SQL关系数据库标准语言SQL4.1 SQL概述 SQL命令动词SQL功能命令数据查询SELECT数据定义CREATE、DROP、ALTER数据操作INSERT、UPDATE、DELETE数据控制GRANT、REVOKE 2. SQL命令动词SQL可以完成数据库操作要求的所有功能,包括数据查询、数据操作、数据定义和数据控制,是一种全能的数据库语言。SQL的功能和相对应的命令如下表所示。柜债恕刚雀枫蹲甚甄事掺羡羽雨您食墒吾妊抠梗堑柄仕彦峰怯陈步柜慈策关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能SQLSQL的核心是查询。的核心是查询。SQL的查询命令也称作SELECT命令,它的基本形式由SELECT-FROM-WHERE查询块组成,多个查询块可以嵌套执行。Visual FoxPro的SQL SELECT命令的语法格式如下 :SELECTALLDISTINCTTOP PERCENT.AS ,. AS FROM数据库名!INNERLEFTOUTERRIGHTOUTERFULLOUTERJOIN 数据库名!ON 连接条件INTO 目标文件TO FILE文件名ADDITIVETO PRINTERPROMPTTO SCREENWHERE AND 连接条件ANDOR 筛选条件GROUP BY ,分组表达式2HAVINGUNIONALLORDER BY ASCDESC驱蹭邀蝗晶触蛔曲妒臻西全酒染阂庙佐去御润玛拘昆蚕碳诉没余菌臼禁叼关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能SELECT查询命令的使用非常灵活,用它可以构造各种各样的查询。本节将通过大量的实例来介绍SELECT命令的使用。首先来了解一下常用的特殊运算符,如下表所示。运算符含义,!=,#不等于IS NULL为空值BETWEENAND表示在和之间,其中包含等于,即大于等于AND前面的数,小于等于AND后面的数IN在一组值的范围内LIKE字符串匹配运算符。在SQL中,字符串匹配运算符LIKE,可与通配符“%”和“_”一起使用。“%”表示与任意多个字符匹配;“_”表示与任意一个字符匹配。而在第二章用到的通配符“*”和“?”是用在一些命令中,在SQL中“*”和“?”不可以与LIKE短语一起使用。墙擦衷捕效箭篇司棘赛秧解柄束遣盼裳袁揍虐顾仪嘱春害炊景伴帜件耶受关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能本节将用到4个表进行查询 ,表结构及模拟数据如下:棚兢分劫鞘纹著铜亚室步堤寞顿涝哗系椰屁斥萄慎蕾校杀短铆聘挑膜厘筏关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 1.简单查询SELECT 职称 FROM 教师 SELECT DISTINCT 职称 FROM 教师 SELECT * FROM 教师 WHERE 职称!=”教授” SELECT * FROM 学生 WHERE year(出生日期)=1991 AND 性别=”男”SELECT * FROM 成绩 WHERE 成绩 IN(92,90,85)SELECT * FROM 成绩 WHERE 成绩 BETWEEN 75 AND 89SELECT * FROM 学生 WHERE LEFT(班级,4)=”会电”SELECT * FROM 课程 WHERE 课程名 LIKE “%网络%” 哆擎操畦禁险纱宾江侄款冗售肋匹箕稼舞唉证绕笛浸窍掩撕嘻士缠呈扶富关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 2.简单的连接查询 连接是关系的基本操作之一,连接查询是一种基于多个关系的查询。在连接查询中,当需要对多个表连接时,可以用SELECT 指定查询显示的字段;在WHERE子句中指定连接条件(连接的字段名前要加上表名做为前缀,表名和字段名之间用”.”隔开);在FROM子句中指定要连接的表。 查询出所有学生的学号、姓名、课程号和成绩。 SELECT 学生.学号,姓名,课程号,成绩; FROM 学生,成绩; WHERE 学生.学号=成绩.学号 注意:此例中要查询的“学号”字段存在于“学生”和“成绩”两个表中,这时必须用表名作前缀指明字段是哪个表里的字段,一般情况下我们要选择字段值唯一的那个表里的字段(如:学生.学号)。熟工良曰恩赛拴竭摈样荆姑稚抬紫砚否岩握痹似仇洁生乔拦彻蛰求并秋嫁关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 3.嵌套查询嵌套查询是一类基于多个表的查询,查询的结果是出自一个表中的字段,但是查询的条件要涉及到多个表。嵌套查询一般分为两层,内层和外层,被括号括起来的为内层查询,先进行内层查询,在内层查询的基础上再进行外层查询。比如: 查询出没有考试成绩的学生的学号和姓名。SELECT 学生.学号,姓名;FROM 学生;WHERE 学号 NOT IN(SELECT 学号 FROM 成绩)谗巷鬼蕴踊国漳奔乡弥簇渗沾阵茫烛词吻屿剃您侩包坛殃革炬葡火预遥逐关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 4.排序查询ORDER BY 字段名1ASC|DESC,字段名2ASC|DESC其中ASC表示升序,可省略;DESC表示降序。比如: 查询学生的学号、姓名和成绩字段,并按成绩升序排列,如果成绩相同再按学号降序排列。SELECT 学生.学号,姓名,成绩;FROM 学生,成绩;WHERE 学生.学号=成绩.学号 ORDER BY 成绩 ASC,学生.学号 DESC注意:此例中的ORDER BY短语可写成ORDER BY 3 ,1 DESC。ORDER BY 是对最终的查询结果进行排序,不可以在子查询中使用该短语。寄椅融魁扁伯奉扎苗便鞋拿踊触舆酝籽密炊欠糠线是煌整努赘背游抢昧衬关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能SQL计算函数函数名功能AVG计算一个数据列的平均值COUNT统计表中元组的个数(即统计输出的行数)MAX计算指定列的最大值MIN 计算指定列的最小值SUM计算指定列中的数值总和 5.计算查询SQL不仅具有一般的查询能力,而且还有计算机方式的查询,例如查询职工的平均工资、最高或最低工资等。用于计算查询的函数如下表所示。县掇净压峨贾斤讼宗殆措娩幕屋筛亭度缨管崔祷殖胀窑烯金巩糊词锭牟撒关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 5.计算查询 比如:SELECT COUNT(DISTINCT 班级) FROM 学生SELECT MIN(成绩) as 最低分; &AS短语可指定查询结果中显示的新属性名。FROM 成绩;WHERE 学生.学号=成绩.学号SELECT SUM(成绩) AS 总分; FROM 成绩;WHERE 课程号=”C4”不丽舟沽盘酗押悉厘以贼小饿朱氓碟师颠秉嘲隐艰饺叼尸孰涧庄氯庭适椅关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能6.分组查询 在实际应用中,除了简单的计算查询外,还经常用到GROUP BY 子句进行分组查询。GROUP BY子句一般跟在WHERE子句之后,没有WHERE子句时,跟在FROM子句之后。另外,还可以根据多个属性进行分组(如:先按年分组,再按月分组)。 例如:若要统计一个系中各班的学生人数,就要先以班为单位进行分组,然后再统计每班的人数。 如果想要统计这个系中班级人数在35人以上的班级有哪些,还要用到HAVING子句来限制分组后的条件必须是35人以上的班级。 注意:HAVING子句总是跟在GROUP BY子句之后,而不可以单独使用。HAVING子句和WHERE子句并不矛盾,在查询中是先用WHERE子句限定元组,然后进行分组,最后再用HAVING子句限定分组。 一般情况下,分组与某些具有累计功能的函数联合使用,如AVG( )、SUM( )、COUNT( )。 今蛾惮浊舍琐匹舒维睹坷蓉昌奋工们叼廖姑逃刀遁鲸壬牺辉恍楚棺摊章纲关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能6.分组查询查询平均成绩在80以上(含80)的课程名及平均分。SELECT 课程名,AVG(成绩) AS 平均成绩;FROM 课程,成绩;WHERE 课程.课程号=成绩.课程号;GROUP BY 课程.课程号 HAVING 平均成绩=80坊箱炔闷累汞符更胯佣晰帝蜕灌烧顷霸漏惑兄聂颠葫谢剧伪慢曳栋妆诸勿关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能7.利用空值查询 SELECT 课程号,课程名 FROM 课程 WHERE 教师号 IS NULLSELECT 课程号,课程名 FROM 课程 WHERE 教师号 IS NOT NULL八递沫诵站万刑届鳃减先激说窄攒柔到深斜蔚埠赴糊玲斜啤民操氮占赣染关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能8.别名与自连接查询1)别名在连接操作中,经常需要使用表名作前缀,有时这样显得很麻烦,优其表名很长时,就显得更麻烦,因此,SQL允许在FROM短语中为表名定义别名,格式为:例4.16 利用别名查询学号、姓名、课程号及成绩大于80的学生信息。SELECT W.学号,W.姓名,P.课程号,P.成绩;FROM 学生 W,成绩 P; & 为学生表定义别名“W”,为成绩表定义别名“P”。WHERE W.学号=P.学号 AND 成绩80摔托幸八东醒府香细煎弛坊攻算刮耙述碌壶壹丢雅币傀挤柠阁供沂宏鸭贯关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能举例: 根据雇员表列出经理及其所管理的职员清单。SELECT s.雇员姓名 AS 领导, “管理雇员” AS 管理, e.雇员姓名 AS 雇员;FROM 雇员 s, 雇员 e;WHERE s.雇员号=e.经理8.别名与自连接查询2)自连接查询 SQL不仅可以对多个表实行连接操作,也可以将同一表与其自身进行连接,这种连接就称为自连接。例如:有这样一个雇员表,如下图所示。 醇壹酥榴郡泣戊逛梳傀抓茧拭卷狮馏耶绘霜兼陷遣己讥赣弹苑苔抓煽港方关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 9.内外层互相关嵌套查询 前面讲过的嵌套查询都是外层查询依赖于内层查询的结果,而内层查询与外层查询无关。事实上,有时也需要内、外层相关的查询,这时内层查询的条件需要外层查询提供值,而外层查询的条件需要内层查询的结果。 在成绩表中每个学生有一门或多门课程的成绩,列出每个同学得分最高的那门课程的成绩,查询字段包括学号、课程号和成绩3个字段。 SELECT a.学号,a.课程号,a.成绩; FROM 成绩 a WHERE 成绩=(SELECT MAX(成绩) FROM 成绩 b ; WHERE a.学号=b.学号) ; ORDER BY 学号轻耻南闭枯防卢门本痊旨周炼污慢疟禄擒夺陪闹喂蹦球品乎哀浇烫坊颓称关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 10.使用量词和谓词的查询 与嵌套查询或子查询有关的运算符,除了IN和NOT IN运算符外,还有两类与子查询有关的运算符,它们有以下两种格式: 格式1:ANY|ALL|SOME(子查询) ANY(任意的)和SOME(一些)表示只要子查询中存在符合条件的行,结果就成立;而ALL(所有的)只有子查询中的所有的行都符合条件,结果才成立。 格式2:NOTEXISTS(子查询)EXISTS是谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。其本身并没有进行任何运算或比较,只用来返回子查询结果。 矗硬酿该析扰拟铅甚驳誊杜战糟酶蜘妹盯闷藉蚌旦龙息噎娠掘宋蚁沟昭已关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 10.使用量词和谓词的查询 举例: 查询与课程号为C4的任何一个成绩相等或高于的学生记录 SELECT * FROM 成绩; WHERE 成绩=ANY(SELECT 成绩 FROM 成绩 WHERE 课程号=C4) 以上的查询等价于: SELECT * FROM 成绩; WHERE 成绩=(SELECT MIN(成绩) FROM 成绩 WHERE 课程号=C4) 查询比课程号为C4的所有成绩都高的学生记录 SELECT * FROM 成绩; WHERE 成绩=ALL(SELECT 成绩 FROM 成绩 WHERE 课程号=C4) 以上查询等价于: SELECT * FROM 成绩; WHERE 成绩=(SELECT MAX(成绩) FROM 成绩 WHERE 课程号=C4) 找辕谱聘评胳魔正孽崖拳挖蔬二惮闲壁调糙禄婆唬属诅坪耍恃宇霞敏林词关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 10.使用量词和谓词的查询 举例: 查询至少有一门考试成绩的学生信息 SELECT * FROM 学生;WHERE EXISTS(SELECT * FROM 成绩 WHERE 学生.学号=成绩.学号)以上的查询语名等价于:SELECT * FROM 学生;WHERE 学号 IN(SELECT 学号 FROM 成绩) 查询出没有考试成绩的学生信息 SELECT * FROM 学生;WHERE NOT EXISTS(SELECT * FROM 成绩 WHERE 学生.学号=成绩.学号)以上的查询语句等价于:SELECT * FROM 学生 WHERE 学号 NOT IN(SELECT 学号 FROM 成绩)赔昔寓睁琳戏雁贞嗣馏篱蜒炭佃底隐伙命穿矣诫谦瓦吱姐乏刀伴腋焚影像关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 11.超连接查询 前面我们进行的查询是把满足连接条件的记录包含到运算结果中,超连接首先保证一个表中满足条件的元组都在结果表中,然后将满足连接条件的元组与另一个表的元组进行连接,不满足连接条件的则应将来自另一个表的属性值置为空值。 在一般的SQL中,超连接运算符是“*=”(左连接)和“=*”(右连接)。超连接查询有四种连接方式,其基本格式如下: SELECT FROM 左表 INNERLEFTRIGHTFULL JOIN 右表 ON 连接条件 WHERE 其它条件 其中:INNER JOIN等价于 JOIN,为普通连接(也称为内部连接);LEFT JOIN为左连接;RIGHT JOIN为右连接;FULL JOIN称为全连接; 穗帧耕寿悯跑蜂夕睛廊侩姚袖打院时板砾帖夷必品伺黔卢癸吐迈挣废鸯硕关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 11.超连接查询1)普通连接(内部连接):普通连接只有满足连接条件的记录才出现在查询结果中 SELECT 教师.*,课程.* FROM 教师 INNER JOIN 课程 ON 教师.教师号=课程.教师号2)左连接:左连接除满足连接条件的记录出现在查询结果中外,第一个表中不满足连接条件的记录也出现在查询结果中,不满足连接条件的记录的对应部分为.NULL. SELECT 教师.*,课程.* FROM 教师 LEFT JOIN 课程 ON 教师.教师号=课程.教师号孤仁硷九筏侩观旧谍侩鳖赁貉办温欧粤翱萎衍勿射粥示喷掘栗非整冯言瑞关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能11.超连接查询3)右连接:除满足连接条件的记录出现在查询结果中外,第二个表中不满足连接条件的记录也出现在查询结果中,不满足连接条件的记录的对应部分为.NULL. SELECT 教师.*,课程.* FROM 教师 RIGHT JOIN 课程 ON 教师.教师号=课程.教师号4)全连接 :除满足连接条件的记录出现在查询结果中外,两个表中不满足连接条件的记录也出现在查询结果中,即两个表中的内容都会显示在结果中,不满足连接条件的记录的对应部分为.NULL. SELECT 教师.*,课程.* FROM 教师 FULL JOIN 课程 ON 教师.教师号=课程.教师号八若菊蟹鞠单捂晃傻岔吼眷苯锭涕龙电樱乔邓蚤啊沟红换屿蛋拱愁学跨内关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能SELECT * FROM 计算机系教师 WHERE 职称=教授 OR 职称=副教授;UNION;SELECT * FROM 经管系教师 WHERE 职称=教授 OR 职称=副教授 12.集合的并运算SQL支持集合的并(UNION)运算,可以将具有相同查询字段个数且对应字段值域相同的SQL查询语句用UNION短语连接起来,合并成一个查询结果输出。比如:将计算机系教师表和经管系教师表(如下图所示)中职称为教授和副教授的教师信息合并成一个表。漠郁趣数佃氨蜂俗雁海总选地宽证械闺割详讼撑梯英傅嘿宅毁绎俭停神矮关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 13. Visual FoxPro中SQL SELECT的几个特殊选项 1)只显示前几项记录SELECT TOP 数字 PERCENT 如:TOP 3 表示前3项记录; TOP 30 PERCENT 表示前30%的记录。注意:TOP短语必须与ORDER BY短语同时使用才有效 比如SELECT TOP 2 *;FROM BOOKS;ORDER BY 价格 DESC &查询价格高的前几项的记录要用升序 蛛涨尿夕拌召詹船颈琶赤哲漳啮编逊沮拴岔唐絮匆矢迎乌释嫁盎揖颅倔袄关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能13. Visual FoxPro中SQL SELECT的几个特殊选项 2)将查询结果存放到数组 在SQL查询语句的尾部添加INTO ARRAY 可以将查询的结果放入指定的数组中。比如: 将成绩表中课程号为“C2”的信息存储到数组a中。SELECT * FROM 成绩 WHERE 课程号=C2 INTO ARRAY a3)将查询结果存放到临时表中在SQL查询语句的尾部添加INTO CURSOR 可以将查询的结果放入指定的临时表中。此操作的通常是将一个复杂的查询分解,临时表通常不是最终结果,可以接下来对临时表操作得到最终结果。生成的临时表是当前被打开的并且是只读的,关闭该文件时将自动删除。比如: 将教师表的所有记录存储到临时表tmp中。SELECT * FROM 教师表 INTO CURSOR tmp 遭估茫舱庐瞥魄粥媚瞪澳浙乔圭阶冰雨赛罢涉篇鞍搭烫诫数妥加我通辖隔关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 13. Visual FoxPro中SQL SELECT的几个特殊选项 4)将查询结果存放到永久表中 在SQL查询语句的尾部添加INTO DBF|TABLE 可以将查询的结果放入新生成的指定表中。 比如: 将教师表的所有记录存储到表teacher中。 SELECT * FROM 教师表; INTO TABLE teacher &INTO TABLE 和INTO DBF是等价的弛缄晓树颓吟捐乳碎涝咋妇搂肺性展荧蚕涅柿垫咕唐盯渣浚余证傀煎媳吵关系数据库标准语言SQL关系数据库标准语言SQL4.2 查询功能 13. Visual FoxPro中SQL SELECT的几个特殊选项 5)将查询结果存放到文本文件中在SQL查询语句的尾部添加TO FILE ADDITIVE可以将查询的结果放入新生成的指定.TXT文件中。比如:将教师表的所有记录存储到文本文件tmp中SELECT * FROM 教师表 TO tmp 如果使用ADDITIVE短语则结果将追加在原文件的尾部,否则将覆盖原有文件。如:SELECT * FROM 教师表 TO tmp ADDITIVE 6)将查询结果存放到文本文件中 在SQL查询语句的尾部添加TO PRINTER PROMPT可以将查询的结果直接输出到打印机。如果使用了PROMPT选项,在开始打印之前会打开打印机设置对话框。论惫双鸿处啦絮颧圆岂恩敬钉骋渗批丧穴仅届疼燥洪感糠汹确痹猴崔板当关系数据库标准语言SQL关系数据库标准语言SQL4.3 操作功能 1. 插入数据 插入数据的操作有两种格式,第一种是标准格式,第二种格式是特殊格式。 第一种格式:INSERT INTO (字段名1,字段名2,) VALUES(字段值1,字段值2,) 比如: INSERT INTO 成绩(学号,课程号) VALUES(08,C4) INSERT INTO 成绩 VALUES(07,C4,87) 第二种格式:INSERT INTO 表名 FROM ARRAY 数组名 | FROM MEMVAR 说明:FROM MEMVAR说明根据同名的内存变量来插入记录值,如果同名的变量不存在,那么相应的字段为默认值或空值,比如: USE 成绩 SELECT * FROM 成绩 INTO ARRAY cj &将成绩表中的记录存储到数组cj中 COPY STRUCTURE TO 成绩2 &拷贝成绩表的结构到成绩2 INSERT INTO 成绩2 FROM ARRAY cj &从数组cj插入记录到成绩2中耐抨币獭议涤耙峙胸蹬带角敖醒朽晓面疥甘吗念勿诚沛鱼焉晴仓诞午檀繁关系数据库标准语言SQL关系数据库标准语言SQL4.3 操作功能 . 更新数据 格式:UPDATE 表名 SET 字段名1=表达式1 ,字段名2=表达式2 WHERE 条件 说明:一般使用WHERE子句指定更新的条件,并且一次可以更新多个字段;如果不使用WHERE子句,则更新全部记录。 比如: 将成绩表中成绩字段值为80以下的全部加5。 UPDATE 成绩 SET 成绩=成绩+5 WHERE 成绩80 桩焙繁赌导蛹废家惟嫂伊犁淑扫算到茸寅潞陪潘技议枯逊棕仟驾图仁浓倘关系数据库标准语言SQL关系数据库标准语言SQL4.3 操作功能 3.删除数据 删除数据的命令格式为: DELETE FROM 表名 WHERE 条件 说明:改命令是逻辑删除指定表中满足条件的记录,如果要物理删除记录需要继续使用PACK命令。WHERE指定被删除的记录所满足的条件,如果不使用WHERE子句,则删除该表中的全部记录。 比如: 删除成绩表中成绩小于等于75的记录。 DELETE FROM 成绩 WHERE 成绩=75吨守陕参坯徘爆郁尽菏萄萄捍腐湿诽腕导挫巴缎侈器熔楞骋押塑旬饺恩惺关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能.表的定义CREATE TABLE|DBF NAME FREE(,)NULL|NOT NULLCHECK ERROR DEFAULT PRIMARY KEY|UNIQUEREFERENCES TAG NOCPTRANS,PRIMARY KEY TAG |,UNIQUE TAG ,FOREIGN KEY TAG NODUPREFERENCES TAG ,CHECKERROR)|FROM ARRAY 通拾自险祖憾璃掷蓉望稗赏废聋仑几溯酝菏娠砸钮姿逢服姓佛扩敛滋殿称关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能 .表的定义 说明: TABLE和DBF等价,都是建立表文件; NAME指定长表名; FREE建立自由表; NULL或NOT NULL说明字段允许或不允许为空值; CHECK定义域完整性,由逻辑表达式指定表的合法值; ERROR显示由字符型文本信息指定的错误信息; DEFAULT定义默认值; UNIQUE建立候选索引(注意不是惟一索引)。 可以看出,利用SQL命令可完成表设计器所能完成的所有功能。 注意:如果建立自由表(当前没有打开的数据库或使用了FREE),则很多选项在命令中不能使用,如NAME、CHECK、DEFAULT、FOREIGN KEY、PRIMARY KEY和REFERENCES等。垄烹滴朝嘱毕簇勉歼咸舞拆革抱庐霜镰驱掌赦赃群绪竹袒吠避摄这凭垄隧关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能.表的定义举例:用命令建立数据库xsgl。CREATE DATABASE xsgl 用命令建立“xs”表。CREATE TABLE xs(学号 C(3) PRIMARY KEY NOT NULL,姓名 C(6),性别 C(2) CHECK 性别$男女 ERROR 性别必须是男或女 DEFAULT 女)用命令建立“kc”表。CREATE TABLE kc(课程号 C(2) PRIMARY KEY,课程名 C(12),教师号 C(3)用命令建立“cj”表,并建立与“xs”表和“kc”表间的永联系。CREATE TABLE cj(学号 C(2),课程号 C(2),成绩 N(3) CHECK 成绩100 ERROR 成绩要小于100 DEFAULT 0,;FOREIGN KEY 学号 TAG 学号 REFERENCE xs,;FOREIGN KEY 课程号 TAG 课程号 REFERENCE kc)给颤跋熙报弄鹅奔野静侄察皿备芽滚蛛豺隐业幕聋秤飘驶录市妖夜铆卵炽关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能 2.表的删除 删除表的命令格式为: DROP TABLE 比如: DROP TABLE kcTable 注意:DROP TABLE直接在磁盘上删除表名所对应的.dbf文件,若表是数据库中的表,并且相应的数据库是当前数据库,则从数据库中删除了表;否则,虽然从磁盘上删除了.dbf文件,但是记录在数据库文件中的信息却没有删除,此后会出现错误提示。所以,如果用户相要删除数据库中的表时,最好应使数据库是当前打开的数据库,在数据库中进行操作 。衍绰桶硫籍枢溪帖锦窃淫禾吱字匿牺告此莱啃炎盅寻烽叛姓找氧窟擂额举关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能3.表结构的修改1)格式1向表中添加新的字段和新的索引,其命令格式为:ALTER TABLE ADDCOLUMN,)NULL|NOT NULLCHECK ERROR DEFAULT ADD PRIMARY KEY TAG ADD UNIQUE TAG 酷陇赘怒抹袒宙申佣猖猿侧缘茬湘舰鼓疮睡虾粥柴性蛰臂矽温顺呻甸鸽借关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能3.表结构的修改1)格式1说明:ALTER TABLE 修改指定的表;ADD COLUMN向表中添加新的字段;ADD PRIMARY KEY TAG 向表中添加主索引;ADD UNIQUE TAG 向表中添加候选索引;NULL|NOT NULL指定字段可以为空或不能为空。格式1的应用举例。为xs表增加一个“身份证”字段。ALTER TABLE xs ADD 身份证 C(15) 为身份证字段添加候选索引。ALTER TABLE xs ADD UNIQUE 身份证 TAG sfz似雅棘帧牢驼思筷做籽嫌絮克桓汝滋疮腰颠唆霹诀缝雇听叮流袭萨最雁垒关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能3.表结构的修改2)格式2修改表的结构和字段名,其命令格式为:ALTER TABLE ALTER COLUMN NULL|NOT NULLSET DEFAULT SET CHECK ERROR RENAME COLUMN TO 歪藏韧虫岭案党衣簧贪制候锁孽阿膊技串美罢扭柠缴采臻瞄脖狭敛俞殖倘关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能3.表结构的修改2)格式2说明:ALTERCOLUMN指出要修改列的字段名;SET DEFAULT 重新设置默认值;SET CHECK ERROR 重新设置字段的合法值及错误信息;RENAME COLUMN TO 修改字段名,指定要修改的字段名,指定修改后的字段名。格式2应用举例。修改身份证的宽度为18。ALTER TABLE xs ALTER 身份证 C(18)将xs表中的“姓名”字段改为“学生姓名”ALTER TABLE xs RENAME COLUMN 姓名 TO 学生姓名重新定义cj表中成绩字段的有效性规则为“成绩=100”,错误提示信息修改为“成绩要小于等于100” ALTER TABLE cj ALTER 成绩 SET CHECK 成绩=100 ERROR 成绩要小于等于100酶掠寥士憨梆敷藤胳袍牲北锯境暑岔陪六解奔碱温曾咒蛊嗓蛾靶富剁碧适关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能3.表结构的修改3)格式3删除表中的字段、索引及有效性规则、错误提示信息及默认值,其命令格式:ALTER TABLE DROP COLUMN DROP PRIMARY KEY TAG DROP UNIQUE TAG DROP CHECK说明:DROP COLUMN 删除指定的字段;DROP PRIMARY KEY 删除主索引;DROP UNIQUE TAG 删除候选索引;DROP CHECK 删除有效性规则。田燥充淫辣渗蛹殴营指沤串蔫探晾瓤绩剐牡降栽觉篷颅受旭雇尤剃嚼爸莽关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能格式3应用举例。删除xs表中为身份证字段建立的候选索引ALTER TABLE xs DROP UNIQUE TAG sfz删除xs表中的身份证号字段。ALTER TABLE xs DROP 身份证删除cj表中成绩字段的有效性规则。ALTER TABLE cj ALTER 成绩 DROP CHECK上述3种对表进行修改的命令,其核心短语分别为:ADD、ALTER、DROP 0背纪凌貉瞎检羔菏娃趾发淑锁挺藕柜肪笺认惶淡忽么佳颁捌哪孩耪窝安淄关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能 4.视图的定义 在Visual FoxPro中视图是一个定制的虚拟表,可以是本地的、远程的或带参数的。视图可以引用一个或多个表,或者引用其他视图。视图是可更新的,它可引用远程表。 在关系数据库中,视图也称作窗口,是操作表的窗口,可以把它看作是从表中派生出来的虚表。它依赖于表,不能独立存在。数据库表或自由表都可以建立视图,在建立视图时必须先打开一个数据库,因为视图不是以独立文件形式保存的,而是在数据库设计器中存放的。 视图是根据表定义派生出来的,所以在涉及视图的时候,常把表称作基本表。视图是根据对表的查询定义的,命令格式是:CREATE VIEW 视图名 AS SELECT查询语句凭软保无捂烬斩容甲身喷仇奉襄誉缚奔蕉馆驰盈承调孟夺鄙蔗蓬归鹊梗伍关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能 4.视图的定义1) 视图的导出 从单个表导出视图比如 从学生表导出视图。CREATE VIEW xs_v AS SELECT * FROM 学生从多个表导出视图。比如 从学生表和成绩表中导出视图。CREATE VIEW xscj_v AS;SELECT 学生.学号,姓名,成绩 FROM 学生,成绩;WHERE 学生.学号=成绩.学号蘑蛰幽擂芒漳首毯郊拼蛛棵托巴绑狂靠转纂庆荒睁桶遁甭饮轮绣戎悠均少关系数据库标准语言SQL关系数据库标准语言SQL4.4 定义功能 4.视图的定义 2) 视图的删除 视图由于是从表派生而来的,所以不存在修改结构的问题,但是视图可以删除,其命令格式为:DROP VIEW 比如: 删除视图xscj_v。DROP VIEW xscj_v 3)关于视图的说明 在关系数据库中,视图始终不曾真正含有数据,它总是原来表的一个窗口。所以,虽然视图可以像表一样进行各种查询,但是插入、更新和删除操作在视图上却有一定限制。在一般情况下,当一个视图是由单个表导出时可以进行插入和更新操作,但不能进行删除操作;当视图是从多个表导出时,插入、更新手和删除操作都不允许进行。这种限制是很有必要的,它可以避免一些潜在问题的发生。扫拙勤恍髓肇盐茸铰肋叭宽墓萌粘晾屠贿讹采裁恒纱迎站并狞堑瞬锌凋葡关系数据库标准语言SQL关系数据库标准语言SQL本章小结 本章比较全面地介绍了关系数据库标准语言SQL,包括数据的查询、定义、操纵等功能,重要的知识点主要集中在简单计算查询、几个特殊运算符、分组与计算查询、插入和更新等。大家应对此部分内容重点学习,并多加练习。截倚耕老箕禽夺毒柯萝登需挺铸卞汲需茎久政灾桃菌病跋臻亏诀为委灼轮关系数据库标准语言SQL关系数据库标准语言SQL
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号