sql数据定义和数据操纵

上传人:人*** 文档编号:569324769 上传时间:2024-07-28 格式:PPT 页数:23 大小:388.50KB
返回 下载 相关 举报
sql数据定义和数据操纵_第1页
第1页 / 共23页
sql数据定义和数据操纵_第2页
第2页 / 共23页
sql数据定义和数据操纵_第3页
第3页 / 共23页
sql数据定义和数据操纵_第4页
第4页 / 共23页
sql数据定义和数据操纵_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《sql数据定义和数据操纵》由会员分享,可在线阅读,更多相关《sql数据定义和数据操纵(23页珍藏版)》请在金锄头文库上搜索。

1、第第5章章 查询与视图查询与视图 SQLSQLSQL结构化查询语言结构化查询语言结构化查询语言结构化查询语言结构化查询语言结构化查询语言 使用查询向导或设计器创建查询文件标准函数使用查询向导或设计器创建查询文件标准函数使用查询向导或设计器创建查询文件标准函数使用查询向导或设计器创建查询文件标准函数使用查询向导或设计器创建查询文件标准函数使用查询向导或设计器创建查询文件标准函数视图的创建与使用视图的创建与使用视图的创建与使用视图的创建与使用视图的创建与使用视图的创建与使用 授课教师:刘洋 联系电话联系电话: 15948090018第第5章章 查询与视图查询与视图 一体化语言:一体化语言:一体化语

2、言:一体化语言:一体化语言:一体化语言:它可以完成数据库活动中的全部工作它可以完成数据库活动中的全部工作它可以完成数据库活动中的全部工作它可以完成数据库活动中的全部工作它可以完成数据库活动中的全部工作它可以完成数据库活动中的全部工作 高度非过程化高度非过程化高度非过程化高度非过程化高度非过程化高度非过程化 :用户不必告诉计算机怎么去做,只需告诉计算机做什么用户不必告诉计算机怎么去做,只需告诉计算机做什么用户不必告诉计算机怎么去做,只需告诉计算机做什么用户不必告诉计算机怎么去做,只需告诉计算机做什么用户不必告诉计算机怎么去做,只需告诉计算机做什么用户不必告诉计算机怎么去做,只需告诉计算机做什么简

3、洁实用简洁实用简洁实用简洁实用简洁实用简洁实用 :只有为数不多的几条命令,核心功能只需要使用只有为数不多的几条命令,核心功能只需要使用只有为数不多的几条命令,核心功能只需要使用只有为数不多的几条命令,核心功能只需要使用只有为数不多的几条命令,核心功能只需要使用只有为数不多的几条命令,核心功能只需要使用9 99个命令动词。个命令动词。个命令动词。个命令动词。个命令动词。个命令动词。语法结构接近英语自然语言语法结构接近英语自然语言语法结构接近英语自然语言语法结构接近英语自然语言语法结构接近英语自然语言语法结构接近英语自然语言 两种使用方法两种使用方法两种使用方法两种使用方法两种使用方法两种使用方法

4、 : :一种是与用户交互的方式联机使用,另一种是作为子语言嵌一种是与用户交互的方式联机使用,另一种是作为子语言嵌一种是与用户交互的方式联机使用,另一种是作为子语言嵌一种是与用户交互的方式联机使用,另一种是作为子语言嵌一种是与用户交互的方式联机使用,另一种是作为子语言嵌一种是与用户交互的方式联机使用,另一种是作为子语言嵌入到其他程序设计语言中使用入到其他程序设计语言中使用入到其他程序设计语言中使用入到其他程序设计语言中使用入到其他程序设计语言中使用入到其他程序设计语言中使用5.1 SQL结构化查询语言结构化查询语言 5.1.1 SQL语言概述语言概述 SQL包括包括数据定义数据定义、数据操纵数据

5、操纵、数据查询数据查询和和数据控制数据控制4个部分,是一种功能齐全的数据库语言个部分,是一种功能齐全的数据库语言 。特点是:特点是: 建立数据库的建立数据库的目的之一目的之一就是要方便数据查询。就是要方便数据查询。在在Visual FoxPro中可以通过执行中可以通过执行SQL语句语句、运行查询文件运行查询文件、运行视图文件运行视图文件三种方式对数据进行查询三种方式对数据进行查询。 创建表结构创建表结构创建表结构创建表结构创建表结构创建表结构 5.1.2 数据定义语言数据定义语言 数据定义的数据定义的功能功能是定义数据库的结构,简称是定义数据库的结构,简称DDL 功能功能:创建表的结构:创建表

