《vfpSQL基础》PPT课件.ppt
《《vfpSQL基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《vfpSQL基础》PPT课件.ppt(138页珍藏版)》请在三一办公上搜索。
1、结构化查询语言SQL基础,一个各种数据库广泛使用的语言,SQL的发展,原型名为“系统 R”,IBM 圣荷西实验室完成(1970年代),经过IBM内部及其他的许多实用性及效率测试,其结果相当令人满意,1986年10月SQL标准于美国公布,1987年6月ISO组织定为SQL国际标准,SQL语言普遍使用于关系数据库的关联操作中,1990年,我国颁布了信息处理系统数据库语言SQL,将其定为中国国家标准,SQL 简介,SQL语言功能强,能进行数据定义、数据查询、数据操纵和数据控制等功能,是一种一体化语言SQL是一种高度非过程化语言,用户只需告诉系统“做什么”,无须描述“怎么做”可以用直接采用交互方式使用
2、,也可以嵌入程序设计语言在程序方式下使用SQL的语法简单,非常口语化、既易学又易懂(警惕!),SQL的组成,SQL功能强大,但概括起来,可以分成以下几组:数据定义语言DDL(Data Definition Language):用于定义数据的结构,比如定义表结构、修改表结构、删除表;数据操作语言DML(Data Manipulation Language):用于数据的增、删、改和查询;数据控制语言DCL(Data Control Language):用于定义数据库用户的权限。,VFP中SQL的功能和特点,支持数据定义和数据操作功能,但是不支持数据控制功能只支持单层嵌套查询(不支持多层嵌套查询)S
3、QL命令既可以在命令窗口直接执行,也在程序中执行,学习的目标熟练掌握SQL的语法和使用技巧,特别是查询功能,实现用SQL语言来操作数据库;学习方法熟练记忆各种命令及其选项的功能多做练习,锻炼用SQL语言的思维来表达问题,目 录,5.2 数据定义功能,5.4 查询功能,5.3 数据操作功能,习 题 课,5.2 数据定义功能,create(定义表结构),drop(删除表),alter(修改表结构),本节的难点:定义表结构、修改表结构(命令繁多,模样相似),回目录,【语法格式】Create table|dbf free(,)null|not nullcheck errordefault primar
4、y key|unique,(,)null|not nullcheck errordefault,),create(定义表结构)语法格式,定义字段名,类型、宽度、小数位数,是否允许为null,定义字段1的域完整性,将字段1定义为主索引或候选索引,eg,与表设计器完成的功能几乎一致,【功能】创建自由表或数据库表数据库没有打开不带FREE短语,创建的是自由表在数据表名字前面加数据库名,也可以创建数据库表 数据库打开如果是自由表,则必须带短语FREE不带FREE,创建的是数据库表如果是数据库表,则表中还可以建立主索引、定义域完整性、建立与其他表的连接,create(定义表结构)功能,思考:SQL中的数
5、据定义语句与表设计器的区别表设计器:以窗口界面显示定义数据表的过程,交互式,直观,使用方便,但是不能在程序中使用;SQL语句:是命令方式,可以在程序中直接定义表的结构;还可以建立永久关系;与数据库的标准定义接轨,例.建立自由表“教师信息”其结构如下,create table 教师信息 free(职工号 C(6)unique,;姓名 C(8),性别 C(2),出生日期 D,职称 C(6),create(定义表结构)举例,例.建立学生成绩管理数据库,然后利用SQL命令在该数据库中建立学生信息表、课程信息表和成绩信息表,学生信息表,create(定义表结构)eg,步骤1:建立学生成绩管理数据库 cr
6、eat database 学生成绩管理步骤2:建立学生信息表create table 学生信息(;学号 C(8)primary key,;姓名 C(8),;性别 C(2)check 性别=男“or 性别=女;error 只能输入“男”或“女”default 男,;出生日期 D,;入学成绩 N(5,1),;四级通过否 L,;计算机等级考试 C(4)null default null,;简历 M),返回5.2,课程信息,成绩信息,两者的组合为主关键字,create(定义表结构)eg,步骤3:建立课程信息表 create table 课程信息(课程号 C(2)primary key,;课程名 C(1
7、0),;学时 N(3,0)check 学时0 and 学时=108;error“学时”在0108之间)步骤4:建立成绩信息表create table 成绩信息(;学号 C(8),课程号 C(2),成绩 N(5,1),;primary key 学号+课程号 tag xhkch,;foreign key 学号 tag 学号 references 学生信息,;foreign key 课程号 tag 课程号 references 课程信息;),create(定义表结构)eg,建立学号+课程号的主索引,建立学号的普通索引,并且和学生信息表建立永久关系,修改表结构,【语法格式1】,alter table
8、add|alter(,)null|not nullcheck error default,【友情提示】1.只能一个一个字段地修改 2.命令中不可缺少被修改或增加的字段名及类型,alter(修改表结构)语法格式,该命令不能修改字段名,不能删除字段,不能删除已经定义好的有效性规则,例1.向表 customer 中添加字段 fax,且允许字段为null。alter table customer add fax c(20)null例2.为课程信息表添加一个字段:学时(N,2),范围在06之间,并将课程号的长度修改为3位;alter table 课程信息 add 学时 N(2)check 学时0;and
9、 学时=6 error“学时”必须在06之间(注意:表中的学分最好为空)alter table 课程信息 alter 课程号 C(3)例3.将学生信息表中的四级通过否设置默认值.F.alter table 学生信息 alter 四级通过否 L default.F.,alter(修改表结构)eg,修改表结构,【语法格式2】,ALTER TABLE ALTER COLUMN NULL|NOT NULLSET DEFAULT SET CHECK ERROR DROP DEFAULTDROP CHECK【功能2】能删除默认值和有效规则,但不能删字段名;修改功能同格式1,但不写类型与宽度,由set短语代
10、替。,举例,例1:给zc.dbf的性别字段补加有效规则:alter table zc alter 性别 c(2)check 性别$(男女)alter table zc alter 性别 set check 性别$(男女)注:第1条命令是ALTER的格式1,类型与宽度必写;第2条命令是ALTER的格式2;类型与宽度不写,要加SET短语。例2:给zc.dbf的职工号字段补加主索引:alter table zc alter 职工号 c(2)primary key例3:删除zc.dbf的性别字段 的有效规则:alter table zc alter 性别 drop check,ALTER命令格式1与格
11、式2示意图,ALTER table 表名,ADD 字段名的各属性,ALTER 字段名 类型(宽度),ALTER 字段名 set,ALTER 字段名 drop default|check,格式1,格式2,格式1与格式2不能给字段名更名和删除字段名、索引,【语法格式】drop table【功能】删除表文件【说明】若是自由表直接删除相应的.dbf文件。若是当前数据库中的表,则移去表的同时,从磁盘中删除表,同时删除数据库中登记的与该表相关的信息(再打开数据库时没有问题)若没有打开数据库而删除了其中的表,则删除仅仅只是删除表但是数据库中与该表相关的信息没有被删除,再打开数据库时会出现错误提示,最好对当前
12、数据库中的表执行本命令。举例:删除学生信息表 drop table 学生信息,其他修改结构的命令,删除表中的字段修改字段名添加或删除主索引、候选索引删除外部关键字(普通索引)添加外部关键字(普通索引)并建立与其他表的连接设置记录级有效性规则,1.删除表中的字段,【语法格式】alter table drop,alter(修改表结构)语法 eg,例.删除学生信息表中的“简历”字段,alter table 学生信息 drop 简历,2.修改字段名,【语法格式】alter table rename to,alter(修改表结构)语法 eg,alter table 学生信息 rename 出生日期 to
13、 出生年月,例.将学生信息表中的“出生日期”字段名改为“出生年月”,【友情提示】字段名不用带定界符,alter table 学生信息 rename“出生日期”to“出生年月”(),3.添加或删除主索引、候选索引,【添加】alter table add primary key|unique tag,alter(修改表结构)语法 eg,【删除】alter table drop primary key|unique tag,例1.将课程信息表中的课程名定义为候选索引,索引标识是kcmalter table 课程信息 add unique 课程名 tag kcm例2.将课程信息表中的课程名定义为候选索
14、引,索引标识是课程名alter table 课程信息 add unique 课程名例3.删除课程信息表中的候选索引课程名alter table 课程信息 drop unique tag 课程名,alter(修改表结构)eg,【格式】alter table drop foreign key tag,alter table 成绩信息 drop foreign key tag 课程号,例.将成绩信息表中的课程号外部关键字删除,【功能】删除外部关键字的同时也删除了表之间的连接,alter(修改表结构)语法 eg,4.删除外部关键字(普通索引),alter(修改表结构)语法 eg,alter table
15、 add foreign key tag references tag,alter table 成绩信息 add foreign key 课程号 tag 课程号 reference 课程信息 tag 课程号,例.将成绩信息表中的课程号设置为外部关键字并与课程信息表建立连接,5.添加外部关键字(普通索引)并建立与其他表的连接,alter table set check error 错误信息,alter table 课程信息 set check 学时=学分*18 error“学时应该为学分18”,例.对课程信息表中的记录,要求检验学时字段的值,规定是每学分18个学时,alter(修改表结构)语法
16、eg,【友情提示】设置该规则时,会先检查已经存在的记录是否违反了规则,若违反了记录级有效性规则,则设置不成功。,6.设置记录级有效性规则,其他修改结构的命令总结,删除表中的字段alter table drop 修改字段名alter table rename to 添加或删除主索引、候选索引alter table add primary key|unique tag alter table drop primary key|unique tag 删除外部关键字(普通索引)alter table drop foreign key tag 添加外部关键字(普通索引)并建立与其他表的连接alter t
17、able add foreign key tag references tag 设置记录级有效性规则alter table set check error 错误信息,SQL语言的定义即精致又精细!,返回5.2,【语法格式】drop table【功能】删除表文件【说明】若是自由表直接删除相应的.dbf文件。若是当前数据库中的表,则移去表的同时,从磁盘中删除表,同时删除数据库中登记的与该表相关的信息(再打开数据库时没有问题)若没有打开数据库而删除了其中的表,则删除仅仅只是删除表但是数据库中与该表相关的信息没有被删除,再打开数据库时会出现错误提示,最好对当前数据库中的表执行本命令。举例:删除学生信息
18、表 drop table 学生信息,返回5.2,本次课主要内容,5.3 SQL数据操作功能(记录级)(插入、更新、删除记录)5.4.1 简单查询,作 业:实验书:73页【实验内容】1.简单查询 76页习题 一、13上机实验:网络学习平台上第五章 用SQL修改和删除记录、进行简单查询,5.3 数据操作功能,5.3.1 增加(insert),5.3.2 删除(delete),5.3.3 修改(update),回目录,BROWSE也可以完成这些功能,重点 INSERT语句 UPDATE语句 DELETE语句难点 数组的理解 INSERT语句的第二种格式的应用,重点、难点,5.3.1 插入记录,【格式
19、1】insert into(,)values(,)【功能】向into短语指定的表尾插入一条新记录,其值为values后面表达式的值。,5.3.1 插入记录 语法格式1 功能,例1.向学生信息表中插入一条记录记录值完整insert into 学生信息 values(00000001,张三,;男,1982-08-09,580,.T.,二级)省略字段名时,所有字段值都不能缺少,且和表中字段的顺序一一对应例2.向学生信息表中插入一条记录记录值不完整insert into 学生信息(学号,姓名,入学成绩);values(00000002,李四,560)只插入记录的部分值,必须给出相应的字段名,5.3.1
20、 插入记录 语法格式1 eg,【语法格式2】insert into from array【功能】向into短语指定的表尾插入一条新记录或多条新记录,记录的值来源于数组。,5.3.1 插入记录 语法格式2,当数组为一维:表示插入一条记录当数组为二维:表示插入多条记录,例1.定义数组,并给数组赋值,然后向学生信息表中插入记录,记录的值来源于数组。DIMENSION X(5)X(1)=00000004X(2)=刘柳X(3)=女X(4)=1980-6-7 X(5)=560INSERT INTO 学生信息 FROM ARRAY X,5.3.1 插入记录 语法格式2 eg,插入一条记录,记录的前5个字段的
21、值是数组的5个元素的值,其他字段值为空(无论是否设置了默认值),利用数组插入多条记录,为了演示,我们手上只有学生信息.dbf表,为了不破坏原始表,将其复制为xs0.dbfSele*from 学生信息 into table xs0 再复制一份为xs1.dbf,并将xs1中的学号所有”0”开头的学号,变成”1”Sele*from 学生信息 into table xs1Update xs1 set 学号=“1”+subs(学号,2)Browse我们的目的是将XS1.dbf追加到xs0.dbf中,操作如下:第1步:将xs1.dbf 送入数组aa中Select*from xs1 into array a
22、a第2步:将aa 数组内容追加到xs0.dbf中Insert into xs0 FROM ARRAY aa第3步:检查效果:Close allUse xs0Browse,回5.3,5.3.2 删除记录,【语法格式】delete from where【功能】逻辑删除指定表中的记录【友情提示】where子句缺省,删除所有记录;否则只删除满足条件的记录,且条件中可以嵌套一层子查询;本命令是逻辑删除,物理删除需要使用pack命令;恢复需要使用recall命令。一条命令只能删除一个表的数据。,5.3.2 删除记录 语法格式,例1.逻辑删除学生信息表中的所有男生记录delete from 学生信息 whe
23、re 性别=男例2.逻辑删除学生信息表中的所有记录delete from 学生信息例3.逻辑删除没有通过计算机等级考试和四级的学生delete from 学生信息;where isnull(计算机等级);and!四级通过否,5.3.2 删除记录 eg,例4.逻辑删除成绩在530分以上的学生,delete from 学生信息;where 入学成绩530,5.3.2 删除记录 eg,例5.逻辑删除名字以“一”结尾的学生信息,delete from 学生信息;where right(alltrim(姓名),2)=一,例6.逻辑删除“张晓”所修课程的成绩,例7.逻辑删除“程序设计”课程的所有成绩,5.
24、3.2 删除记录 eg,delete from 成绩信息;where 学号 in(;select 学号 from 学生信息;where 姓名=张晓),delete from 成绩信息;where 课程号 in(;select 课程号 from 课程信息;where 课程名=程序设计),暂略,回5.3,5.3.3 更新记录,【语法格式】update set=,=where【功能】修改指定表中指定字段的记录值【注意】如果where子句缺省,更新所有记录指定字段的值;否则只更新满足条件的记录的值,条件中可以嵌套一层子查询。一条命令只能修改一个表的记录,5.3.3 更新记录 语法格式,例1.将所有课程
25、的成绩10分update 成绩信息 set 成绩=成绩+10例2.将“体育”课程的学分改为3分update 课程信息 set 学分=3,;学时=学分*18 where 课程名=“体育”,思考:能否将更新语句中的学时和学分调换位置?,5.3.3 更新记录 eg,例3.将陶红莉的计算机等级考试设置为不确定update 学生信息 set 计算机等级=null;where 姓名=陶红莉,1.计算每个学生的总分与平均分2.性别字段为字符类型,宽度为2,将性别值为”1”,更换为”男”,性别值为”0”,更换为”女”.请问需要几条命令来完成?VFP本身也有一条更新字段值命令,格式如下:,5.3.3 更新记录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vfpSQL基础 vfpSQL 基础 PPT 课件

链接地址:https://www.31ppt.com/p-5626080.html