您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > SQLServer教案
1第1章SQLServer概述1.1SQLSQL(StructuredQueryLanguage),即结构化查询语言,是关系数据库的标准语言,SQL是一个通用的、功能极强的关系数据库语言。其功能并不仅仅是查询。当前,几乎所有的关系数据库管理系统软件都支持SQL,许多软件厂商对SQL基本命令集还进行了不同程度的扩充和修改。1.2SQL的特点SQL之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简洁易学的语言。SQL集数据查询(DataQuery)、数据操纵(DataManipulation)、数据定义(DataDefinition)和数据控制(DataControl)功能于一体,主要特点包括:综合统一:SQL集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式,插入数据,建立数据库;对数据库中的数据进行查询和更新;数据库重构和维护;数据库安全性、完整性控制等一系列操作要求。高度非过程化:非关系数据模型的数据操作语言是“面向过程”的语言,用“过程化”语言完成某项请求,必须指定存取路径。而用SQL进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径。存取路径的选择以及SQL的操作过程由系统自动完成。这不但大大减速轻了用户负担,而且有利于提高数据独立性。面向集合的操作方式:非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。SQL采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。以同一种语法结构提供多种使用方式:SQL既是独立的语言,又是嵌入式语言。语言简洁,易学易用:SQL功能极强,但由于设计巧妙,语言十分简洁,完成核心功能只用了9个动词,如1所示。SQL接近英语口语,因此容易学习,容易使用。表1SQL的动词SQL功能动词数据查询SELECT数据定义CREATE、DROP、ALTER数据操纵INSERT、UPDATE、DELETE数据控制GRANT、REVORE21.3SQLServer的结构一、SQLServer是一个单一进程多线程的关系型数据库二、SQLServer是以Client/Server为设计结构三、Client/Server数据库的两个API四、SQLServer支持在客户端以Net-Library或ODBC存取服务器端五、支持分布式数据库结构1.4SQLServer的性能表2SQLServer的性能对象范围数据库32767个数据库,最小为1MB,最大为1TB表每个数据库最多有20亿个表,每列的最大字节数为8060(文本和图像列除外)列每表最多1024列索引每表一个簇式索引,249个非簇式索引,一个复合索引最多有16个索引关键字触发器每表最多有3个触发器,分别用于insert、update和delete存储过程一个存储过程可以有1024个参数和最多32级嵌套用户连接32767个锁定及打开的对象20亿打开的数据库32767个1.5SQL分布管理框架介绍1.6关系数据库模型简介关系数据库是一种所有用户可见数据都按表的形式组织起来的表,且所有库操作都针对这些表的数据库,关系数据模型是以集合论中的关系(relation)概念为基础发展起来的数据模型。当前实际的数据库系统中所支持的主要模型有:层次模型网状模型关系模型在层次数据模型中,要查找一个记录必须从根记录开始,按给定条件沿一个层次路径查找所需要的记录。在网状数据模型中,要查找语句中不但要说明查找的对象,而且还要规定存取的路径,操作语句也比较繁琐,而关系数据库,通过关系,按给定的选择条件选出符合条件的元组,比较灵活。关系数据库是应用数学方法来处理数据库数据的,与层次模型和网状模型相比,有很大改进。表现在:面向集合的处理,可以一次操作多个行数据的逻辑独立性,使得应用程序不随数据库的改变而改变数据的自动导航,数据的访问路径由数据库优化器决定,方便了用户操作关系模型的RDBMS的基础,它包括三部分:(1)关系模型的数据结构关系模型的数据结构为单一的数据结构—由行和列组成的二维表,任意两行互不相同,3列值是不可分的数据项,行和列的次序可任意。(2)关系模型的完整性关系模型的完整性包括实体完整性、参照完整性和用户定义的完整性。实体完整性是指用主键来惟一标志表中行和列,主键的任一属性不能为空。参照完整性指外键或者为空,或者等于它所参照的主键的某个值。用户定义的完整性指对某一具体的数据库的约束条件。(3)关系模型的数据操作关系模型的操作表达能力非常强大,定义了很多的操作,其中主要有选择、投影、集合、连接等操作。第2章SQLServer的安装及基本操作一、SQLServer2000的硬件和软件安装要求二、SQLServer的安装内容每一个SQLServer都包含两种类型的数据库:系统数据库和用户数据库。系统数据库中存储有SQLServer的整体信息,SQLServer使用系统数据库操作和管理系统。用户数据库是用户自己创建的数据库。在安装SQLServer时,SQLServer安装程序创建系统数据库和示例数据库。(1)master数据库(2)model数据库(3)msdb数据库(4)tempdb数据库(5)pubs示例数据库三、SQLServer的安全性四、安装SQLServer五、SQL群组中各项目的作用六、SQLServer服务器端的操作七、SQLServer客户端的操作界面第3章数据库的基本操作3.1文件和文件组3.1.1文件SQLServer2000使用一组操作系统文件映射数据库。数据库中的所有数据和对象(如表、存储过过程、触发器和视图)都存储在下列的操作系统文件中。主要数据文件:该文件包含数据库的启动信息,并用于存储数据。每个数据库都有一个主要数据文件。次要数据文件:这些文件含有不能置于主要数据文件中的所有数据。如果主文件可以包含数据库中的所有数据,那么数据库就不需要次要数据文件。有些数据库可能足够大故需要多个次要数据文件,或使用位于不同磁盘驱动器上的辅助文件将数据扩展到多个磁盘。事务日志:这些文件包含用于恢复数据库的日志信息。每个数据库都必须至少有一个日志文件3.1.2文件组3.2创建数据库3.2.1用企业管理器以图形化界面建立数据库3.2.2在查询分析器窗口中用T-SQL命令创建数据库4CREATEDATABASEtsing_DBONPRIMARY(NAME=tsing_DBData,FILENAME=’C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\tsing_DB.mdf’,SIZE=25MB,MAXSIZE=50MB,FILEGROWTH=2MB)LOGON(NAME=tsing_DBLog,FILENAME=‘C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\tsing_DB.ldf’,SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=25%)3.2.3事务日志在SQLServer2000中,数据库必须至少包含一个数据文件和一个事务日志文件。数据和事务日志信息从不混合在同一文件中,并且每个文件只能由一个数据库使用。SQLServer使用各数据库的事务日志来恢复事务。事务日志是数据库中已发生的所有修改和执行每次修改的事务的一连串记录。3.2.4查看数据库信息(1)用企业管理器以图形化界面查看数据库信息(2)在查询分析器窗口中用T-SQL命令查看数据库信息EXECsp_helpdbdatabase_name3.3管理数据库3.3.1打开数据库usedatabase_name3.3.2增加数据库容量3.3.3查看目前数据库选项设定及修改3.3.4缩减数据库容量3.3.5更改数据库名称EXECsp_renamedbOldName,NewNAMEGO3.3.6查看目前SQLServer上共有几个数据库usemastergoselectnamefromsysdatabases3.3.7数据库的删除DROPDATABASEdatabase_name[,database_name…]或sp_dbremovedatabase_name或通过图形化界面进行数据库的删除。5第4章数据库中表的建立4.1表的概念表是由数据记录按一定的顺序和格式构成的数据集合,不同表的集合构成数据库。表是数据库的对象之一,表中包含有多条记录,而记录中有多个字段,字段是描述事物的属性。SQLServer对表格有如下限制:每个数据库里最多有20亿个表每个表格仅可以有1个簇索引,249个非簇索引每个表格最多有1024个字段表格中每条记录最大为8060字节,但不包括text字段和image字段,因为它们有独立的存储页链。数据库逻辑设计包含了数据规范化和各表格之间关联的建立,在SQLServer中有3个影响执行速度效率的主要因素:数据库逻辑设计索引设计查询命令设计4.2SQLServer的数据类型4.3数据库中表的操作一、数据库中表的创建例4-1在tsing_DB1数据库中创建一张用于学生信息管理的表stud_info,表中包括的学生信息分别为:学生学号、学生姓名、出身年月、性别、家庭地址、电话号码、邮政编码、所在系代号、每月生活补贴。用户可以在SQL查询分析器窗口中的查询页下输入以下内容:CREATETABLEtsing_DB1.dbo.stud_info(stud_idintCONSTRAINTperid_chkNOTNULLPRIMARYKEY,namenvarchar(5)NOTNULL,birthdaydatetime,gendernchar(1),addressnvarchar(20),telcodechar(12),zipcodechar(6)CONSTRAINTzip_chkCHECK(zipcodeLIKE‘[0-9][0-9][0-9][0-9][0-9][0-9]’),DeptCodetinyintCONSTRAINTDeptCode_chkCHECK(DeptCode100),SalarymoneyDEFAULT260)例4-2在tsing_DB1数据库中创建一张学生成绩表,以方便学生成绩的统计。该表包含的字段依次为:学年年度、学生学号、数学成绩、英语成绩、计算机成绩、化学成绩和物理成绩。CREATETABLEtsing_DB1.dbo.stud_score(yearintNOTNULL,stud_idintNOTNULL,math_scorenumeric(4,1)CHECK(math_score=0andmath_score=100),engl_scorenumeric(4,1)CHECK(engl_score=0andengl_score=100),comp_scorenumeric(4,1)CHECK(comp_score=0andcomp_score=100),chem_scorenumeric(4,1)CHECK(chem_score=0andchem_score=100),6phys_scorenumeric(4,1)CHECK(phys_score=0andphys_score=100),CONSTRAINTpk_chkPRIMARYKEY(year,stud_id))例4-3带有参照性约束的表的创建在数据库tsing_DB2中创建一个用于学校实验室仪器管理的试验仪器管理表,表名为device_manage,表中包括的信息有:仪器编号、仪器名称、仪器所属试验室的实验室名称、同种仪器的数量、该仪器的购买价格及该仪器的供货商。CREATETABLEtsing_DB2.dbo.device_name(dev_idvarchar(15)CONSTRAINTpk_chkNOTNULLPRIMARYKEY,dev_
本文标题:SQLServer教案
链接地址:https://www.777doc.com/doc-2850354 .html