




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章
数据库概述第一章数据库概述1.1数据库基本知识
1.2关系数据库
1.3关系数据库设计本章内容第一章数据库概述1.1数据库基本知识
1.1.1数据库的基本概念1.数据(data)2.数据库(database) 3.数据库管理系统 (DataBaseManagementSystem,简称DBMS)
4.数据库系统(DataBaseSystem,简称DBS)第一章数据库概述1.1.2数据管理技术的发展1.人工管理阶段2.文件系统阶段3.数据库系统阶段第一章数据库概述1.1.3数据模型
1.层次模型(HierarchicalModel)
2.网状模型(NetworkModel)
3.关系模型(RelationalModel)
1.1.4数据库系统的模式结构
1.模式:数据库的总体框架,是对数据库中全体数据的 逻辑结构和特性的描述。
2.外模式:数据库用户看到的数据视图
3.内模式:定义数据的存储方式和物理结构
第一章数据库概述1.2关系数据库 关系数据库(RelationDataBase)是建立在严密的数学基础之上的,它应用数学方法来处理数据库中的数据。1.2.1关系模型与关系数据库1.2.2关系的完整性
1.实体完整性
2.参照完整性
3.用户定义的完整性第一章数据库概述1.3关系数据库设计1.3.1ER关系模型数据库设计
1.实体:一组有相同属性的对象,被用户标识为独立存 在的对象集合。
2.关系:实体之间的具有某种含义的关联。
3.属性:实体或关系的性质。
4.键:实体的键可以分为:超键(SuperKey)、候选 键(CandidateKey)、主键(PrimaryKey,简 称PK)和备用键(AlternateKey)第一章数据库概述
1.3.2关系模型的规范化
1.第一范式:每个列和记录包含一个而且只包含一个 值的表。
2.第二范式:一个第一范式的表并且每个非主键列都 可以从构成主键的全部的列得到。
3.第三范式:是一个已经是第一范式和第二范式的 表,并且所有非主键列的值都只能由主 键列中决定,而不能由其他非主键列决 定。第一章数据库概述
1.3.3关系数据库的关系
1.一对一关系
2.一对多关系
3.多对多关系第一章数据库概述
1.3.4数据库的一般设计方法
1.需求分析
2.概念设计
3.逻辑设计
4.物理设计
5.数据库的实施
6.数据库的运行和维护第2章
VB.NET简介第2章VB.NET简介2.1VS.NET与VB.NET简介2.2VS.NET安装与启动2.3变量和类型2.4面向对象语法2.5一个简单的VB.NET示例本章内容第2章VB.NET简介2.1VS.NET与VB.NET简介2.1.1VisualStudio.NET简介2.1.2VB.NET简介
VisualBasic.NET的新特性:封装特性、继承、多态性、结构化错误处理、类型安全保证、用户界面继承、Web表单、Web服务第2章VB.NET简介2.2VS.NET安装与启动2.2.1VS.NET的安装步骤2.2.2VS.NET的启动2.3变量和类型
.NET只有两个主要变量类型:值类型和引用类型。值类型表示位于堆栈上的简单数据存储,它们就是VB6开发人员常说的数据类型。引用类型是基类,是从其父类继承实现的。
值类型和引用类型在赋值语句中的处理是不同的。它们的内存管理方式也不同。第2章VB.NET简介2.3.1值类型
值类型常被称为基本类型,这些基本类型用关键字如String、Long和Integer来标识,它们是.NET类库定义的类的别名。
表2-1列出了VB.NET定义的基本类型以及它们的映射结构或类。
基本类型.NET类或结构ByteSystem.Byte(结构)ShortSystem.Int16(结构)IntegerSystem.Int32(结构)LongSystem.Int64(结构)SingleSystem.Single(结构)DoubleSystem.Double(结构)DecimalSystem.Decimal(结构)BooleanSystem.Boolean(结构)DateSystem.Datetime(结构)CharSystem.Char(结构)StringSystem.String(类)表2-1第2章VB.NET简介2.3.2引用类型
1.Object类
Object类是每个类型的基础,包括值类型和引用类型。在其核心,每个变量都是一个对象,都可以作为对象来处理。Object类型由4个字节的地址来存储,该地址可以引用应用程序中的对象。Object也可以用来存储各种类型的数据变量,这个功能使Object类型取代了VisualBasic以前版本的Variant类型。
第2章VB.NET简介2.String类
String类是.NET中特有的,因为它是不属于值类型的一个基本类型。String类提供了一些共享的方法,即这些方法不是String专有的。这些方法代替了VisualBasic6中处理字符串的函数,并可以执行诸如插入字符串、分割字符串和搜索字符串等操作。第2章VB.NET简介2.4面向对象语法2.4.1面向对象的概念 面向对象的编程有三个重要的特征:封装、继承、多态。2.4.2面向对象的实现
1.类的创建
2.继承的使用第2章VB.NET简介2.5一个简单的VB.NET示例
1.创建ASP.NETWeb应用程序
2.创建ASP.NET页面
3.添加控件
4.保存和浏览页面
5.添加代码,完成功能设计
6.运行第3章SQL
Server2000概述第3章SQLServer2000概述3.1SQLServer2000简介3.2SQLServer2000的安装3.3SQLServer2000的常用工具本章内容第3章SQLServer2000概述3.1SQLServer2000简介
SQLServer2000的主要特点具体体现在以下几个方面:
1.Internet集成
2.可伸缩性和可用性
3.企业级数据库功能
4.易于安装、部署和使用
5.数据仓库第3章SQLServer2000概述3.2SQLServer2000的安装3.2.1SQLServer2000的环境需求
1.SQLServer2000的版本
SQLServer2000的版本主要有:企业版、标准版、个人版、开发版等。
2.SQLServer2000安装的硬件环境
3.SQLServer2000安装的软件环境3.2.2SQLServer2000的安装步骤第3章SQLServer2000概述3.3SQLServer2000的常用工具3.3.1SQLServer企业管理器 利用SQLServer企业管理器能够完成的操作主要有:
1、定义SQLServer服务器群组以及在群组中注册个别服务器
2、为每一个已注册的服务器设置SQLServer选项
3、创建、管理数据库
4、创建、管理表
5、创建管理视图、存储过程、触发器
6、管理SQLServer的安全性
7、备份与恢复数据库第3章SQLServer2000概述3.3.2SQLServer查询分析器
利用SQLServer查询分析器能够完成的操作主要有:
1、查询窗口,让用户可以方便地键入Transact-SQL语句。
2、在查询窗口中键入的Transact-SQL语句,以不同的色彩标识不同的对象,从而增加SQL语句的可读性。
3、对象浏览器与对象搜寻工具,让用户可以很方便地在数据库中寻找、对象及查看对象的结构。
4、查询的执行结果可以显示在方格或文字窗口中,或是直接写入到指、定的报表文件上。
5、模板文件包含了在数据库中建立对象时所需的Transact-SQL语句的基本结构。模板的使用可以加快Transact-SQL语句的编写。第3章SQLServer2000概述3.3.3SQLServer服务管理器SQLServer服务管理器有下列四种服务,分别为:
1、SQLServer服务
2、SQLServerAgent服务
3、MicrosoftSearch服务
4、MSDTC(MicrosoftDistributedTransactionCoordinator)服务第3章SQLServer2000概述
1、SQLServer服务:用以实现SQLServer数据库引擎,它可以说是SQLServer的最基本组件,停止SQLServer服务将会停止所有的SQL服务。每一个SQLServer实例都有一个SQLServer服务。
2、SQLServerAgent服务:即SQLServer代理服务,可以自动执行指定任务、监视SQLServer运行并在必要时进行报警。每一个SQLServer实例都有一个SQLServer代理服务。
3、MicrosoftSearch服务:用以实现全文搜寻引擎。不论计算机上有多少个SQLServer实例,都只会有一个MicrosoftSearch服务。
4、MSDTC服务:称为微软分布式事务协调器,用以管理分布式交易。不论计算机上有多少个SQLServer实例,都只会有一个MSDTC服务。第4章
数据库与表第4章数据库与表4.1数据库的创建与使用4.2表的创建与使用4.3约束的创建与使用4.4ADO.NET访问数据库4.5实验与指导本章内容第4章数据库与表4.1数据库的创建与使用4.1.1数据库的组成
SQLServer2000的数据库大致可分为三类。
(1)主数据文件:每一个数据库都必须有一个主数据文件,这个主数据文件中记录了数据库的起始信息、数据文件成员以及数据库的对象成员,如表、视图、规则等。主数据文件一旦建立了之后,就不能将它删除,除非将整个数据库删除。默认主数据文件的扩展名为“.mdf”。
第4章数据库与表
(2)辅助数据文件:SQLServer可以将数据库存成多个数据文件,一个主数据文件与多个辅助数据文件,一个数据库也可以没有辅助数据文件。默认辅助数据文件的扩展名为“.ndf”。通常情况下数据库并不需要建立辅助数据文件,只有当数据过于庞大,数据库的内容太多时,单一数据文件无法负荷,需要使用辅助数据文件分散存储数据,以提高数据的存取效率。 (3)事务日志文件:事务日志文件是用来记录数据库的事务活动记录,它可以为SQLServer取消事务、回存事务等操作提供参考依据,以便在数据库损坏时,能利用事务日志文件恢复数据库。默认事务日志文件的扩展名为“.ldf”。 如果一个数据库是由多个数据文件组成时,就可以使用SQLServer的文件组功能来管理这些数据文件。文件组允许多个数据文件组成一个组,并对它们进行管理。第4章数据库与表4.1.2系统数据库
在SQLServer初始安装后,打开企业管理器,可以看到系统中已经包含了6个数据库:master、tempdb、model和msdb是SQLServer的4个系统数据库。pubs和Northwind是SQLServer的示例数据库,让学习者作为学习范例使用的。第4章数据库与表
SQLServer的4个系统数据库的作用说明如下: (1)master数据库
master数据库可以说是SQLServer的主要数据库,它记录了SQLServer系统级的信息,包括激活参数、登录账号、系统配置信息以及所有数据库的相关信息等。由于matser数据库记录了如此多且重要的信息,一旦该数据库文件遗失或损毁,将对整个SQLServer系统的运行造成重大影响,因此建议数据库系统管理员最好要保留最近的master数据库备份,以便在发生问题时,将数据库恢复。 每个数据库都有属于自己的一组系统表,记录了每个数据库的系统信息,这些系统表在创建数据库时就会自动产生。为了使系统表与用户自己创建的表相区别,系统表的表名都以“sys”开头。 第4章数据库与表(2)model数据库
model数据库是一个模板数据库,是系统中所有数据库的模板。它包含了建立新数据库时所需要的基本对象,如系统表、查看表、登录信息等,当在系统中新创建一个数据库时,刚创建的数据库都和model数据库完全一样。由于所有新建立的数据库都是继承这个model数据库而来的,因此当我们更改了model数据库上的内容,如增加对象,则稍后建立的数据库也都包含该变动。第4章数据库与表(3)msdb数据库
msdb数据库是提供给SQLServer代理(SQLServerAgent)服务使用的,用来记录进行调度、警示、操作员与操作等运作所需的相关信息。如果不需要使用到这些SQLServer代理项目,就不会使用到这个系统数据库。(4)tempdb数据库
tempdb数据库用于存放所有连接到系统的用户临时表、临时存储过程以及SQLServer产生的其他任何临时性对象。 当SQLServer关闭时,tempdb数据库中所有对象会被删除。当SQLServer被激活,tempdb数据库就会被重新建立,以便让系统以一个初始状态开始执行。第4章数据库与表4.1.3创建数据库SQLServer创建数据库有三种方法:
1.用企业管理器创建数据库
2.在查询分析器中用T-SQL命令创建数据库 创建时使用CREATEDATABASE命令,该命令语法如下:CREATEDATABASEdatabase_name
[ON[PRIMARY][<filespec>[,…n][,<filegroupspec>[,…n]]][LOGON{<filespec>[,…n]}][FORLOAD|FORATTACH]第4章数据库与表4.1.4修改数据库
1.数据库更名 利用系统存储过程sp_renamedb可以修改数据库的名称。在重命名数据库之前,应该确保没有用户使用该数据库,而且数据库应该设置为“单用户”模式。系统存储过程sp_renamedb的语法结构如下:
sp_renamedb‘@old_name’‘new_name’第4章数据库与表
2.修改数据库选项 数据库创建后,可以在企业管理器中利用数据库的属性设置,来更改数据库的某些设置。4.1.5删除数据库 可以利用T-SQL的DROPDATABASE语句来删除数据库:DROPDATABASEdatabase_name[,...n]
另外,无法除去系统数据库(msdb、model、master、tempdb)。第4章数据库与表4.1.6附加与分离数据库
1.分离数据库 分离数据库是将数据库从SQLServer企业管理器中分离出来,删除数据库在SQLServer中的定义,并不会删除数据库存储在硬盘上的数据库文件。当数据库被分离后,数据文件的位置就可以任意移动,并且在需要时随时将该分离的数据库附加到SQLServer中,再次使用该数据库。
2.附加数据库 数据库被从SQLServer中分离后,将数据库文件重新附 加给SQLServer,数据库就能再次使用。第4章数据库与表4.2表的创建与使用4.2.1数据类型
在SQLServer数据库中存储的数据都具有自己的数据类型,数据类型决定了数据的存储格式,以及数据所占用的空间,代表了各种不同的信息类型。
SQLServer2000提供系统数据类型和用户自定义数据类型,本节将主要介绍系统数据类型。
常见的数据类型见表。第4章数据库与表
数据类型使用字节数据范围整数数值tinyint1Bytes0~255smallint2Bytes-215~(215-1)
int4Bytes-231~(231-1)
bigint8Bytes-263~(263-1)小数数值decimal(numeric)最大至38Bytes(-1038-1)~(1038-1)浮点数值float单精度:4Bytes双精度:8Bytes-1.79E+308~1.79E+308real4Bytes-3.40E+38~3.40E+38表--数值数据的特性及取值范围第4章数据库与表4.2.2创建表
1.用企业管理器创建数据库
2.在查询分析器中用T-SQL命令创建表 使用Transact-SQL语言中的:CREATETABLE
命令来创建表。第4章数据库与表4.2.3修改表 使用Transact-SQL语言中的:ALTERTABLE
修改表。4.2.4删除表 使用Transact-SQL语言中的:DROPTABLEtable_name
删除表。第4章数据库与表4.3约束的创建与使用
约束是SQLServer提供的自动强制数据完整性的一种方法,它是通过定义列的取值规则来维护数据的完整性。在SQLServer2000中常用的约束有5种,分别为检查约束(CHECK)、惟一性约束(UNIQUE)、主键约束(PRIMARYKEY)、外键约束(FOREIGNKEY)和默认约束(DEFAULT)。第4章数据库与表4.3.1创建约束
1.PRIMARYKEY约束
PRIMARYKEY约束标识列或列集,这些列或列集的值惟一地标识表中的行。在一个表中,不能有两行包含相同的主键值。不能在主键内的任何列中输入NULL值。每个表都应有一个主键。
2.UNIQUE约束
UNIQUE约束在列集内强制执行值的惟一性。对于UNIQUE约束中的列,表中不允许有两行包含相同的非空值。主键也强制执行惟一性,但主键不允许有空值。UNIQUE约束优于惟一索引。
第4章数据库与表 3.CHECK约束
CHECK约束对可以放入列中的值进行限制,以强制执行域的完整性。
4.DEFAULT约束
DEFAULT约束用来强制数据的域完整性,它为表中某列建立一个默认值,当用户插入记录时,如果没有为该列提供输入值,则系统会自动将默认值赋给该列。
5.FOREIGNKEY约束
FOREIGNKEY约束标识表之间的关系。通过外键约束可以为相关联的两个表建立联系,实现数据的参照完整性,维护两表之间数据的一致性关系。第4章数据库与表4.3.2查看约束的定义
SQLServer2000提供了使用企业管理器和系统存储过程两种方式,查看约束的定义。
1.使用企业管理器查看约束的定义
2.系统存储过程查看约束的定义4.3.3删除约束
删除定义在表上的约束,可以用企业管理器,也可以使用DROP命令删除约束。第4章数据库与表4.4ADO.NET访问数据库4.4.1ADO.NET访问数据库的步骤 在ADO.NET里,最重要概念之一是DataSet。DataSet是不依赖于数据库的独立数据集合。所谓独立,就是:即使断开数据链路,或者关闭数据库,DataSet依然是可用的。有了DataSet,那么,ADO.NET访问数据库的步骤如下:
1、建一个数据库链路;
2、求一个记录集合;
3、把记录集合暂存到DataSet;
4、如果需要,返回第2步(DataSet可以容纳多个数据集合);
5、关闭数据库链路;
6、在DataSet上作所需要的操作。第4章数据库与表4.4.2ADO.NET对象模型
ADO.NET有许多对象,为了使用ADO.NET对象,我们需要引入两个NameSpace:System.Data和System.Data.SqlClient,使用ASP.NET的Import指令就可以了:
<%@ImportNamespace="System.Data"%> <%@ImportNamespace="System.Data.SqlClient"%>第4章数据库与表使用ADO.NET时常用到5个主要的对象类型:
Connection对象:通过Connection对象,可以将所有指令发送到数据存储器。用户可以指定连接哪个数据库,使用什么验证等等。
Command对象:Command对象包含了指定将什么信息发送到数据库的指令,它还包含了将要使用的连接的链接。
DataReader对象:DataReader对象“获取”通过Command对象检索到的信息。这种信息是只读的,因此不能被编辑,每次只能读取一项数据。该对象提供了处理大量数据的有效方法;有时它们被描述为提供了连接访问,因为只要使用DataReader,那么必须保持对数据库的连接。第4章数据库与表
DataAdapterSet对象提供了一组命令和数据库连接,它是另一种检索数据的方法。它对数据更新的支持也是只读的,DataAdapter并不允许编辑数据源;它用数据源的信息副本填充数据集,接着将对数据的改变写入数据库中。
Data对象可以被看作数据存储器的部分数据的本地副本,可以读取、添加、修改和删除其中的数据。因为这些数据是本地缓存的,与DataReader的读取方式不同,可以以随机的方式读取它。在对数据作改变时,通过DataAdapter将它们发送回数据存储器中。在这之前,DataSet都是与数据存储器断开的。第4章数据库与表4.4.3ADO.NET数据连接方法 创建ADO.NET数据连接对象时,所需的5个编程步骤: 第1步:创建到数据源的连接:
SQLConnection
Conn=new SQLConnection("server=localhost; uid=sa;pwd=;database=bhd");
第2步:创建SqlDataAdapter对象,指定一个存储过程的名字或者一个SQL语句,指定数据链路:
Stringstr="select*fromspxx";
SqlDataAdapter
da= newSqlDataAdapter(str,Conn);第4章数据库与表
第3步:创建一个Dataset对象
DataSet
ds=newDataSet();
第4步:调用SqlDataAdapter对象的Fill方法,为Dataset填充数据
da.Fill(ds,"products");
第5步:操作数据
dgProducts.DataSource= ds.Tables["products"].DefaultView;
dgProducts.DataBind();
第6步:
SqlConnection对象一旦使用完,应及时关闭它。
Conn.Close();第4章数据库与表4.5实验与指导
实验一:创建销售管理数据库实验目的: 通过本实验,要求学生掌握利用企业管理器和查询分析器,创建数据库的方法。实验内容: 本书实例提供了销售管理网站的后台数据库bhd,在设计数据表结构之前,首先要创建一个bhd数据库。 数据库bhd的参数为数据文件名称为“bhd_data”,文件路径及名称为e:\xsgl\db\bhd.mdf,初始大小为10MB,最大值的为100MB,增长速度为每次增长1MB;事务日志文件的名称为“bhd_log”,文件路径及名称为e:\xsgl\db\bhd.ldf,初始大小为10MB,最大值为无限大,增长速度为每次增长10%。第4章数据库与表实现方法:
bhd数据库可以在企业管理器中创建,也可以在查询分析器中使用CREATEDATABASE命令创建。 在查询分析器中创建bhd数据库,程序如下:CREATEDATABASEbhdONPRIMARY(NAME=bhd_data,FILENAME=e:\xsgl\db\bhd.mdf’,SIZE=10,MAXSIZE=100,FILEGROWTH=1)LOGON(NAME=bhd_Log,FILENAME=e:\xsgl\db\bhd.ldf’,SIZE=10,MAXSIZE=UNLIMITED,FILEGROWTH=10%)第4章数据库与表实验二:创建销售库的表实验目的: 通过本实验,要求学生掌握利用企业管理器和查 询分析器,创建数据库中的表,并输入记录。实验内容: 销售管理数据库bhd由7个表构成。数据库bhd包 含的7个表如下:商品信息表spxx、销售历史表xsls、库 存历史表kcls、人员信息表ryxx、价格历史表jgls、销售 信息表xsxx、人员业绩表ryyj。 其中商品信息表已在前面章节中创建过,其他6 个表的表结构如下:第4章数据库与表销售历史表xsls保存商品销售过程中的信息,表结构如下所示。字段名称类型长度允许空说明lshint4否流水号,设置为自动编号,并设为主键spbhchar6否商品编号xsslint
4否销售数量xsrqdatetime8否销售日期ysjedecimal9否应收金额,默认值为0spdjdecimal9否商品定价,默认值为0ssjedecimal9否实收金额zljedecimal9否找零金额rybhchar6否人员编号jsrchar10否经手人第4章数据库与表库存的历史信息保存在库存历史表kcls中,表结构如下所示。字段名称类型长度允许空说明lshint4否流水号,设置为自动编号,并设为主键spbhchar6否商品编号lrrqdatetime8否录入日期,默认值getdate()jsrchar10否经手人kcslint4否库存数量rckslint4否入出库数量rckbzchar2否入出库标志第4章数据库与表价格历史表jgls保存商品销售的价格历史信息,表结构如下所示。字段名称类型长度允许空说明spbhchar6否商品编号tjrqdatetime8是调价日期spxjdecimal9否商品新价spyjdecimal9否商品原价jsrchar10否经手人lyrqdatetime8是录入日期第4章数据库与表人员信息表ryxx保存人员的基本信息,表结构如下所示。字段名称类型长度允许空说明rybhchar6否人员编号,设为主键rymcchar10否人员名称ryxbchar2否人员性别ryzzchar50是人员住址yzbmchar10是邮政编码gwmcchar10否岗位名称rgrqdatetime8否入岗日期mimachar6否人员密码第4章数据库与表销售信息表xsxx保存所有商品销售的信息,表结构如下所示。字段名称类型长度允许空说明spbhchar6否商品编号xsrqdatetime8否销售日期xsslint4否销售数量jsrchar10否经手人第4章数据库与表人员业绩表ryyj保存所有销售人员的业绩,表结构如下所示。字段名称类型长度允许空说明rybhchar6否人员编号xsslint4否销售数量,默认值为0tjrqdatetime8否提交日期xsjedecimal9否销售金额,默认值为0jycsint4否交易次数,默认值为0第4章数据库与表实现方法:
以价格历史表jgls为例,在查询分析器中创建数据表,程序如下:USEbhdGOCREATETABLEjgls(spbhchar(6)NOTNULL,tjrq
datetime,spxjdecimal(18,2)NOTNULL,spyjdecimal(18,2)NOTNULL,jsrchar(10)NOTNULL,lyrq
datetime
)
第5章
数据查询第5章数据查询5.1SQL语言简介5.2SELECT语句5.3INSERT语句UPDATE语句5.5DELETE语句本章内容第5章数据查询5.1SQL语言简介5.1.1概述
SQL是结构化查询语言(StructuredQueryLanguage)的英文缩写。它是一种通用的关系数据库标准语言,其功能包括查询、操纵、定义、控制。
1.SQL语言的特点
2.SQL语言的构成第5章数据查询5.1.2使用注释
注释是程序代码中不执行的文本字符串(也称为注解)。注释用于说明代码或暂时禁用正在进行诊断的部分Transact-SQL语句和批处理。使用注释对代码进行说明,可使程序代码更易于维护。注释通常用于记录程序名称、作者姓名和主要代码更改的日期。注释可用于描述复杂计算或解释编程方法。第5章数据查询 SQLServer支持两种类型的注释字符。
1.--(双连字符) 这些注释字符可与要执行的代码处在同一行,也可另起一行。从双连字符开始到行尾均为注释。对于多行注释,必须在每个注释行的开始使用双连字符。表示用户提供的用来进行注解用的文本。可以将注释插入单独行中、嵌套(只限--)在Transact-SQL命令行的末端,或者Transact-SQL语句中。服务器不对注释进行处理。两个连字符(--)是SQL-92标准的注释指示符。
语法格式:
--
text_of_comment
参数:text_of_comment是指包含注释文本的字符串。第5章数据查询 2./*...*/(正斜杠-星号对) 这些注释字符可与要执行的代码处在同一行,也可另起一行,甚至在可执行代码内。从开始注释对(/*)到结束注释对(*/)之间的全部内容均视为注释部分。对于多行注释,必须使用开始注释字符对(/*)开始注释,使用结束注释字符对(*/)结束注释。注释行上不应出现其他注释字符。 “/*...*/”表示用户提供的文本。服务器不对位于/*和*/之间的注释字符之间的文本进行处理。
语法格式:
/*text_of_comment*/
参数:text_of_comment是指包含注释文本的字符串。第5章数据查询5.2SELECT语句5.2.1SELECT语句概述1.SELECT语句功能
SELECT语句按指定的条件从数据表或视图中查询数据。主要功能是从FROM列出的数据源表中,找出满足WHERE检索条件的记录,并按SELECT子句的字段列表输出查询结果,在查询结果中可以进行分组与排序。第5章数据查询 2.SELECT语句基本语法格式
SELECT字段列表
[INTO目标数据表] FROM源数据表或视图[,…n] [WHERE条件表达式] [GROUPBY分组表达式[HAVING搜索表达式]] [ORDERBY排序表达式[,…n][ASC]|[DESC]] [COMPUTE行聚合函数名(统计表达式)[,…n] [BY分类表达式[,…n]]]第5章数据查询
3.SELECT语句执行方式 使用SELECT语句进行数据查询, SQL提供了两 种执行方式,分别是:企业管理器和查询分析器。 (1)企业管理器方式 (2)查询分析器方式第5章数据查询5.2.2简单查询
简单查询是指只需熟练掌握SELECT语句的基本部分,就可以很容易的在数据库表中查出相应的信息。
1.简单查询的基本语法格式
SELECT列名1[,...列名n] FROM表名
2.具体应用第5章数据查询5.2.3使用WHERE子句 有条件查询是指在数据库中查找满足一定条件的记录。在SELECT语句中使用WHERE子句就可以实现此功能。
1.有条件查询的基本语法格式
SELECT列名1[,...列名n] FROM表名
WHERE条件表达式
2.具体应用第5章数据查询WHERE子句中可以使用的条件表达式与运算符如表所示。运算符分类运算符说明比较运算符>、>=、=、<、<=、<>、!=、!>、!<用于比较大小。!>、!<表示不大于和不小于范围运算符BETWEEN…AND、NOTBETWEEN…AND用于判断列值是否在指定的范围内列表运算符IN、NOTIN用于判断列值是否是列表中的指定值模糊匹配符LIKE、NOTLIKE用于判断列值是否与指定的字符通配格式相符空值判断符ISNULL、NOTNULL用于判断列值是否为空逻辑运算符AND、OR、NOT用于多个条件的逻辑连接第5章数据查询5.2.4使用ORDERBY子句
1.使用ORDERBY子句的基本语法格式
SELECT列名1[,...列名n] FROM表名
ORDERBY
列名1[,...列名n][ASC][DESC]
2.具体应用第5章数据查询5.2.5使用INTO子句
使用INTO子句允许用户定义一个新表,并且把SELECT子句的数据插入到新表中。
1.使用INTO子句的语法格式
SELECT列名1[,...列名n] INTO新表名
FROM表名
WHERE条件表达式
2.具体应用第5章数据查询5.2.6使用GROUPBY子句
集合函数进行的统计都是针对整个查询结果,一般情况下,还要求按照一定的条件对数据进行分组统计,GROUPBY子句就可实现功能,即按照指定的列,对查询结果进行分组统计,GROUPBY子句要写在WHERE子句的后面。
1.使用GROUPBY子句的语法格式
GROUPBY列名[HAVING条件表达式]
2.具体应用第5章数据查询5.2.7使用COMPUTEBY子句 如果既需要进行数据统计,又需要看到统计的明细,使用COMPUTEBY子句就可以实现此功能。即COMPUTEBY子句对BY后面给出的列进行分组显示,并计算该列的分组小计。但是,使用COMPUTEBY子句时必须使用ORDERBY子句,它对COMPUTEBY中指定的列进行排序。
1.使用COMPUTEBY子句的语法格式 语法格式如下:
COMPUTE集合函数[BY列名] 2.具体应用第5章数据查询5.2.8使用集合函数
使用集合函数可以实现SELECT语句的统计功能,即在进行信息查询的同时对查询结果集进行求和、求平均值、求最大值、最小值等操作。一般通过集合函数和GROUPBY子句、COMPUTE子句进行组合来实现。
1.常用的集合函数 集合函数如下页表所示。
2.具体应用第5章数据查询表--集合函数及其统计功能集
合
函
数功
能SUM([ALL|DISTINCT]列表达式)计算数据的总和AVG([ALL|DISTINCT]列表达式)
计算数据的平均值MIN([ALL|DISTINCT]列表达式)求出数据中的最小值MAX([ALL|DISTINCT]列表达式)求出数据中的最大值COUNT({[ALL|DISTINCT]列表达式}*)计算总记录数。COUNT(*)返回行数,包括含有空值的行,不能与DISTINCT一起使用CHECKSUM(*|列表达式[,...n])对计算出的数值的和进行校验BINARY_CHECKSUM(*|列表达式[,...n])对二进制的和进行校验第5章数据查询5.2.9高级查询
在SELECT语句中通常都要通过FROM子句指定查询 数据的来源,在实际应用中,数据查询不仅一个表,还往往 会涉及到多个表,就需要将多个表连接起来进行查询。这种 查询称为高级查询或多表查询。高级查询分为交叉连接查 询、内连接查询、外连接查询和自连接查询4种。
1.交叉连接查询 交叉连接查询是将两个表的内容进行组合,形成两个 表笛卡儿积,即行数为两个表行数的乘积,列为两个表列数 和的组合表。交叉连接有以下两种语法格式。
SELECT列名列表FROM表名1CROSSJOIN表名2
或者
SELECT列名列表FROM表名1,表名2第5章数据查询 2.内连接查询 内连接是将交叉连接查询结果集按照连接条件进行过 滤的结果。连接条件通常采用“主键=外键”的形式。内连接有 以下两种语法格式:
SELECT列名列表FROM表名1[INNER] JOIN表名20N表名1.列名=表名2.列名 或
SELECT列名列表FROM表名1,表名2 WHERE表名1.列名=表名2.列名第5章数据查询 3.外连接查询 在一般连接查询中,只有在两个表中匹配 的行才能出现在查询结果中出现。而在外连接查询中可 以只限制一个表,而对另外一个表不加限制(即另外一 个表中的所有行都出现查询结果中)。 外连接查询又分为左外连接查询、右外连接查询 和全外连接查询。左外连接查询是对连接条件中左边的 表不加限制;右外连接是对右边的表不加限制;全外连 接对两个表都不加限制,所有两个表中的行都会包括在 查询结果中。第5章数据查询
左外连接查询语法格式:
FROM表1LEFT[OUTER] JOIN表2ON条件表达式 右外连接查询语法格式:
FROM表1RIGHT[OUTER] JOIN表2ON条件表达式 全外连接查询语法格式:
FROM表lFULL[OUTER] JOIN表2ON条件表达式第5章数据查询 4.自连接查询 连接操作不仅可以在不同的表上进行,也可以在 同一张表内进行自身连接,即将同一个表的不同行连接 起来。自连接可以看作一张表的两个副本之间的连接。 在自连接中,必须为表指定两个别名,使之在逻辑上成 为两张表。
5.联合查询
UNION运算符用于将两个或多个检索结果合并成 一个结果,当使用UNION时,需遵循以下两个规则。 (1)所有查询中的列数和列的顺序必须相同。 (2)所有查询中按顺序对应列的数据类型必须兼容。第5章数据查询 6.嵌套查询 在SQL语言中,当一个查询语句嵌套在另一个查 询的查询条件之中时,称为嵌套查询。也就是在 SELECT语句的WHERE或HAVING子句中嵌套另一条 SELECT语句。 外层的SELECT语句称为外查询,内层的 SELECT语句称为内查询(或子查询)。 子查询要使用括号括起来。子查询分为两种:嵌 套子查询和相关子查询。子查询有几种表现形式,分别 用于比较测试、集合成员测试、存在性测试、批量比较 测试中。第5章数据查询5.3INSERT语句
INSERT语句中的SELECT子查询可用于将一个或多个其他的表或视图的值添加到表中。使用SELECT子查询可同时插入多行。5.3.1INSERT语句的语法格式
INSERTINTO<表名1> SELECT<列名1[,...列名n]> FROM<表名2> WHERE[条件表达式]5.3.2INSERT语句应用第5章数据查询5.4UPDATE语句 在SQLServer2000中,对数据的修改可以使用UPDATE语句。5.4.1UPDATE语句的语法格式
UPDATE<表名>或<视图名> SET<更新列名>=<新的表达式值> [WHERE<条件表达式>]5.4.2UPDATE语句应用第5章数据查询5.5DELETE语句 表中的无用记录,可以用DELETE语句删除。5.5.1DELETE语句的语法格式
DELETE[FROM]<表名>或<视图名> [WHERE<条件表达式>]
如果在DELETE语句中不使用WHERE子句,则表中数据将被全部删除。5.5.2DELETE语句应用第5章数据查询5.6实验与指导实验目的:
学会使用ADO.NET连接SQLServer数据库;学会使用SELECT语句创建一个查询,将查询结果显示在网页中,并将此网页发布。实验内容:
1、创建一个名为“bhd”的数据库,在该数据库中建立一个商品信息表,表名称为“spxx”,并在表中填写相应的测试数据,其结构如表所示。第5章数据查询表--spxx表结构字段名称字段描述数据类型长度是否可以为空spbh商品编号char6(不为空)spmc商品名称char50(不为空)spdj商品定价decimal9(不为空)splb商品类别char10(不为空)kcsl当前库存数量int4(不为空)xsrq最后一次销售日期datetime8√(可以为空)第5章数据查询 2、使用VisualStudio.NET创建一个名为“bhd.vbproj”的项目,在该项目中添加一个名为“cxsl.aspx”的web窗体,使用该页面显示查询结果,如图所示。第6章
视图与索引第6章视图与索引6.1视图的创建与使用6.2索引的创建与使用本章内容第6章视图与索引
视图是数据库中的一种文件形式。它可以使用与表相同的方式在SQL语句中引用的数据库中的对象。视图可以被看成是虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。
索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与书使用目录的方式很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。索引是关系数据库中基于键值提供对表的行中数据的快速访问的数据库对象。索引还可以在表的行上强制唯一惟一性。SQLServer支持聚集索引和非聚集索引。对表的主键自动进行索引。在全文搜索中,全文索引存储关于重要词和这些词在给定列中的位置的信息。第6章视图与索引6.1视图的创建与使用6.1.1视图概述
视图(View)是利用Transact-SQL查询语句,从一个或多个表或视图中引用数据的“虚拟表”。从表面上看,视图和表的结构一样,是由数据行、列组成。但实质上视图中的数据列和数据行是在用户使用该视图时,临时通过事先定义的Transact-SQL查询语句,引用自数据库中的表或其他视图。
创建视图必须依赖于已有的数据库数据。视图文件中的Transact-SQL查询语句所引用的数据表称为视图的基表。对视图的操作与对表的操作大致相同。对视图中看到的数据进行修改时,相应的基表的数据也要发生变化。若基表的数据发生变化,则这种变化也可以自动地反映到视图中。第6章视图与索引 1.视图的定义
视图(View)可以使用与表相同的方式在Transact-SQL语句中引用数据库对象。视图使用SELECT语句定义,类似于包含该语句的结果集的对象。
2.视图的功能
3.视图的特点第6章视图与索引6.1.2创建视图
1.使用命令方式创建视图 创建视图的命令如下:
CREATEVIEW[<owner>.]view_name [(column[,...n])] [WITH<view_attribute>[,...n]] ASselect_statement[WITHCHECKOPTION]
2.使用创建向导创建视图第6章视图与索引6.1.3通过视图管理数据 通过视图对数据进行更新与删除时,需要注意到两个问题:
1、执行UPDATEDELETE时所删除与更新的数据必须包含在视图结果集中;
2、如果视图引用多个表时无法用DELETE命令删除数据。若使用UPDATE则应与INSERT操作一样,保证被更新的列属于同一个表。第6章视图与索引6.1.4修改视图
1.使用命令方式修改视图
使用下列语句可以修改视图,但不影响相关的存储过程或触发器,也不能修改权限。
ALTERVIEW[<database_name>.] [<owner>.]view_name[(column[,...n])] [WITH<view_attribute>[,...n]] ASselect_statement
[WITHCHECKOPTION] 2.使用企业管理器修改视图第6章视图与索引6.1.5删除视图
如果不再需要视图或希望清除视图定义及相关联的权限,可以删除该视图。删除视图后,表和视图所引用的数据不受影响,但任何与已删除视图对象相关的查询将会失败。
1.使用命令方式删除视图
从当前数据库中删除一个或多个视图,可以执行DROPVIEW命令,语法格式如下。
DROPVIEW{view}[,...n]
2.在企业管理器中删除视图第6章视图与索引6.2索引的创建与使用6.2.1索引的概念
SQLServer中的索引是以B-树结构来维护。B-树是一个多层次自维护的结构,一个B-树包括一个顶层,称为根节点(RootNode0),多个中间层(Intermediate),一个底层(Level0),底层中包括若干叶节点(LeafNode)。图中每个方框代表一个索引页,B-树的层次越多,宽度越大,读取记录所要访问的索引页就越多,数据查询的性能将随索引列层次数目的增加而降低。第6章视图与索引6.2.2索引分类
SQLServer的数据库中按存储结构的不同将索引分为两类,聚集索引(ClusteredIndex)和非聚集索引(NonclusteredIndex)。
聚集索引对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上。聚集索引查找数据速度很快。它所需要的空间相当于原表中数据所占空间的1.2倍。一个表只能有一个聚集索引。
第6章视图与索引
非聚集索引是与表的数据完全分离的存储结构,无需将物理数据页中的数据按列排序。非聚集索引将行定位器按关键字的值排序。这个顺序与表的行在数据页中的排序是不匹配的。由于非聚集索引使用索引页存储,因此它比聚集索引需要更多的存储空间,且检索效率更低。
在实际操作中,可在数据库设计器中创建三种类型的索引:惟一索引、主键索引和聚集索引。第6章视图与索引6.2.3创建索引
创建索引时,表中可以没有任何数据。所有者可通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。如果需要创建不依赖于约束的索引,可以使用CREATEINDEX语句。默认情况下,如果未指定聚集选项,将创建非聚集索引。创建索引时有如下限制:
只有表或视图的所有者才能创建索引。每个表中只能创建一个聚集索引。包括PRIMARYKEY或UNIQUE约束创建的所有索引在内,每个表可以创建的非聚集索引最多为249个。同一个索引中包含的任何长度固定的列的宽度总合不能超过900字节。同一索引最多只能包含有16个列。第6章视图与索引
在大型数据表上生成索引的首选方法是先创建聚集索引,然后生成非聚集索引。删除所有索引时,首先删除非聚集索引,最后删除聚集索引。若先创建了任何非聚集索引,那么在创建聚集索引时,将重建表上现有的非聚集索引。 1.使用命令方式创建索引
CREATEINDEX既可以创建一个可改变表的物理顺序的聚集索引,也可以创建只提高查询性能的非聚集索引,其语法如下。第6章视图与索引CREATE[UNIQUE][CLUSTERED|NONCLUSTERED] INDEXindex_nameON{table|view} (column[ASC|DESC][,...n]) [WITH[PAD_INDEX] [[,]FILLFACTOR=fillfactor] [[,]IGNORE_DUP_KEY] [[,]DROP_EXISTING] [[,]STATISTICS_NORECOMPUTE] [[,]SORT_IN_TEMPDB] ] [ONfilegroup]第6章视图与索引
2.使用企业管理器创建索引
3.在表设计器中创建索引6.2.4修改和删除索引
删除所有索引时,首先删除非聚集索引,最后删除聚集索引,这样就无需重建索引。
1.用企业管理器查看索引
2.使用命令方式删除索引
DROPINDEX命令可以删除一个或多个当前数据库中的索引,语法格式如下。
DROPINDEX'table.index|view.index'[,...n]
3.使用企业管理器删除索引第6章视图与索引6.3实验与指导实验目的:
创建视图,并通过VB.NET实现对视图的调用。实验内容:
创建名为view_jgls的视图,显示商品信息表中的商品编号、商品名称等信息。编写名为stsl.aspx的页面文件,并利用VB.NET在该页面中实现调用view_jgls视图,并查询商品价格的历史记录。查询执行前界面如图a所示,查询执行后界面如图b所示。第6章视图与索引图a图b第7章
存储过程与触发器第7章存储过程与触发器7.1存储过程的创建与使用7.2触发器的创建与使用本章内容第7章存储过程与触发器
存储过程和触发器都是SQLServer的数据库对象。存储过程的独立于表存储,同批处理相比具有永久有效性。用户可以使用存储过程来完善应用程序,使得程序的执行效率更高。而触发器主要的用途是保障数据完整性,并可实现复杂的逻辑校验规则。7.1存储过程的创建与使用7.1.1存储过程概述
1.存储过程的定义 存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集合,经编译后按照给定名称存储在数据库中,用户可以通过指定存储过程的名称,并给出参数(若该存储过程带有参数)来执行它。第7章存储过程与触发器 2.存储过程的组成
创建存储过程时,需要确定存储过程的三个组成部分:存储过程名称,包括所有的输入参数以及传给调用者的输出参数。被执行的针对数据库的操作语句以及调用其他存储过程的语句。返回给调用者的状态值,以指明调用是成功还是失败。
3.存储过程的优点
4.存储过程类型分类第7章存储过程与触发器7.1.2创建存储过程
创建存储过程有两种方式:命令方式和创建向导方式。
1.使用命令方式创建存储过程 用CreateProcedure命令,语法规则如下:
CREATEPROC[EDURE]procedure_name[;number] [{@parameterdata_type} [VARYING][=default][OUTPUT] ][,...n] [WITH{RECOMPILE|ENCRYPTION |RECOMPILE,ENCRYPTION}] [FORREPLICATION] ASsql_statement[...n] 2.使用创建向导创建存储过程第7章存储过程与触发器7.1.3修改存储过程
修改以前用CREATEPROCEDURE命令创建的存储过程,并且不改变权限的授予情况以及不影响任何其他的独立的存储过程或触发器常使用ALTERPROCEDURE命令。其语法规则如下。
ALTERPROC[EDURE]procedure_name[;number] [{@parameterdata_type}[VARYING][=default] [OUTPUT]][,...n] [WITH {RECOMPILE|ENCRYPTION |RECOMPILE,ENCRYPTION}] [FORREPLICATION] AS
sql_statement[...n]第7章存储过程与触发器7.1.4删除存储过程
删除存储过程使用drop命令。该命令可将一个或多个存储过程或者存储过程组从当前数据库中删除,其语法规则如下。
DROPPROCEDURE{procedure}}[,…n]
另外,也可以使用企业管理器实现删除存储过程。第7章存储过程与触发器7.2触发器的创建与使用7.2.1触发器概述
1.触发器的定义
触发器是修改指定表中的数据时执行的存储过程。创建触发器的目的是强制不同表中逻辑相关数据的引用完整性或一致性。
2.触发器的主要功能
3.触发器的类型第7章存储过程与触发器7.2.2创建触发器
创建触发器有两种方式:命令方式和企业管理器方式。
1.使用命令方式创建触发器 创建触发器命令的语法见下页。
2.使用企业管理器创建触发器
第7章存储过程与触发器CREATETRIGGERtrigger_nameON{table|view}[WITHENCRYPTION]{
{{FOR|AFTER|INSTEADOF} {[INSERT][,][UPDATE][,][DELETE]} [WITHAPPEND][NOTFORREPLICATION]
AS[{IFUPDATE(column)[{AND|OR}UPDATE(column)][...n]|IF(COLUMNS_UPDATED(){bitwise_operator}updated_bitmask){comparison_operator}column_bitmask[...n]
}]
sql_statement[...n]
}}
第7章存储过程与触发器7.2.3修改触发器 修改触发器的方法有两种方式:命令方式和企业管理器方式。
1.使用命令方式修改触发器 修改触发器命令的语法见下页。
2.使用企业管理器修改触发器第7章存储过程与触发器ALTERTRIGGERtrigger_nameON(table|view)[WITHENCRYPTION]{{(FOR|AFTER|INSTEADOF) {[DELETE][,][INSERT][,][UPDATE]}[NOTFORREPLICATION]
AS
sql_statement[...n]
}
|{(FOR|AFTER|INSTEADOF){[INSERT][,][UPDATE]}
[NOTFORREPLICATION]
AS
{IFUPDATE(column)
[{AND|OR}UPDATE(column)]
[...n]
|IF(COLUMNS_UPDATED(){bitwise_operator}updated_bitmask)
{comparison_operator}column_bitmask[...n]
}
sql_statement[...n]
}}第7章存储过程与触发器7.2.4删除触发器
当不再需要某个触发器时,可将其删除。删除触发器时,将从sysobjects和syscomments系统表中删除有关触发器的信息。触发器被删除时,它所基于的表和数据并不受影响。删除表将自动删除其上的所有触发器。删除触发器的权限默认授予该触发器所在表的所有者。
1.使用命令方式删除触发器 删除触发器命令的语法如下:
DROPTRIGGER{trigger}[,...n]
2.使用企业管理器删除触发器第7章存储过程与触发器7.3实验与指导实验一:利用VB.NET调用存储过程实验目的: 创建存储过程,并利用VB.NET实现对存储过程的调用。 实验内容: 创建名为sp_xzjgls的存储过程,在价格历史中插入记录。编写名为x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业智能化与数字化转型策略
- 工业废水处理技术及其应用
- 工业机器人技术的智能化升级与改造
- 工业废水处理的新技术与策略
- 工业自动化中的数据驱动决策支持系统
- 工业物联网的挑战与机遇
- 工业生产线的自动化设备温控管理
- 工业遗址改造为现代建筑的策略
- 工业节能减排的技术创新与效益
- 工业设计与人机交互的融合
- 2025年江西江铜集团招聘笔试参考题库含答案解析
- 阿尔茨海默病源性轻度认知障碍诊疗中国专家共识2024解读
- 2025年免疫规划工作计划
- 2024年-2025年公路养护工理论知识考试题库
- 针刺伤预防与处理-2024中华护理学会团体标准
- 四年级校本课程教材-全册(自编教材)
- 酒店与代理合作协议书范文模板
- 天然气的高压物性课件
- 多模态数据融合方法
- JT∕T 791-2010 公路涵洞通道用波纹钢管(板)
- JB∕T 11864-2014 长期堵转力矩电动机式电缆卷筒
评论
0/150
提交评论