《ASP网站建设技术 教学课件 ppt 作者 王晶 Chapter06》由会员分享,可在线阅读,更多相关《ASP网站建设技术 教学课件 ppt 作者 王晶 Chapter06(33页珍藏版)》请在金锄头文库上搜索。
1、第6章 数据库操作基础,机械工业出版社,本章重点,数据库的基本知识; 结构化查询语言。,6.1 数据库基础知识,数据库是以一定的组织方式存储的相互有关的数据的集合。数据库的出现使信息系统的研究从以加工数据的程序为中心转变到以共享的数据库为中心来进行。数据库从产生到发展到现在,出现了多种类型。按其结构主要可以分以下三种:层次数据库、网状数据库和关系数据库。,6.1.1 关系数据库模型,关系数据库模型是目前最流行的数据库模型。相对于以前的数据库模型,关系数据库模型已经在许多方面对以前的数据库进行了改进,这些改进简化了数据管理、数据检索等工作。通过利用完整性约束条件,数据更加容易管理。数据检索也得到
2、了更大的改善,它允许用户使用可视化工具来浏览数据库表之间的关联结构,并且不再需要用户完全掌握数据库结构。由于关系数据库模型提供了完整性约束条件以及数据标准化等特性,因此对数据库结构的修改也变得非常容易 。,关系数据库的优点是:数据访问非常快而且便于修改数据库结构;逻辑化表示数据,因此用户不需要知道数据是如何存储的;容易设计复杂的数据查询来检索数据;容易实现数据完整性;具有更高的准确性且支持标准SQL语言。 关系数据库的缺点是:很多的情况下,必须将多个表的不同数据关联起来以实现数据查询,用户须熟悉表之间的关联关系还要掌握SQL语言。,6.1.2 关系数据库的对象,表:表是关系数据库中数据存储的主
3、要对象,以行/列方式组织,存储一组相似数据。表是一个二维结构,行和列的顺序不影响表的内容。表具有直观、方便和简单的特点。 记录:记录是指表中的一行,在通常情况下,记录和行的意思相同。每个表中不允许有重复的行,即每个记录都是唯一的。 字段:字段是表中的一列,在通常情况下,字段和列所指的内容是相同的。表中的每个字段都有一定的数据类型和取值范围,具体情况要视具体的数据库管理系统而定。 每个表所能容纳的字段的数量,在不同的数据库管理系统中有不同的约定。,关键字字段是惟一标识一个记录的字段。在关系数据库中,每个表都必须有自己的关键字字段,这样利用每个记录的关键字就能快速地查找到需要的记录。 关系:关系是
4、一个从数学中而来的概念,在关系代数中,关系即是指二维表,表既可以用来表示数据,也可以用来表示数据之间的联系。 在数据库中,关系是建立在两个表之间的连接,以表的形式表现其间的联系,使数据的处理和表达有更大的灵活性,关系的概念虽然简单,但是很重要。 关系可以分为一对一关系、一对多关系、多对多关系三种。,视图:视图是一个与真实表相同的虚拟表,用于限制用户可以看到和修改的数据,从而简化数据的表达。其本身不独立存储在数据库中,数据库中只是存储视图的定义,不存储对应的数据,运行时系统自动将视图连接到相关的数据表。 约束:约束是设置数据规则的对象。它可以用来控制列中的数据。约束通常定义在“列”一级,它也可以
5、用来加强引用完整性。 过程:也叫存储过程,是一个编译过的SQL程序,在该过程中,可以嵌入条件逻辑、传递参数、定义变量和执行其他的编程任务。,索引:索引是建立在表上的单独的物理数据库结构,基于索引的查询将使数据的获取更为快捷。索引是表中的一个或多个字段,索引可以是唯一的,也可以是不唯一的,主要是看这些字段是否允许重复。主索引是表中的一列或多列的组合,作为表中记录的唯一标识。外部索引是相关联的表的一列或多列的组合。通过索引方式可建立多个表之间的联系。 触发器:触发器是数据库中用来保存程序代码的对象,是一组SQL命令的集合,当用户对表进行插入、删除或修改时,相应的触发器就会自动执行。,6.2 结构化
6、查询语言(SQL),SQL的全称为Structured Query Language,是一种结构化的数据库查询语言。利用SQL语言可以实现对数据库的各种操作。 SQL语言简单易用,它的语法很接近自然语言,使得对SQL的理解和使用都相对容易很多。SQL语言不区分大小写,字符串常量用单引号或双引号括起来,字符串比较时要区分大小写。,SQL语言分为以下几类: 1)数据查询语言(DQL):数据查询语言是从数据库中获取记录,并对返回的记录进行排序、分组等。这种语言中最常见的是SELECT语句。 2)数据操纵语言(DML):数据操纵语言主要是向数据库添加、修改和删除数据等操作,典型的如Insert语句等。
7、 3)数据定义语言(DDL):数据定义语言用于数据库的创建,如表、视图和索引等。该语言包括Create table和Create index等。,4)事务处理语言(TCL):事务是数据库中非常重要的功能,事务处理语言就是控制数据库或者完成一组操作或者全部不完成。该语言包括:Begin Transaction、Commit和Rollback语句。 5)数据控制语言(DCL):数据控制语言主要是对不同的数据库中的表、字段等确定其访问权限。,6.2.1 数据查询语言(DQL),在SQL语句中,使用SELECT语句可以实现对数据库数据的查询操作,从指定的表中检索出满足一定约束条件的记录,并按一定的分组
8、和排序方法显示出来。 使用SELECT语句被检索出的记录就形成了一个集合,简称记录集。,SELECT语句的语法形式如下: SELECT select_list INTO new_table FROM table_source WHERE search_condition ORDER BY order_expression ASC | DESC GROUP BY group_by_expression HAVING search_conditon COMPUTE clause FOR BROWSE,其中,各选项的意义如下: 1)Select子句:用于指定要查询的特定表中的列,它可以是星号(*)或
9、列名。*代表当前数据表中所有的列;若要查询数据表中的部分列的值,则将各列名写出来,各列名之间用逗号分开。 2)Into 子句:用于指定所要生成的新表的名称。 3)From 子句:用于指定要查询的表或者视图,最多可以指定16个表或者视图,相互间用逗号隔开。,4)Where 子句:用来限定查询的范围和条件。如果没有Where子句,则把表中所有的记录作为查询对象。Where子句可以包含多个表达式,表达式之间用And或Or等运算符连接起来。 5)Order by 子句:可以根据一个列或者多个列排序查询结果,ASC代表升序,为默认值,Desc代表降序。,6)Group by 子句:是分组查询子句。Hav
10、ing子句用于指定分组子句的条件。Group by 子句、Having子句和集合函数一起可以实现对每个组生成一行和一个汇总值。 7)Compute子句:使用集合函数在查询的结果集中生成汇总行,Compute by 子句在结果集内生成控制中断和分类汇总。使用Compute子句、Compute by 子句和集合函数可以实现对数据库的统计操作。,在SELECT语句中,最主要的3个子句是Select子句、From子句和Where子句。最简单的Select语句可以只包括一个Select列表和From子句,其余的子句可以省略。 下面给出几个使用Select语句进行查询的例子。先在Microsoft Acc
11、ess2000中创建一个数据库Student.mdb,并在其中创建表Base。其结构及内容见表 学号 姓名 性别 入学成绩 类别 030001 李平 男 450 专科 030002 张丽 女 510 本科 030003 刘爽 男 538 本科 030004 赵针 女 468 专科,【例6-1】 显示表中所有学生的信息。 SELECT * FROM Base 【例6-2】 显示所有入学成绩在500分以上的学生的学号和姓名。 SELECT 学号,姓名 FROM Base WHERE 入学成绩500 【例6-3】 按入学成绩由高到低排序。 SELECT * FROM Base ORDER BY 入学
12、成绩 desc 【例6-4】 从表中取出前三条记录的所有字段。 SELECT top 3 * FROM Base 【例6-5】 显示所有姓张的同学的信息。 SELECT * FROM Base WHERE 姓名 Like “张%“,6.2.2 数据操纵语言(DML),数据操纵语句主要用于对数据库中的数据进行添加、修改和删除等操作,典型的如INSERT、UPDATE、DELETE语句。 1、INSERT语句 INSERT语句用于向数据库中插入一行数据。INSERT语句的语法形式如下: INSERT INTO Table_name (column_list) VALUES(DEFAULT | NU
13、LL | expression ,.n),【例6-6】 利用INSERT语句向Base表插入一个学生的信息。 INSERT INTO Base (学号,姓名,性别,入学成绩,类别) VALUES ( “ 030005 “,“张峻“, “男“ ,564,“本科“),2、UPDATE语句 UPDATE语句用于修改数据库表中指定记录或者字段的值。语法形式如下: UPDATE Table_name SET column_name=expression | DEFAULT | NULL ,N WHERE search_condition 【例6-7】 给学生的入学成绩加20分。 UPDATE Base
14、Set 入学成绩=入学成绩+20 【例6-8】 给所有类别为本科的学生的入学成绩加20分。 UPDATE Base Set 入学成绩=入学成绩+20 WHERE 类别=“本科“,3、DELETE语句 DELETE语句用于删除表中指定的记录。基语法如下: DELETE FROM table_name WHERE search_condition 其中各选项的意义如下: 1)Delete子句用来删除记录。 2)From是可选的关健字,用在要从其中删除行的表的名称前。 3)Where指定用于限制删除行的条件。如果没有提供Where子句,则删除表中的所有行。,【例6-9】 删除表Base中所有性别为男
15、的行。 DELETE FROM Base WHERE 性别= “男“ 【例6-10】 删除表Base中所有行。 DELETE FROM Base,6.2.3 数据定义语言( DDL ),数据定义语言( DDL )是指用来定义和管理数据库以及数据库中各种对象的语句,这些语句包括CREATE、ALTER和DROP等。 1、使用SQL语句创建和删除数据库 在任何数据库项目中,数据管理的第一步都是创建数据库。在创建数据库前,必须保证拥有系统管理员权限或由系统管理员授予的创建数据库的权限。 利用SQL语句创建数据库的语法如下: CREATE DATABASE Database_Name 其中,Datab
16、ase_Name用来指定要创建的数据库名称。,要删除数据库,可以使用Drop database语句。其语法如下: DROP DATABASE Database_Name ,.n 其中,Database_Name用来指定要删除的数据库名称。,2、使用SQL语句创建和删除表 在创建了数据库之后,还需要创建表来存储数据。在SQL语言中,使用REATE TABLE语句来创建表,同时建立相关字段及其数据类型。 其语法如下: CREATE TABLE table_name ( column_name column_properties, . column_namencolumn_properties ) 其中,Table_Name用来指定新建表的名字;Column_Name指定列名;Column_Properties指定列的数据类型和宽度。,【例6-11】 建立一个表Perf。 CREATE TABLE P