《SQLserver2008数据库应用与开发教程(第二版)ppt课件汇总(完整版).ppt》由会员分享,可在线阅读,更多相关《SQLserver2008数据库应用与开发教程(第二版)ppt课件汇总(完整版).ppt(380页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SQLserver2008数据库应用数据库应用与开发教程与开发教程(第二版第二版)1.1 SQL server 2008概述概述n1.1.1SQLserver2008的体系结构的体系结构q(一)(一)MicrosoftSQLServer2008系统由系统由4个部分个部分组成组成q(二)这(二)这4个部分被称为个部分被称为4个服务个服务n数据库引擎数据库引擎nAnalysisServicesnReportingServicesnIntegrationServicesn1.1.2数据库和数据库对象数据库和数据库对象n1.数据库的类型和特点qMicrosoftSQLServer2008系统提供了两种
2、类型系统提供了两种类型的数据库的数据库q(一)系统数据库(一)系统数据库q(二)用户数据库(二)用户数据库1.1 SQL server 2008概述概述n2.数据库对象数据库对象q主要的数据库对象包括数据库关系图、表、视图、主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、同义词、存储过程、函数、触发器、程序集、类型、规则和默认值等。规则和默认值等。1.1 SQL server 2008概述概述1.2 SQL server 2008的安装的安装n1.1.3SQLServer2008的新增特点的新增特点n(1)简单的数据加密n(2)外键管理n(3)增强了审
3、查n(4)改进了数据库镜像n(5)加强了可支持性n(6)热添加CPU1.2 SQL Server 2008的安装的安装n1.2.1系统版本系统版本qSQLServer2008企业版企业版qSQLServer2008标准版标准版qSQLServer2008工作组版工作组版qSQLServer2008网络版网络版qSQLServer2008开发版qSQLServer2008系统的Express版本qSQLServer移动版1.2.2 SQL Server 2008的运行环境要求的运行环境要求n硬件环境要求n处理器、内存和操作系统要求1.2.3 Microsoft SQL server 2008的的
4、安装安装n1.安装安装SQLserver2008标准版之前应该注意标准版之前应该注意的问题的问题q增强物理安全性增强物理安全性q使用防火墙使用防火墙q隔离服务隔离服务q禁用禁用NetBIOS和服务器消息块和服务器消息块n2.安装安装MicrosoftSQLserver2008标准版的标准版的步骤步骤1.2.3 Microsoft SQL server 2008的的安装安装1.3 SQL server 2008的配置的配置n1.3.1注册服务器注册服务器q1.注册服务器注册服务器q2.修改服务器的注册修改服务器的注册q3.删除服务器删除服务器n1.3.2配置服务器选项配置服务器选项n1.4.1S
5、QLServerManagementStudion1.4.2BusinessIntelligenceDevelopmentStudion1.4.3SQLServerProfilern1.4.4SQLServerConfigurationManagern1.4.5DatabaseEngineTuningAdvisorn1.4.6实用工具实用工具1.4 SQL server 2008常用的管理工具常用的管理工具第第 2 章章数据库的建立与维护数据库的建立与维护在SQLServer2008中,用户如何访问及使用数据库,就需要正确了解数据库中所有对象及其设置。数据库就像一个容器,它里面除了存放着数据的
6、表之外,还有视图、存储过程、触发器、约束等数据库对象。数据库管理的核心任务包括创建、操作和维护数据库。本章的学习目标:n了解系统数据库的作用了解数据库对象及构成掌握数据库快照的使用掌握用SSMS和T-SQL创建数据库的方法掌握用SSMS和T-SQL修改、删除数据库的操作掌握如何查看数据库状态熟悉如何对数据库中的物理空间进行科学的设置掌握数据库的分离和附加2.1 数据库的组成n在SQLServer2008中,数据库是表、视图、存储过程、触发器等数据库对象的集合,是数据库管理系统的核心内容。为了更好地学习并理解数据库,首先来了解一个数据库的组成及其数据库中的数据文件、事务日志文件及文件组等基本概念
7、。2.1.1系统数据库这些数据库分别是master、model、msdb、tempdb和resource数据库。这些系统数据库对于用户来说,不要随意修改它们。1.master数据库Master数据库用于记录SQLServer实例的所有系统级信息,是SQLServer的核心,不能对其进行直接修改,应当对其定期进行备份,如果Master数据库变得不可用,那么SQLServer数据库引擎将无法启动。2.model数据库model数据库用作SQLServer2008实例上创建的所有数据库的模板,若对model数据库进行修改,都将应用于以后创建的用户数据库中。n3.msdb数据库nmsdb数据库用于SQ
8、LServer2008代理计划警报和作业,是SQLServer中的一个Windows服务。n4.resource数据库nresource数据库是一个只读和隐藏的数据库,它包含了SQLServer2008中的所有系统对象,对于resource数据库是唯一没有显示在其中的系统数据库,这是因为它在sys框架中存在。2.1.2 用户数据库n用户数据库是用户根据自己的管理需求进行创建的数据库,便于自己管理相应的数据。例如:图书馆可以针对图书的管理创建图书管理数据库,大型超市可以针对货品创建超市管理数据库等。2.1.3 示例数据库n示例数据库是系统为了让用户学习和理解SQLServer而设计的。North
9、wind和pubs示例数据库是SQLServer2000中的示例数据库;AdventureWorks示例数据库是SQLServer2005中的示例数据库。2.1.4 数据库文件及其文件组n在SQLServer2008中,一个数据库至少需要有一个数据文件和一个事务日志文件。也可以有多个数据文件和多个事务日志文件。数据库中的数据文件用于存放数据库的数据和各种对象,而事务日志文件用于存放事务日志。数据库中存放数据文件和日志文件的默认位置为:C:ProgramFilesMicrosoftSQLServerMSSQL10.MSSQLSERVERMSSQLDATA的文件夹下。数据库的文件组成数据库的文件组
10、成:(:(通常可以由三类文件组成)主数据文件:默认的扩展名为.mdf辅助数据文件:默认的扩展名为.ndf事务日志文件:默认的扩展名为.ldf 配置事务日志:配置事务日志:建立好数据库之后,在进行具体的操作之前应当首先配置事务日志。建立好数据库之后,在进行具体的操作之前应当首先配置事务日志。事务日志文件记录事务日志文件记录SQLServer对这个数据库的操作,以便于在系统出现对这个数据库的操作,以便于在系统出现故障时恢复数据库。故障时恢复数据库。存储数据的方法:存储数据的方法:日志文件日志文件:.ldf数据文件数据文件:.mdf or.ndf区区:8 个连续的个连续的 8 KB 页页页页:8 K
11、B文件组:文件组就是文件的逻辑集合。文件组也分为主要文件组、用户定义文件组和默认文件组。文件组可以把一些指定的文件组合在一起,方便管理和分配数据。数据库对象:数据库对象是存储、管理和使用数据不同结构形式,主要包括表、视图、存储过程、触发器、索引等。使用SSMS图形界面创建数据库在SQLServer2008中,通过SQLServerManagementStudio创建数据库使用Transact-SQL语句创建数据库该命令的语法如下该命令的语法如下:CREATEDATABASEdatabase_nameONPRIMARY,n,nLOGON,nFORRESTORE:=(NAME=logical_fi
12、le_name,FILENAME=os_file_name,SIZE=size,MAXSIZE=max_size|UNLIMITED,FILEGROWTH=growth_increment),n:=FILEGROUPfilegroup_name,n数据库的查看和修改用SSMS图形界面进行查看和修改在【对象资源管理器】窗口中,展开【数据库】节点,用右键单击目标数据库(如:学生信息StuInfo数据库或Test数据库等)从弹出的快捷菜单中选择【属性】命令,弹出【数据库属性StuInfo】的“常规”窗口使用T-SQL语句进行修改数据库使用ALTERDATABASE语句修改数据库语法格式如下:ALTE
13、RDATABASEdatabaseADDFILE,.,nTOFILEGROUPfilegroup_name|ADDLOGFILE,.,n|REMOVEFILElogical_file_name|ADDFILEGROUPfilegroup_name|REMOVEFILEGROUPfilegroup_name|MODIFYFILE删除数据库使用SQLServerManagementStudio图形化界面删除数据库使用Transact-SQL语句删除数据库使用Transact-SQL语句删除数据库的语法如下:DROP DATABASE database,n2.2.5 数据库操作n通过前面的介绍,可以
14、掌握数据库的创建方法,如何修改数据库大小、名称和属性,如何删除数据库和查看数据库状态及信息,这些都是针对数据库进行的操作。除了这些,常见的操作还包括本节介绍的分离数据库和附加数据库2.2.6 复制和移动数据库nSQLServer具有强大的复制功能,除了将数据和数据库对象从一个数据库复制并准确分发的另一个数据库中,还要实行数据库之间的同步。SQLServer的复制分为三种:q1.快照复制q2.事务复制q3.合并复制第3章 表的建立与维护本章的学习目标:n掌握用SSMS和T-SQL创建表n熟悉各种列数据类型n掌握列的各种属性n掌握用SSMS和T-SQL修改、删除表n熟悉保持数据完整性的各种约束n掌
15、握根据完整性规则的要求使用SSMS和T-SQL设置表的主键、外键和约束等3.1 表概述n在使用数据库的过程中,接触最多的莫过于表。表是存储数据的地方,是一种结构化的文件,可用来存储一些特定数据类型的数据,是数据库中最重要的部分。3.1.1 什么是表n在关系数据库中,每一个关系都表现为一张表。表是用来存储数据和操作数据的逻辑结构,关系数据库中的所有数据都表现为表的形式,由列和行组成,如图3-1所示。关系数据库由表、具体查询等对象组成,而查询等对象又是通过表来呈现的。表的数据类型种类种类数据类型数据类型数字数字整数整数int,bigint,smallint,tinyint精确数值精确数值decim
16、al,numeric近似数值近似数值float,real货币货币money,smallmoney日期和时间日期和时间datetime,smalldatetime字符字符Non-Unicodechar,varchar,varchar(max),textUnicodenchar,nvarchar,nvarchar(max),ntext二进制二进制binary,varbinary,varbinary(max)图像图像image全局标识符全局标识符uniqueidentifierXMLxml特殊特殊bit,cursor,timestamp,sysname,table,sql_variant使用SQLS
17、erverManagementStudio创建表使用T-SQL语句创建表CREATE TABLE database_name.owner.|owner.table_name (|column_name AS computed_column_expression|,n)ON filegroup|DEFAULT TEXTIMAGE_ON filegroup|DEFAULT:=column_name data_type DEFAULT constant_expression|IDENTITY(seed,increment ).n 3.2 列数据类型n在计算机中,按照数据描述信息的含义,将数据分为不同
18、的种类,称之为数据类型。3.2.1 数据类型的分类nSQLServer提供两类数据类型:一类是用户定义数据类型,用户可以根据需要创建自己的数据类型,会对数据组织带来一定的好处。一类是基本数据类型,是SQLServer系统提供的数据类型。本书只介绍基本数据类型。种种 类类数数 据据 类类 型型数字数据类型数字数据类型int,bigint,smallint,tinyint,decimal,numeric,float,real,money,smallmoney,bit,bit字符数据类型字符数据类型char,varchar,nchar,nvarchar,ntext text日期和时间日期和时间dat
19、etime,smalldatetime,date,time,datetime2,datetimeoffset,date,time,datetime2,datetimeoffset二进制数据类型二进制数据类型binary,varbinary,image,image其他数据类型其他数据类型uniqueidentifier,xml,timestamp,sql_variantSQL ServerSQL Server中常用的数据类型中常用的数据类型3.2.2 数字数据类型数字数据类型数字数据类型表示符号表示符号用途用途精确数字类型精确数字类型整数数据类型整数数据类型intint、bigint、small
20、int、tinyint存储数字数据,直接进行数据运算存储数字数据,直接进行数据运算位数据类型位数据类型bitbit用于一些条件逻辑判断用于一些条件逻辑判断货币数据类型货币数据类型moneymoney、smallmoney存储货币数据存储货币数据近似数字类型近似数字类型十进制小数型十进制小数型decimaldecimal、numeric存储带固定精度和位数的小数存储带固定精度和位数的小数浮点数据类型浮点数据类型floatfloat、real存储范围非常大的数字,用于表示指定数的大存储范围非常大的数字,用于表示指定数的大致数据值致数据值3.2.3 字符数据类型字符类型字符类型表示符号表示符号用法用
21、法ANSIANSI字符字符charchar存储指定长度的字符串存储指定长度的字符串varcharvarchar存储可变长度字符存储可变长度字符texttext存储大量非存储大量非Unicode字符字符UnicodeUnicode字符字符ncharnchar用于存储用于存储Unicode字符字符nvarcharnvarchar与与varchar类似,存储可变长度类似,存储可变长度Unicode字符字符ntextntext与与text类似,存储大量类似,存储大量Unicode字符数据字符数据3.2.4 日期时间数据类型n日期时间数据类型用于存储日期和时间信息。n在SQLServer2008之前的版
22、本中,日期时间类型只包括datetime和smalldatetime两种类型。它们的差别在于其表示的日期和时间范围不同、时间精确度也不同。其中最常用的是datetime型数据。3.2.5 二进制数据类型二进制数据类型用于表示位数据流,包括binary(固定长度)、varbinary(可变长度)和image三种。qbinary用于存储固定长度的二进制数据;qvarbinary用于存储可变长度的二进制数据,若存储的二进制大于8000字节,就必须使用varbinary(max)数据类型;qimage数据类型用于存储图像信息,在SQLServer2008中,只有在数据的字节数超过了8KB的情况下,才使
23、用image数据类型,其他情况应使用varbinary(max)代替,其中max最大可以达到231-1字节;3.2.6 其他数据类型n除了上述数据类型外,SQLServer还提供了其他几类常用数据类型,使用这些数据类型可以完成特殊数据对象的定义、存储和使用:qtimestampqsql_variant类型quniqueidentifier唯一标识符类型3.2.7 数据类型的选择n数据的使用情况:数据是用于数学运算?表示日期或者时间?存储文本信息?不同的使用情况决定了不同数据类型的选择;n数据的大小:选择的数据类型能否存放期望存储的最大值。例如,选择整型数据,要根据数据的取值决定使用INT型数据
24、还是BIGINT型数据;选择字符型数据,需要考虑实际需要的最大字符长度;n正确的存储信息:例如使用integer数据类型存储货币值,将造成小数部分丢失,这将导致不正确的值;n非英语字符:在SQLServer2008系统中,如果某些列需要存储非英语字符(如中文字符),建议最好使用NCHAR、NVARCHAR数据类型。3.3 列的其他属性n3.3.1默认约束q默认约束指用户在进行插入操作时,没有显示地为列提供数据,那么系统将把默认值赋给该列。默认值约束所提供的默认值可以为常量、函数、系统函数、空值等,表中的每一列只能定义一个默认约束,对于具有IDENTITY属性和timestamp数据类型的字段,
25、不能使用默认约束,同时,定义的默认值长度不允许大于对应字段所允许的最大长度。DEFAULT约束使用SSMS图形化界面创建默认约束用Transact-SQL语句创建默认约束。其语法形式如下:CONSTRAINT constraint_name DEFAULT constraint_expression FOR column_name 3.3.2 空值约束n空值约束即是否允许该字段的值为NULL,即空值。主键列不允许为空值,否则就失去了唯一标识的意义。NULL约束使用SSMS图形化界面设置空值约束。用Transact-SQL语句创建空值约束。其语法形式如下:直接在相应的语句后书写 NULL|NOT
26、 NULL 3.3.3 IDENTITY 的应用nidentity表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。比如有个表A,它的自增列是id,当向A表插入一行数据后,如果插入数据后自增列的值自动增加至101,则通过selectidentity得到的值就是101。3.4 向表中添加数据n首先在需要添加数据的表上单击鼠标右键,从弹出的快捷菜单中选择“打开表”命令,出现如图3-8所示的“表”对话框,在其中可向打开的表添加数据。本节向各个表中添加的数据如表3-53-7所示。3.5 查看表 n3.5.1查看表中的有关信息q打开指定的数据库,
27、在需要查看的表上单击鼠标右键,从弹出的快捷菜单中选择“属性”命令,将打开“表属性”对话框,如图3-10所示。“常规”选项页中显示了该表格的定义,包括存储结构、当前的连接及名称等属性,该选项页中显示的属性不能修改。3.5.2 查看表中存储的数据n在表“课程表”上单击鼠标右键,在弹出的快捷菜单中选择“打开表”命令,显示“课程表”中的数据,如图3-11所示。3.5.3 查看表与其他数据对象的依赖关系n在要查看的表上单击鼠标右键,从弹出的快捷菜单中选择“查看依赖关系”命令,打开“对象依赖关系”对话框,该对话框显示了该表依赖的其他数据对象和依赖于此表的依赖对象。例如,查看“选课表”的依赖对象,如图3-1
28、2所示的对话框显示了选课表依赖于课程表与学生表。3.6 修改表n3.6.1使用SSMS图形化界面修改表q在“对象资源管理器”窗口中,展开“数据库”节点,再展开具体选择的数据库,然后展开“表”节点,用右键单击要修改的表,从弹出的快捷菜单中选择“设计”命令,打开“表设计器”,即可对表的定义进行修改,方法同创建表。3.6.2 使用T-SQL语句修改表nALTERTABLE表名n(ALTERCOLUMN列名列定义,nADD列名数据类型约束,nnDROP列名,nnADDCONSTRAINT约束名约束,n)n例【3-2】:在AdventureWorks数据库中,在Sales下创建名为CustomerOrd
29、ers的表;创建OrderID、OrderDate、CustomerID、Notes列,并定义其数据类型为int、datetime、int、nvarchar(200)和可空性(Notes列为空),指定OrderID列为标志列。nT-SQL语句如下:nCREATETABLESales.CustomerOrdersn(OrderIDintidentity(1,1),nOrderDatedatetime,nCustomerIDint,nNotesnvarchar(200)NULL);n例【3-3】:基于例3-2定义的Sales.CustomerOrders表,添加列和更改列的可空性。n-修改Sale
30、s.CustomerOrders表的定义n-在表中添加名为SalesPersonID的列,并定义其数据类型为int,指其不可空nALTERTABLESales.CustomerOrdersnADDSalesPersonIDintNOTNULLnGOn-修改Sales.CustomerOrders表的定义n-修改Notes列,并定义其数据类型为nvarchar(200),指定其不可空nALTERTABLESales.CustomerOrdersnALTERCOLUMNNotesnvarchar(200)NOTNULLnGO3.6.3 使用INSERT SELECT语句nINSERTSELECT语
31、句可以将其他数据源中的行添加到数据库中现有的表当中。这种方法用于插入的数据是不确定(一般都多于一条)。具体方法是:通过SELECT语句生成的结果集,再结合INSERT语句,就可以把结果集插入到指定的表中。n例【3-4】:求每个学生的平均成绩,并按学号、姓名、平均成绩存入学生信息数据库。n首先创建一个表:nCREATETABLEAG(n学号CHAR(8)PRIMARYKEY,n姓名CHAR(8),n平均成绩SMALLINT)nGO;3.6.4 使用SELECT INTO语句nSELECTINTO语句与INSERTSELECT语句不同的是:它可以将其他数据源中的任何查询结果或导入的数据都添加到数据
32、库的新表当中。n例【3-5】:统计每个学生未通过课程的门数,将其保存到临时表#stuexam表。显示系名、学号、姓名、未通过门数,并按系名排序。nT-SQL语句如下:nSELECTMIN(系名),SC.学号,MIN(姓名),COUNT(*)未通过门数nINTO#stuexamnFROMStudent,SCnWHEREStudent.学号=SC.学号AND成绩60nGROUPBYSC.学号nORDERBY系名;3.7 删除表n1.使用SSMS图形化界面删除表n在“对象资源管理器”窗口中,展开“数据库”节点,再展开所选择的具体数据库节点,然后展开“表”节点,用右键单击要删除的表,从弹出的快捷菜单中
33、选择“删除”命令,打开“删除对象窗口”,2.使用T-SQL语句删除表nDROPTABLE表名n例【3-6】:在AdventureWorks数据库中,删除CustomerOrders表,它的架构是Sales。nUSEAdventureWorksnGOnDROPTABLESales.CustomerOrders第第4章章 表数据操作表数据操作n本章我们学习使用本章我们学习使用T-SQL语句创建和操作数据语句创建和操作数据库和表。与图形用户界面方式相比,用库和表。与图形用户界面方式相比,用T-SQL命令方式更为灵活。命令方式更为灵活。n本章的学习目标:本章的学习目标:q操纵数据需要解决的问题操纵数据
34、需要解决的问题q使用使用INSERT语句插入数据语句插入数据q使用使用UPDATE语句更新数据语句更新数据q使用使用DELETE语句删除数据语句删除数据q理解数据加密的方式和特点理解数据加密的方式和特点4.1 概述概述n表创建之后,只是一个空表。如何向表中表创建之后,只是一个空表。如何向表中添加数据?如果表中已经有了数据,不合适或添加数据?如果表中已经有了数据,不合适或不正确,怎么办不正确,怎么办?如果表中的数据不再需要了,如果表中的数据不再需要了,怎么办?这些都是数据操纵问题。用户可以使怎么办?这些都是数据操纵问题。用户可以使用用INSERT、UPDATE、DELETE等语句来解等语句来解决
35、这些问题。决这些问题。4.2 界面操作表数据界面操作表数据n与创建数据库和表一样,把不直接使用与创建数据库和表一样,把不直接使用T-SQL语句对表数据的操作称为界面操作表数据。界语句对表数据的操作称为界面操作表数据。界面操作表数据主要在面操作表数据主要在SQLServerManagementStudio中进行。中进行。n在选择了在选择了“打开表打开表”后,将进入操作所选择的后,将进入操作所选择的表数据窗口,在此窗口中,表中的记录按行显表数据窗口,在此窗口中,表中的记录按行显示,每个记录占一行。在此界面中,可向表中示,每个记录占一行。在此界面中,可向表中插入记录、也可删除和修改记录。插入记录、也
36、可删除和修改记录。4.2.1 插入记录插入记录4.2.2 删除记录删除记录4.2.3 修改记录修改记录4.3 数据操纵语言数据操纵语言(DML)n数据操纵语言主要是用于操纵表、视图中数据数据操纵语言主要是用于操纵表、视图中数据的语句。当我们创建表对象之后,初始状态时的语句。当我们创建表对象之后,初始状态时该表是空的,没有任何数据。这时需要使用该表是空的,没有任何数据。这时需要使用INSERT语句向表中添加数据。如何检索表中语句向表中添加数据。如何检索表中数据呢?可以使用我们前面介绍的数据呢?可以使用我们前面介绍的SELECT语语句。如果表中数据不正确的,那么可以使用句。如果表中数据不正确的,那
37、么可以使用UPDATE语句进行更新。也可以使用语句进行更新。也可以使用DELETE语句删除表中的数据。语句删除表中的数据。nDML就是指处理数据变更的就是指处理数据变更的3种种SQL语句:语句:INSERT、UPDATE和和DELETE。4.3 命令操作表数据命令操作表数据n对表数据的插入、修改和删除还可以通过对表数据的插入、修改和删除还可以通过T-SQL语句来进行,与界面操作表数据相比,通语句来进行,与界面操作表数据相比,通过过T-SQL语句操作表数据更为灵活,功能更为语句操作表数据更为灵活,功能更为强大。强大。4.3.1 INSERT语句语句nINSERT语句用于向已经存在的表中插入新的语
38、句用于向已经存在的表中插入新的数据。我们需要声明向哪个表中插入数据、向数据。我们需要声明向哪个表中插入数据、向那一列插入数据,以及插入什么数据。那一列插入数据,以及插入什么数据。nINSERT语句的语法格式为:语句的语法格式为:INSERTINTO(列列1,列,列2,)VALUES(表达式表达式1,表达式,表达式2,)【例【例4-35】向向course表插入一条记录,课程号为表插入一条记录,课程号为10,课程名为课程名为network,学分为,学分为4,任课教师为,任课教师为Sophie。nT-SQL语句为:语句为:INSERTINTOcourseVALUES(10,network,4,Sop
39、hie)【例【例4-36】向】向student表插入一条学生记录,其中学号表插入一条学生记录,其中学号为为20090101,学生姓名为张静。,学生姓名为张静。nT-SQL语句为:语句为:INSERTINTOstudent(sno,sname)VALUES(20090101,N张静张静)n由于只插入由于只插入student表中的两列的数据,因此,使用表中的两列的数据,因此,使用列表需要指明所要插入的列。执行完成后,查看列表需要指明所要插入的列。执行完成后,查看student表,可以看到课程已经被添加。表,可以看到课程已经被添加。4.3.2 UPDATE语句语句n如果表中的数据不正确或者已经变化,
40、可以使用如果表中的数据不正确或者已经变化,可以使用UPDATE语句更语句更新这些不恰当的数据。插入新数据和更新已经存在的数据之间的新这些不恰当的数据。插入新数据和更新已经存在的数据之间的主要差别在于需要指明要更改哪些记录。一般需要用主要差别在于需要指明要更改哪些记录。一般需要用WHERE子句子句来指明需要更新的记录所满足的条件。来指明需要更新的记录所满足的条件。nUPDATE语句的语法格式为:语句的语法格式为:UPDATESET列列1=,列,列2=,FROM表名表名WHERE【例【例4-37】将】将course表中的课程名称为表中的课程名称为network的记录项更改为课程的记录项更改为课程名
41、称为名称为database。nT-SQL语句为:语句为:UPDATEcourseSETcname=NdatabaseWHEREcname=Nnetworkn执行完成后,使用执行完成后,使用SELECT语句查询语句查询course表可以看到,对应纪表可以看到,对应纪录已经被修改。录已经被修改。4.3.3 DELETE语句语句n使用使用DELETE语句可以删除表中的数据。一般地,如果在语句可以删除表中的数据。一般地,如果在DELETE语句中没有删除条件,那么将删除表中的所有数据。需语句中没有删除条件,那么将删除表中的所有数据。需要注意的是,要注意的是,DELETE语句与语句与DROP语句不同:语句
42、不同:DELETE语句删除语句删除表中的数据,但是该表依然存在,而表中的数据,但是该表依然存在,而DROP语句则删除了表,表中语句则删除了表,表中的数据自然也不存在了。的数据自然也不存在了。nDELETE语句的语法非常容易,只需要简单指定从哪一个表中删语句的语法非常容易,只需要简单指定从哪一个表中删除了记录,如果需要,则用除了记录,如果需要,则用WHERE子句指定要删除哪些记录。格子句指定要删除哪些记录。格式为:式为:DELETEFROMWHERE条件条件【例【例4-38】将】将student表中学生姓名为张静的记录删除。表中学生姓名为张静的记录删除。nT-SQL语句为:语句为:nDELETE
43、FROMstudentWHEREsname=N张静张静n执行完成后,使用执行完成后,使用SELECT语句查询语句查询student表可以看到,对应纪表可以看到,对应纪录已经被删除。录已经被删除。第第5章章 安全与权限安全与权限第第5章章 安全与权限安全与权限 5.1安全与权限的基础知识安全与权限的基础知识5.1.1SQLserver2008安全机制的总体策略远程网络主机通过Internet访问SQLserver2008服务器所在的网络,这由网络环境提供某种保护机制。(2)网络中的主机访问SQLserver2008服务器,这首先要求对SQLServer进行正确配置,其内容将要在下一节中介绍;其次
44、是要求拥有对SQLserver2008实例的访问权登录名。(3)访问SQLserver2008数据库,这要求拥有对SQLserver2008数据库的访问权数据库用户。(4)访问SQLserver2008数据库中的表和列,这要求拥有对表和列的访问权权限。安全对象Server 角色SQL Server 登录Windows 组域用户账户本地用户账户用户数据库角色应用程序角色组SQL Server数据库数据库Windows文件密钥服务器架构数据库安全对象权限主体主体5.1.2 安全对象安全对象SQL Server2008的安全机制的安全机制nSQLServer2008的安全机制可以分为四个级的安全机制
45、可以分为四个级别:别:q操作系统的安全性操作系统的安全性qSQLServer2008的登录安全性的登录安全性q数据库的使用安全性数据库的使用安全性q数据库对象的使用安全性数据库对象的使用安全性SQL Server 2008 权限Server 角色SQL Server 登录Windows 组域用户账户本地用户账户用户数据库角色应用程序角色组SQL Server数据库数据库Windows文件密钥CREATEALTERDROPCONTROLCONNECTSELECTEXECUTEUPDATEDELETEINSERTTAKE OWNERSHIPVIEW DEFINITIONBACKUP授予授予/撤销撤
46、销/拒绝拒绝ACL服务器架构数据库安全对象权限主体主体5.1.3 SQL Server 2008 权限权限nWindows身份验证模式q用户由Windows授权,适用于当数据库仅在组织内部访问时。q通过登录而被授予SQLServer的访问权n混合身份验证模式q用户通过一个受信任连接连接到SQLServer并使用Windows身份验证来访问SQLServerq适用于当外界的用户需要访问数据库时或当用户不能使用WINDOWS域时。SQL Server 身份验证模式5.2.1 SQL Server 2008的身份认证模式的身份认证模式 1Windows 身份验证模式身份验证模式当使用Windows身
47、份验证连接到SQLServer时,MicrosoftWindows将完全负责对客户端进行身份验证。在这种情况下,将按其Windows用户账户来识别客户端。当用户通过Windows用户账户进行连接时,SQLServer使用Windows操作系统中的信息验证账户名和密码,这是SQLServer默认的身份验证模式,比混合模式安全的多。5.2.1 SQL Server 2008的身份认证模式的身份认证模式2混合身份验证模式混合身份验证模式n混合验证模式允许以SQLServer身份验证模式或者Windows身份验证模式来进行验证。n使用哪个模式取决于在最初的通信时使用的网络库。n如果一个用户使用TCP/
48、IPSockets进行登录验证,则使用SQLServer身份验证模式;如果用户使用命名管道,则登录时将使用Windows验证模式。n这种模式能更好地适应用户的各种环境。5.设置身份验证模式 通过图形化界面设置身份验证模式通过图形化界面设置身份验证模式 第步第步 :打开:打开SQL Server Management studio,SQL Server Management studio,使用使用WINDOWSWINDOWS或或SQL SERVERSQL SERVER身份验证建立连接。身份验证建立连接。第第2 2步步:对象资源管理器:对象资源管理器-服务器右击服务器右击-属性属性-服服务器属性务
49、器属性 第第3 3步步:选择安全性选择安全性-在此设置身份验证模式在此设置身份验证模式5.3 数据库账户 在SQLServer中,账号有两种:一种是登录服务器的登录账号,另外一种就是使用数据库的用户账号。登录账号只是让用户登录到SQLServer中,登录名本身并不能让用户访问服务器中的数据库。要访问特定的数据库,还必须具有用户名。用户名在特定的数据库内创建,并关联一个登录名(当一个用户创建时,必须关联一个登录名)。通过授权给用户来指定用户可以访问的数据库对象的权限。5.3.1 服务器的登录账号 创建登录账号时需要指出该账号使用的是Windows身份验证还是使用的SQLServer身份验证。1使
50、用使用Windows身份验证的登录身份验证的登录2使用使用SQLServer身份验证的登录身份验证的登录5.3.2 数据库用户账户 一般情况下,用户登录SQLServer实例后,还不具备访问数据库的条件。在用户可以访问数据库之前,管理员必须为该用户在数据库中建立一个数据库账号作为访问该数据库的ID。这个过程就是将SQLServer登录账号映射到需要访问的每个数据库中,这样才能够访问数据库。如果数据库中没有用户账户,则即使用户能够连接到SQLServer实例也无法访问到该数据库。1默认的数据库用户默认的数据库用户2添加数据库用户添加数据库用户3删除数据库用户删除数据库用户创建数据库用户的方法n创