sql数据定义和数据操纵.ppt_第1页
sql数据定义和数据操纵.ppt_第2页
sql数据定义和数据操纵.ppt_第3页
sql数据定义和数据操纵.ppt_第4页
sql数据定义和数据操纵.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 查询与视图,SQL结构化查询语言 使用查询向导或设计器创建查询文件标准函数 视图的创建与使用,授课教师:刘洋 联系电话:第5章 查询与视图,一体化语言:它可以完成数据库活动中的全部工作 高度非过程化 :用户不必告诉计算机怎么去做,只需告诉计算机做什么 简洁实用 :只有为数不多的几条命令,核心功能只需要使用9个命令动词。语法结构接近英语自然语言 两种使用方法 :一种是与用户交互的方式联机使用,另一种是作为子语言嵌入到其他程序设计语言中使用,5.1 SQL结构化查询语言,5.1.1 SQL语言概述,SQL包括数据定义、数据操纵、数据查询和数据控制4个部分,是一种功能齐全的数据库语言 。特点是:,建立数据库的目的之一就是要方便数据查询。在Visual FoxPro中可以通过执行SQL语句、运行查询文件、运行视图文件三种方式对数据进行查询。,创建表结构,5.1.2 数据定义语言,数据定义的功能是定义数据库的结构,简称DDL,功能:创建表的结构,CREATE TABLE|DBF FREE (,小数位 ) NULL | NOT NULL CHECKERROR DEFAULT PRIMARY 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语言的关键词,后者是Visual FoxPro的关键词。 可选项FREE用于设定创建自由表。 可选项NULL或NOT NULL用于设定该字段是否允许保存为空值。 可选项CHECK用于设定字段的有效性规则,ERROR设定当违反有效性规则时,显示错误信息的内容。 可选项DEFAULT用于设定字段的默认值。 可选项PRIMARY KEY或UNIQUE用于设定该字段是否是主关键字或唯一关键字,即建立主索引或候选索引。 可选项FOREIGN KEY和REFERENCES用于建立表的普通索引,并通过该索引建立与REFERENCES后面表(作为主表)的关系。,CREATE TABLE|DBF FREE (,小数位 ) NULL | NOT NULL CHECKERROR DEFAULT PRIMARY 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,【例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(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”的数据库,在其中创建一个“学生档案表1”,表结构和学生档案表类似。 CREATE DATABASE 学生数据库1 CREATE 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】 打开“学生数据库1”,创建“学生成绩表1”,并通过“学号”字段与“学生档案表1”建立关系。 OPEN DATABASE 学生数据库1 CREATE TABLE 学生成绩表1(学号 C(6),课程编号 C(6),平时成绩 N(5,1),; 期末成绩 N(5,1), FOREIGN KEY 学号 TAG 学号 REFERENCES 学生档案表1),修改表的结构,【格式1】 ALTER TABLE ADD | ALTER COLUMN ( ,小数位数) NULL | NOT NULL CHECK ERROR DEFAULT PRIMARY KEY | UNIQUE REFERENCES表名2 TAG 索引名 功能:修改数据表的结构,为其添加新字段或修改已有字段的类型、宽度、有效性规则、错误信息、默认值,定义主关键字和联系等。 说明:该格式的命令不能修改字段名,不能删除字段,也不能删除已定义的规则等,【例5-3】 为“学生成绩表1”增加一个“总评成绩”字段,并为该字段设置有效性规则。 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 80,修改表的结构,【格式2 】 ALTER TABLE ALTER COLUMN NULL | NOT NULL SET DEFAULT SET CHECK ERROR DROP DEFAULT DROP CHECK 功能:主要用于定义、修改和删除有效性规则和默认值定义 说明:该格式的命令不能修改字段名和删除字段,【例5-5】 删除“学生成绩表1”中的“总评成绩”字段的有效性规则。 ALTER TABLE 学生成绩表1 ALTER 总评成绩 DROP CHECK 【例5-5】 修改“学生成绩表1”中的“平时成绩”字段的默认值。 ALTER TABLE 学生成绩表1 ALTER 平时成绩 SET DEFAULT 90,修改表的结构,【格式3 】 ALTER TABLE DROP COLUMN RENAME COLUMN TO SET CHECK ERROR DROP CHECK ADD PRIMARY KEY TAG FOR DROP PRIMARY KEY ADD UNIQUE TAG FOR DROP UNIQUE TAG ADD FOREIGN KEY TAG FOR REFERENCES TAG DROP FOREIGN KEY TAG 功能:该格式可以删除字段、可以修改字段名、可以定义、修改和删除表一级的有效性规则等,【例5-7】 把“学生档案表1”中的“所在系”字段的名称改为“系别”。 ALTER TABLE 学生档案表1 RENAME 所在系 TO 系别 【例5-8】 删除“学生档案表1”中的“团员否”字段。 ALTER TABLE 学生档案表1 DROP 团员否 【例5-9】 将“学生成绩表1”中的“学号+课程编号”定义为主索引,索引标识为XHKC。 ALTER TABLE 学生成绩表1 ADD PRIMARY KEY 学号+课程编号 TAG XHKC,删除数据表,【格式 】DROP TABLE 功能:删除指定的表,【例5-10】 将“学生成绩表1”删除。 DROP TABLE 学生成绩表1,插入记录,5.1.3 数据操纵命令,【格式1 】 INSERT INTO (, ,.) VALUES ( ,.) 功能:向指定数据表的末端插入一条新记录 说明:当需要插入表中的所有字段的数据时,表名后面的字段名可以缺省,但插入数据的格式及顺序必须与表的结构完全吻合;若只需要插入表中某些字段的数据,就需要列出插入数据的字段名,相应的表达式的数据位置应与之相对应。,【例5-11】 向“学生成绩数据库表”中添加新记录 INSERT into 学生成绩数据库表 values(“0899031122“,“020212“,28.0,90.0,80) INSERT into 学生成绩数据库表 (学号,课程编号) values(“0123311123“,“020213“),插入记录,【格式2 】 INSERT INTO FROM ARRAY 数组名| FROM MEMVAR 功能:向指定数据表的末端插入一条新记录,其值来自于数组或对应的同名内存变量 说明:数组中各元素与表中各字段顺序对应。如果数组中元素的数据类型与其对应的字段类型不一致,则新记录对应的字段为空值;如果表中字段个数大于数组元素的个数,则多出的字段为空值,【例5-12】 定义数组A(7),利用该数组向“学生档案表”中添加新记录。 DIMENSION A(7) A(1)=“030222“ A(2)=“张洪“ A(3)=“男“ A(4)=450 A(5)=“计算机系“ A(5)=1983/01/27 A(7)=.T. INSERT INTO 学生档案表1 FROM ARRAY A(7),更新记录,【格式 】UPDATE SET= , = WHERE 功能:对表中的记录进行修改,实现记录数据更新 说明:一般使用WHERE子句指定条件,以更新满足条件的一些记录的字段值,并且一次可以更新多个字段;如果不使用WHERE子句,则更新全部记录,【例5-13】 在“学生成绩数据库表”中,使所有总评成绩等于“平时成绩”加上“期末成绩”的百分之七十。 UPDATE 学生成绩数据库表 SET 总评成绩=平时成绩+考试成绩*0.7 【例5-14】 将“学生档案数据库表”中“张洪”同学的“班级”改为“信息”。 UPDATE 学生档案数据库表 SET 班级=“信息“ WHERE 姓名=“张洪“,删除记录,【格式 】DEL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论