6、的结构CREATE TABLE|DBF FREE(,小数位小数位 ) NULL | NOT NULLCHECKERROR DEFAULTPRIMARY KEY|UNIQUE REFERENCES 表名表名2 TAG 索引名索引名1,PRIMARY KEY 表达式表达式2 TAG 索引名索引名2 |,UNIQUE 表达式表达式3 TAG 索引名索引名3,FOREIGN KEY 表达式表达式4 TAG 索引名索引名4 REFERENCES 表名表名3 TAG 索引名索引名5,CHECKERROR TABLE和和DBF是等价的,前者是标准的是等价的,前者是标准的SQL语言的关键词,后者是语言的关键词

7、,后者是Visual FoxPro的关键词。的关键词。 可选项可选项FREE用于设定创建自由表。用于设定创建自由表。 可选项可选项NULL或或NOT NULL用于设定该字段是否允许保存为空值。用于设定该字段是否允许保存为空值。 可选项可选项CHECK用于设定字段的有效性规则,用于设定字段的有效性规则,ERROR设定当违反有效性规则时,设定当违反有效性规则时,显示错误信息的内容。显示错误信息的内容。 可选项可选项DEFAULT用于设定字段的默认值。用于设定字段的默认值。 可选项可选项PRIMARY KEY或或UNIQUE用于设定该字段是否是主关键字或唯一关键字,用于设定该字段是否是主关键字或唯一

8、关键字,即建立主索引或候选索引。即建立主索引或候选索引。 可选项可选项FOREIGN KEY和和REFERENCES用于建立表的普通索引,并通过该索引用于建立表的普通索引,并通过该索引建立与建立与REFERENCES后面表(作为主表)的关系。后面表(作为主表)的关系。CREATE TABLE|DBF FREE(,小数位小数位 ) NULL | NOT NULLCHECKERROR DEFAULTPRIMARY KEY|UNIQUE REFERENCES 表名表名2 TAG 索引名索引名1,PRIMARY KEY 表达式表达式2 TAG 索引名索引名2 |,UNIQUE 表达式表达式3 TAG

9、索引名索引名3,FOREIGN KEY 表达式表达式4 TAG 索引名索引名4 REFERENCES 表名表名3 TAG 索引名索引名5,CHECKERROR 【例例8.2】使用使用SQL命令在命令在“学生数据库学生数据库.DBC”中创建一中创建一个名为个名为“学生成绩数据库表学生成绩数据库表”的数据库表。的数据库表。SQL命令如下:命令如下:CREATE TABLE 学生成绩数据库表学生成绩数据库表;(学号学号 C(10) NOT NULL,课程编号课程编号 C(5) NOT NULL,;平时成绩平时成绩 N(5,1), 考试成绩考试成绩 N(5,1),总分总分 N(5,1),学分学分 N(

10、1)【例例8.3】创建一个名为创建一个名为“学生档案数据库表学生档案数据库表”的数据的数据库表。库表。SQL命令如下:命令如下:CREATE TABLE 学生档案数据库表学生档案数据库表 (学号学号 C(10) PRIMARY KEY,;姓名姓名 C(8) NOT NULL,性别性别 C(2) CHECK 性别性别=男男 OR 性别性别=女女;ERROR 性别为男或者女性别为男或者女,出生日期出生日期 D,团员否团员否 L, 班级班级 C(10), ;入学成绩入学成绩 N(5,1),照片照片 G,备注备注 M)【例例5-1】 建立一个名为建立一个名为“学生数据库学生数据库1”的数据库,的数据库

11、,在其中创建一个在其中创建一个“学生档案表学生档案表1”,表结构和学生档,表结构和学生档案表类似。案表类似。CREATE DATABASE 学生数据库学生数据库1CREATE TABLE 学生档案表学生档案表1(学号学号 C(6) PRIMARY KEY, 姓名姓名 C(6) UNIQUE,;性别性别 C(2) CHECK 性别性别=男男 OR 性别性别=女女 ERROR 性别是男或女性别是男或女 ,;入学成绩入学成绩 N(5,1) CHECK 入学成绩入学成绩400 DEFAULT 550,所在系所在系 C(10),出生日期出生日期 D,团员否团员否 L)【例例5-2】 打开打开“学生数据库

12、学生数据库1”,创建,创建“学生成绩表学生成绩表1”,并通过,并通过“学号学号”字段字段与与“学生档案表学生档案表1”建立关系。建立关系。OPEN DATABASE 学生数据库学生数据库1CREATE TABLE 学生成绩表学生成绩表1(学号学号 C(6),课程编号课程编号 C(6),平时成绩平时成绩 N(5,1),;期末成绩期末成绩 N(5,1), FOREIGN KEY 学号学号 TAG 学号学号 REFERENCES 学生档案表学生档案表1)修改表的结构修改表的结构修改表的结构修改表的结构 【格式格式1】ALTER TABLE ADD | ALTER COLUMN ( ,小数位数小数位数

13、)NULL | NOT NULLCHECK ERROR DEFAULTPRIMARY KEY | UNIQUEREFERENCES表名表名2 TAG 索引名索引名 功能:功能:修改数据表的结构,为其添加新字段或修改已有字段的类型、宽度、修改数据表的结构,为其添加新字段或修改已有字段的类型、宽度、有效性规则、错误信息、默认值,定义主关键字和联系等。有效性规则、错误信息、默认值,定义主关键字和联系等。 说明:说明:该格式的命令不能修改字段名,不能删除字段,也不能删除已定义的该格式的命令不能修改字段名,不能删除字段,也不能删除已定义的规则等规则等 【例例5-3】 为为“学生成绩表学生成绩表1”增加一

14、个增加一个“总评成绩总评成绩”字段,字段,并为该字段设置有效性规则。并为该字段设置有效性规则。ALTER TABLE 学生成绩表学生成绩表1 ADD 总评成绩总评成绩 N(5,1) CHECK 总评成绩总评成绩=100;ERROR 总评成绩不能超过总评成绩不能超过100分分 DEFAULT 80【例例5-4】 修改修改“学生成绩表学生成绩表1”的的“平时成绩平时成绩”字段的宽度。字段的宽度。ALTER TABLE 学生成绩表学生成绩表1 ;ALTER 平时成绩平时成绩 N(4,1) CHECK 平时成绩平时成绩=100;ERROR 平时成绩不能超过平时成绩不能超过100分分 DEFAULT 8

15、0修改表的结构修改表的结构修改表的结构修改表的结构 【格式格式2 】ALTER TABLE ALTER COLUMN NULL | NOT NULLSET DEFAULT SET CHECK ERROR DROP DEFAULT DROP CHECK 功能:功能:主要用于定义、修改和删除有效性规则和默认值定义主要用于定义、修改和删除有效性规则和默认值定义 说明:说明:该格式的命令不能修改字段名和删除字段该格式的命令不能修改字段名和删除字段 【例例5-5】 删除删除“学生成绩表学生成绩表1”中的中的“总评成绩总评成绩”字段的有效性规则。字段的有效性规则。ALTER TABLE 学生成绩表学生成绩

16、表1 ALTER 总评成绩总评成绩 DROP CHECK【例例5-5】 修改修改“学生成绩表学生成绩表1”中的中的“平时成绩平时成绩”字段的默认值。字段的默认值。ALTER TABLE 学生成绩表学生成绩表1 ALTER 平时成绩平时成绩 SET DEFAULT 90修改表的结构修改表的结构修改表的结构修改表的结构 【格式格式3 】ALTER TABLE DROP COLUMN RENAME COLUMN TOSET CHECK ERROR DROP CHECKADD PRIMARY KEY TAG FOR DROP PRIMARY KEYADD UNIQUE TAG FOR DROP UNI

17、QUE TAG ADD FOREIGN KEY TAG FOR REFERENCES TAGDROP FOREIGN KEY TAG 功能:功能:该格式可以删除字段、可以修改字段名、可以定义、修改和删除表一该格式可以删除字段、可以修改字段名、可以定义、修改和删除表一级的有效性规则等级的有效性规则等 【例例5-7】 把把“学生档案表学生档案表1”中的中的“所在系所在系”字段的名字段的名称改为称改为“系别系别”。ALTER TABLE 学生档案表学生档案表1 RENAME 所在系所在系 TO 系别系别【例例5-8】 删除删除“学生档案表学生档案表1”中的中的“团员否团员否”字段。字段。ALTER

18、TABLE 学生档案表学生档案表1 DROP 团员否团员否【例例5-9】 将将“学生成绩表学生成绩表1”中的中的“学号学号+课程编号课程编号”定定义为主索引,索引标识为义为主索引,索引标识为XHKC。ALTER TABLE 学生成绩表学生成绩表1 ADD PRIMARY KEY 学号学号+课程编号课程编号 TAG XHKC删除数据表删除数据表删除数据表删除数据表 【格式格式 】DROP TABLE 功能:删除指定的表功能:删除指定的表 【例例5-10】 将将“学生成绩表学生成绩表1”删除。删除。 DROP TABLE 学生成绩表学生成绩表1插入记录插入记录插入记录插入记录插入记录插入记录 5.

19、1.3 数据操纵命令数据操纵命令 【格式格式1 】INSERT INTO (, ,.) VALUES ( ,.)功能:功能:向指定数据表的末端插入一条新记录向指定数据表的末端插入一条新记录 说明:说明:当需要插入表中的所有字段的数据时,表名后面的字段当需要插入表中的所有字段的数据时,表名后面的字段名可以缺省,但插入数据的格式及顺序必须与表的结构完全吻合;名可以缺省,但插入数据的格式及顺序必须与表的结构完全吻合;若只需要插入表中某些字段的数据,就需要列出插入数据的字段若只需要插入表中某些字段的数据,就需要列出插入数据的字段名,相应的表达式的数据位置应与之相对应。名,相应的表达式的数据位置应与之相

20、对应。 【例例5-11】 向向“学生成绩数据库表学生成绩数据库表”中添加新记中添加新记录录INSERT into 学生成绩数据库表学生成绩数据库表 values(0899031122,020212,28.0,90.0,80)INSERT into 学生成绩数据库表学生成绩数据库表 (学号学号,课程编号课程编号) values(0123311123,020213)插入记录插入记录插入记录插入记录 【格式格式2 】INSERT INTO FROM ARRAY 数组名数组名| FROM MEMVAR功能:向指定数据表的末端插入一条新记录,其值来自于数组功能:向指定数据表的末端插入一条新记录,其值来自

21、于数组或对应的同名内存变量或对应的同名内存变量说明:数组中各元素与表中各字段顺序对应。如果数组中元素说明:数组中各元素与表中各字段顺序对应。如果数组中元素的数据类型与其对应的字段类型不一致,则新记录对应的字段为的数据类型与其对应的字段类型不一致,则新记录对应的字段为空值;如果表中字段个数大于数组元素的个数,则多出的字段为空值;如果表中字段个数大于数组元素的个数,则多出的字段为空值空值 【例例5-12】 定义数组定义数组A(7),利用该数组向,利用该数组向“学生档案学生档案表表”中添加新记录。中添加新记录。DIMENSION A(7)A(1)=030222A(2)=张洪张洪A(3)=男男A(4)

22、=450A(5)=计算机系计算机系A(5)=1983/01/27A(7)=.T.INSERT INTO 学生档案表学生档案表1 FROM ARRAY A(7)更新记录更新记录更新记录更新记录 【格式格式 】UPDATE SET= , = WHERE 功能功能:对表中的记录进行修改,实现记录数据更新对表中的记录进行修改,实现记录数据更新说明:说明:一般使用一般使用WHERE子句指定条件,以更新满足条件的一子句指定条件,以更新满足条件的一些记录的字段值,并且一次可以更新多个字段;如果不使用些记录的字段值,并且一次可以更新多个字段;如果不使用WHERE子句,则更新全部记录子句,则更新全部记录 【例例

23、5-13】 在在“学生成绩数据库表学生成绩数据库表”中,使所有中,使所有总评成绩等于总评成绩等于“平时成绩平时成绩”加上加上“期末成绩期末成绩”的的百分之七十。百分之七十。UPDATE 学生成绩数据库表学生成绩数据库表 SET 总评成绩总评成绩=平时平时成绩成绩+考试成绩考试成绩*0.7【例例5-14】 将将“学生档案数据库表学生档案数据库表”中中“张洪张洪”同学的同学的“班级班级”改为改为“信息信息”。UPDATE 学生档案数据学生档案数据库库表表 SET 班级班级=信息信息 WHERE 姓名姓名=张张洪洪删除记录删除记录删除记录删除记录 【格式格式 】DELETE FROM WHERE 功

24、能:功能:从指定的表中,根据指定的条件逻辑删除记录从指定的表中,根据指定的条件逻辑删除记录说明:说明:使用使用FROM指定从哪个表中删除,指定从哪个表中删除,WHERE指定被删除指定被删除的记录所满足的条件,如果不使用的记录所满足的条件,如果不使用WHERE子句,则删除该表中子句,则删除该表中的全部记录。的全部记录。 该命令是加逻辑删除标记,并没有从物理上删除。只有执该命令是加逻辑删除标记,并没有从物理上删除。只有执行了行了PACK命令,逻辑删除的记录才真正地从物理上删除。命令,逻辑删除的记录才真正地从物理上删除。【例例5-15】 将将“学生档案数据库表学生档案数据库表”中的所有中的所有男同学的记录逻辑删除。男同学的记录逻辑删除。DELETE FROM 学生档案数据库表学生档案数据库表 WHERE 性性别别=男男

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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