数据库原理与应用总结.doc_第1页
数据库原理与应用总结.doc_第2页
数据库原理与应用总结.doc_第3页
数据库原理与应用总结.doc_第4页
数据库原理与应用总结.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

数据库原理与应用知识点总结第一部分 数据库SQL Server 2005 的基本知识一、SQL Server 2005的版本 (了解)1) 企业版它是最全面的SQL Server版本,能够满足最复杂的要求。2) 标准版适合于中小型企业数据管理和分析平台。3) 工作组版它可以用做前端WEB服务器,也可以用于部门或分支机构的运营。4) 简易版它是免费的版本,适用于低端用户、非专业开发人员以及编辑爱好者使用。5) 开发版开发版功能和企业版完全一样,只是许可方式不同,只能用于开发和测试,不能用于生产服务器。二、SQL Server两种身份验证模式(掌握)如果用户要访问SQL Server时,需要经过两个认证过程:一是身份验证,只验证用户是否有连接到SQL Server数据库服务器的资格;二是权限验证,检验用户是否有对指定数据库的访问权,并且当用户操作数据库中的数据或对象时验证用户是否有相应的操作权限。1)Windows 身份验证模式在Windows身份验证模式下,用户必须首先登录到Windows中,然后再登录到SQL Server。而且用户登录到SQL Server时,只需选择Windows身份验证模式,而无需再提供登录帐号和密码,系统会从用户登录到Windows时提供的用户名和密码中查找当前用户的登录信息,以判断该用户是否是SQL Server的合法用户。注意:u 如果用户在登录SQL Server时未给出用户登录名,则SQL Server将使用Windows验证模式。u 如果SQL Server被设置为Windows验证模式,则用户在登录时即使输入一个具体的登录名时,SQL Server也将忽略该登录名。2)Windows 与SQL Server的混合验证模式u 混合验证模式表示SQL Server接受Windows授权用户和SQL Server授权用户。在该认证模式下,用户在连接SQL Server时必须提供登录名和密码,然后系统确定用户帐号在Windows操作系统下是否可信,对于可信连接用户,系统直接采用Windows身份验证机制,否则采用SQL Server验证机制。u SQL Server验证机制是系统自己执行验证处理,它通过与系统表中信息比较,检查输入的登录帐号是否已存在且密码是否正确。如果匹配,则表明登录成功,否则身份验证失败,用户将收到错误信息。注意:u Windows操作系统的用户既可以使用Windows认证,也可以使用SQL Server验证。u 若不是Windows操作系统的用户只能使用SQL Server验证。三、SQL Server 2005登录帐号和用户帐号(了解)1) 登录服务器的登录帐号,也称登录名;登录帐号是指能登录到SQL Server服务器的帐号,属于服务器的层面,本身并不能让用户访问服务器中的数据库。2) 操作数据库的用户帐号。如果登录服务器的用户要访问数据库时必须拥有用户帐号。四、SQL Server 2005 的服务器管理(掌握)五、SQL Server 2005 的数据结构(了解)1) 目录结构2) 存储结构六、SQL Server 2005系统数据库功能(了解)1) master系统数据库记录SQL Server 2005系统的所有系统级的信息 注意:如果master数据库被破坏或出现故障不可用,则SQL Server无法启动。2) model 模板数据库向用户提供各种模板3) msdb 系统数据库是SQL Server 代理用来安排警报和作业、记录SQL Server代理程序服务项目和操作员信息等的数据库,有关数据库备份和还原的记录也会写在该数据库中。 4) tempdb系统数据库保存临时或中间结果的工作空间,包含了所有的暂存数据表与暂存的预存程序。服务器实例关闭时,将永久删除tempdb数据库中的数据。每次SQL Server 2005启动时都会重建tempdb数据库。5) resource系统数据库SQL Server 2005中新增加的只读数据库,包含了SQL Server 2005中所有系统对象。七、数据库的附加与分离(了解)1) 图形界面下的2) 命令方式下的u 调用系统过程sp_detach_db 来分离数据库u 调用系统过程sp_attach_db 附加数据库u 使用CREATE DATABASE 附加数据库八、基本术语(掌握)1) 数据库文件每个SQL Server 2005的数据库至少包含两个文件:一个数据文件(.mdf)和一个日志文件(.ldf)。2) 数据文件数据文件包括数据库的数据和对象,如表、视图、索引等。每个数据库应该包含1个主要数据文件(.mdf) ,1个事务日志文件(.ldf)以及n个(n=0)次要数据文件(.ndf)。3) 使用指令创建修改和删除数据库u 只有数据库管到员或具有CREATE DATABASE权限的数据库所有者才有权执行ATER DATABASE语句。u 在实际操作中,ALTER DATABASE一次只能修改一种参数。 u DROP DATABASE database_name ,.n ,其中database_name 为数据库名。九、SQL Server 2005的数据类型(了解)1) 系统数据类型u 二进制数据: Binary、Varbinary 和 Imageu Unicode 数据:Nchar,Nvarchar 和Ntextu 日期和时间数据:Datetime 和 Smalldatetime数字数据:u 精确数字整数:bigint、int、smallint、tinyint、bit小数:decimal 和 numeric 货币:money和smallmoneyu 近似数字float、real2) 用户自定义的数据类型十、数据库编程基础(了解)1) T-SQL概述(1)特点u 综合统一u 高度非过程化,且面向集合u 不同使用方式的语法结构相同u 提供了两种使用方式:交互式和嵌入式u 容易理解和掌握(2)分类T-SQL语言类型包含的T-SQL语句数据定义语言CREATE、ALTER、DROP数据操作语言SELECT、INSERT、UPDATE、DELETE数据控制语言GRANT、REVOKE附加语言元素事务管理语句、流程控制语句、变量、表达式等语言元素2) Transact-SQL基础 (1)标识符u 常规标识符在Transact-SQL 语句中使用时不用将其分隔的标识符称为常规标识符。命名规则: 标识符长度可以为1128个字符。 标识符的首字符必须为Unicode 3.2标准所定义的字母、下划线(_)、at符号()、和数字符号()。 后续字母可以为Unicode 3.2标准所定义的字符、0-9数字或下划线(_)、at符号()、数字符号()、美元符号($)。 标识符内不能嵌入空格或其他特殊字符。 标识符不能与SQL Server中的保留关键字同名。例1:下面SELECT语句中的表标识符StuInfo和列标识符SID均为常规标识符。SELECT * FROM StuInfoWHERE SID =05000004u 分隔标识符允许在标识符中使用SQL Server 2005保留关键字或常规标识符中不允许使用的一些特殊字符,这时该标识符应包含在双引号(“”) 或者方括号 ( ) 内。命名规则:符合标识符命名规则的标识符可以分隔,也可以不分隔例1:下列语句由于所创建的表名My Table中包含空格,列名order与T-SQL保留字相同,因此均要用方括号来分隔。SELECT *FROM My TableWHERE order = 10(2)变量u 局部变量 局部变量的声明局部变量用DECLARE语句声明,其语法格式如下:DECLARE variable_name datatype ,n 局部变量的赋值用SET语句给变量赋值格式:SET variable_name =expression用SELECT语句给变量赋值格式:SELECT variable_name =expression ,nFROM table_nameWhere condition局部变量的输出用PRINT语句输出变量的语法格式如下:PRINT variable_name用SELECT语句输出变量的语法格式如下:SELECT variable_name ,nu 全局变量全局变量的名字以“”开头。在UPDATA语句中使用rowcount变量来检测是否存在发生更改的记录。USE TeachingDataGO例1:将选修课程“00000001”的每个学生的成绩增加5分UPDATE ScoreInfoSET Score= Score +5WHERE CID =00100001例2:如果没有发生记录更新,则发生警告信息IF rowcount=0Print 警告:没有发生记录更新! /* Print语句将字符串返回给客户端*/(3)运算符u 算术运算符Transact-SQL支持的算术运算符有:加(+)、减(-)、乘(*)、除(/)、取模(%)。u 赋值运算符赋值运算符(=)是将表达式的值赋给一个变量。它通常用于SET和SELECT语句中。 u 字符串连接运算符字符串连接运算符(+)用于将字符串或字符型变量串接起来。u 比较运算符Transact-SQL支持的比较运算符有:大于()、等于(=)、小于(=)、小于等于(=)、不等于()、不等于(!=或)、不大于(!)、不小于(!、=、=、!=、!和!19u 用户自定义函数用户自定义函数包括表值函数和标量值函数两类,其中表值函数又包括内联表值函数和多语句表值函数。 标量函数例1:创建一个标量函数,该函数返回两个参数的最大值。CREATE FUNCTION My_Max(X REAL,Y REAL) RETURNS REAL)ASBEGINDECLARE Z REALIF XYSET Z=XELSESET Z=YRETURN(Z)END内联表值函数例2:在TeachingData数据库中创建一个内联表值函数,该函数返回高于指定成绩的查询信息。CREATE FUNCTION greaterScore (cj FLOAT)RETURNS TABLEASRETURN SELECT *FROM ScoreInfoWHERE Score=cj 多语句表值函数第二部分 数据表的管理一、索引的创建和删除(了解)1) SQL Server 2005中的七种索引u 聚集索引u 非聚集索引u 唯一索引u 包含性列索引u 索引视图u 全文索引u XML索引2) 使用对象资源管理器3) 使用命令方式创建u 建立索引的常用命令格式为:CREATE UNIQUE CLUSTERED INDEX ON (, );u 删除索引的常用命令格式为:DROP INDEX ON 二、表结构的创建(熟练掌握)1) 使用对象资源管理器创建2) 使用命令方式创建约束:u Primary Key约束u Unique约束u Check约束u Foreign Key约束u Default定义u Not Null约束1、Primary Key约束u PRIMARY KEY约束是通过定义表的主键来实现实体完整性约束的。u 为了能唯一的表示表中的数据行,通常将某一列或多列的组合定义为主键。u 一个表只能有一个主键,而且主键约束中的列不能为空值,且唯一地标识表中的每一行。u 如果主键不止一列,则一列中的值可以重复,但主键定义的所有列的组合值必须唯一。 2、Unique约束u UNIQUE约束确保表中一列或多列的组合值具有唯一性,防止输入重复值,主要用于保证非主键列的实体完整性。 3、Check约束u CHECK约束用于限制输入到一个属性或多个属性的值的范围。u 使用一个逻辑表达式来检查要输入数据的有效性,如果输入内容满足CHECK约束的条件,将数据写入到表中,否则,数据无法输入,从而保证SQL Server数据库中数据的域完整性。u 一个数据表可以定义多个CHECK约束。4、Foreign Key约束u FOREIGN KEY约束为表中一列或多列的组合定义为外键。其主要目的建立和加强表与表之间的数据联系,确保数据的参照完整性。u 在创建和修改表时可通过定义FOREIGN KEY约束来建立外键。u 外键的取值只能是被参照表中对应字段已经存在的值,或者是Null值。u FOREIGN KEY约束只能参照本身所在数据库中的某个表,包括参照自身表,但不能参照其他数据库中的表 5、Not Null约束u 列的NOT NULL约束定义了表中的数据行的特定列是否可以指定为Null值。Null值不同于零(0)或长度为零的字符串( )。u 在一般情况下,如果在插入数据时不输入该属性的值,则表示为Null值。因此,出现NULL通常表示为未知或未定义。6、Default约束u DEFAULT约束是为属性定义默认值。若表中的某属性定义了DEFAULT约束,在插入新记录时,如果未指定在该属性的值,则系统将默认值置为该属性的内容。u 默认值可以包括常量、函数或者NULL值等。例1:在teachingDataB中建立StuInfo表(学生信息表)CREATE TABLE StuInfo (SID char(8) primary key, -将SID设置为主键 Sname char(10) NOT NULL,- Sname不允许取空值 Sex char(2) default 男 check(sex=男 or sex=女), BirthDay smalldatetime NULL, Dept char(20) NULL, Major char(20) NULL,Class char(10) NULL, Grade char(10) NULL, Sage int )三、表结构的修改(熟练掌握)1) 使用对象资源管理器修改2) 使用命令方式修改例1:将表StuInfo中的年龄字段Sage的数据类型由int改为tinyint,设置其默认值为20,并规定年龄必须在10-60之间。ALTER TABLE StuInfo ALTER COLUMN Sage tinyintALTER TABLE StuInfo ADD CONSTRAINT Defa_age DEFAULT 20 FOR SageALTER TABLE StuInfo ADD CONSTRAINT CK_age CHECK(Sage10 AND Sage60)注意:该命令语句一次只能修改一个参数。四、表结构的删除(熟练掌握)1) 使用对象资源管理器删除2) 使用命令方式删除DROP TABLE table_nameu 注意:删除字段:ALTER TABLE table_name DROP COLUMN column_name例1:删除表StuInfo中的字段grade: ALTER TABLE StuInfo DROP COLUMN grade 五、表结构的数据修改(熟练掌握)1) 插入数据INSERT INTO (column_list) VALUES (data_values)例1:将一个课程信息元组(课程号:00000001;课程名:高等数学;学分:3;课程类别:基础课)插入到CourseInfo表中。INSERT INTO CourseInfo (CID,CName,CCredit,CProperty) VALUES (00000001,高等数学,3,基础课);2) 修改数据UPDATE SET=, WHERE ;例1:将高等数学的学分改为5分。 UPDATE CourseInfo SET CCredit =5 WHERE CName =高等数学; 3) 删除数据 DELETE FROM WHERE ;例1:删除表TchInfo中工号为10040002的教师的记录。 DELETE FROM TchInfo WHERE TID=10040002;第三部分 数据查询一、基本的查询语句的使用方法(熟练掌握)1) 基本语句说明:u SELECT子句用于指定所选择的要查询的特定表中的列,它可以是星号*,表达式、列表、变量等。其中*表示全部列。u TOP n (percent):表示返回最前面的n行(或百分之n行)数据。u INTO子句用于指定所要生成的新表的名称。u GROUP BY子句是分组查询子句。u HAVING 子句用于指定分级子句的条件。u ASC表示升序排列,DESC表示降序排列。u 根据WHERE子句的检索条件,从FROM子句指定的基本表或视图中选取满足条件的元组,再按照SELECT子句中指定的列,投影得到结果表。u 如果有GROUP BY子句,则将查询结果按照相同的值进行分组。u 如果GROUP BY子句后有HAVING短语,则只输出满足HAVING条件的元组。2) 基本的SELECT语句举例例1:查询数据库teachingdata中stuInfo表所有的学生信息Use teachingdataSelect * from stuInfo例2:查询表StuInfo中的前5条记录中的学生姓名SNAME和专业Major,要求在显示列标题的时候将SNAME和Major 分别显示为姓名和专业 。Use teachingdataSelect top 5 sname as 姓名, major as 专业 from StuInfo例3:查询表StuInfo中的前50%条信息。Use teachingdataSelect top 50 percent * from StuInfo例4:从scoreInfo中查询有哪些课程被选择。Use teachingdataSelect distinct cid from scoreinfo二、条件查询的基本操作(熟练掌握)1) 比较查询常用的比较运算符有:运算符=,!=LIKE含义等于大于小于大于等于小于等于不等于字符匹配2) 范围查询u 使用betweenand语句制定内涵范围条件例1:查询成绩在70分到80分之间的学生的学号SID和成绩Score。SELECT SID, Score FROM ScoreInfo WHERE Score between 70 AND 80例2:如果要查询成绩除成绩70分到80分以外的学生的学号SID和成绩Score 。SELECT SID, Score FROM ScoreInfo WHERE Score not between 70 AND 80u 使用in语句指定列表查询条件例1:查询tchinfo表中职称为教授、副教授的教师姓名,职称,并显示为姓名,职称。Use teachingdataSelect Tname as 姓名,title as 职称from tchinfo Where title in(教授,副教授)3) 模糊查询LIKE运算符的一般格式:LIKE以上格式中属性名必须为字符型,字符串的字符可以包含如下所示的通配符:_(下划线)表示任意单个字符%表示任意长度的字符串 与特定范围或特定集中的任意单字符的匹配与特定范围或特定集之外的任意单字符的匹配如:u Where name like smith_ 可以找到所有6个字母的、以smith开头的名字u Where name like %smith可以找到以smith结尾的名字u Where name like JTim可以找到3个字母的、以im结尾并以J或T开始的名字u Where name like mi%可以找到以m开始,第二个字符不为i的所有人的名字4) 空值判断查询条件例1:查询所有已经选课但没有考试成绩的学生的学号sid和相应的课程号cidselect sid, cid from scoreinfo where score is null注意:这里的空值条件为IS NULL,不能写成SCORE=NULL5) 使用逻辑运算符查询三种逻辑运算符的优先级从高到低分别为:NOT AND OR例1:在表ScoreInfo中查询课程号CID为00000001,且成绩低于60分的学生的学号SI,和成绩Score。SELECT SID AS 学号, Score AS 成绩 FROM ScoreInfo WHERE CID=00000001 AND Score60三、分组查询和排序查询(掌握)1) 分组查询常用的聚合函数函数名称功能MIN求一列中的最小值MAX求一列中的最大值SUM按列计算值总和AVG按列计算值的平均值 COUNT按列值计个数COUNT(*)返回表中的所用行数例1:查询每位学生的学号及其选课的门数。SELECT SID as 学号,COUNT(*) AS 选课数FROM ScoreInfoGROUP BY SID例2:通过查询表StuInfo求各专业中的男生人数.Select major as 专业,count(*) as 专业_男生数from StuInfo Where sex=男group by major例3:从表scoreinfo中查询选课人数少于5个学生的课程名及学生数。Select cid,count(*)as 学生数from ScoreInfo group by cidhaving count(*)、=、70 (3)自身联结联结操作不仅可以在两个表之间进行,也可以是一个表与其自己进行联结,称为表的自身联结。这时一般需要为表指定两个别名。(4)外联结 u 在FROM子句中,使用JOIN联结不同的表,使用ON给出两个表之间的联结条件。例如输入如下命令:SELECT StuInfo.Sname, ScoreInfo.CID,ScoreInfo.ScoreFROM StuInfo JOIN ScoreInfo ON StuInfo.SID= ScoreInfo.SIDWHERE ScoreInfo.Score70u 左外联结左外联结的语法格式:数据表1 LEFT OUTER JION 数据表2 ON 联接表达式 或:数据表1 LEFT JION 数据表2 ON 联接表达式使用左外联结进行查询的结果集将包括数据表1中的所有记录,而不仅仅是联结字段所匹配的记录。如果数据表1的某一条记录在数据表2中没有匹配的记录,那么结果集相应记录中的有关数据2的所有字段将为空值。例1:查询学生信息表StuInfo中的所有记录,并将成绩信息表ScoreInfo中学号字段SID可以匹配的记录输出到结果集。SELECT *FROM StuInfo LEFT OUTER JOIN ScoreInfo ON StuInfo.SID= ScoreInfo.SIDu 右外联结右外联结的语法格式:数据表1 RIGHT OUTER JION 数据表2 ON 联结表达式或:RIGHT JION 数据表2 ON 联结表达式使用右外联结进行查询的结果集将包括数据表2中的所有记录,而不仅仅是联结字段所匹配的记录。如果数据表2的某一条记录在数据表1中没有匹配的记录,那么结果集相应记录中的有关数据1的所有字段将为空值。例1:查询成绩信息表ScoreInfo中的所有记录,并将学生信息表StuInfo中学号字段SID可以匹配的记录输出到结果集。select *from scoreinforight join tchinfo on scoreinfo.tid=tchinfo.tid2) 嵌套查询u 嵌套查询是指在一个外层查询中包含有另一个内层查询,其中,外层查询称为主查询,内层查询称为子查询。u 一般情况下,使用嵌套查询中的子查询先挑出部分数据,作为主查询的数据来源或搜索条件。u 嵌套查询是通过在SELECT语句的WHERE子句中包含一个形如SELECT-FROM-WHERE的查询块来实现的,这个查询块就是子查询或嵌套查询,查询块所在的外层查询就是父查询或外部查询。例1:查询选修了00000001号课程的学生姓名。SELECT Sname FROM StuInfo 外层查询/父查询WHERE SID IN(SELECT SID FROM ScoreInfo WHERE CID= 00000001) 内层查询/子查询例2:查询与王晓红老师职称相同教师的工号TID、姓名TName和职称Title。USE TeachingDataSELECT TID,TName, title FROM TchInfoWHERE Title=(SELECT Title FROM TchInfoWHERE TName=王晓红) and tname!=王晓红例3:查询同时选修了课程00000001和课程00100002的学生的姓名和班级。select sname,class from stuinfo where sid in (select distinct s1.sid from scoreinfo s1 join scoreinfo s2 on s1.sid=s2.sidwhere s1.cid=00000001 and s2.cid=00100002)例4:查询没有上任何课程的教师的姓名和所在部门。select sname,dept from tchinfowhere tid not in (select tid from scoreinfo)第四部分 视图一、视图的相关概念(理解)1) 基本概念u 视图是一个虚拟的表,该表中的记录是由一个查询语句执行后所得到的查询结果所构成的。 u 视图是用SQL语句而不是用数据构造的,一个视图看起来像一个表,而且它的操作也与基表相似。但视图并不是表,它只是一组返回数据的SQL语句,是一个SELECT语句构成的“虚表”。u 视图的数据是n个(n=1)表或视图的子集。u 使用视图不仅可以简化数据库操作,还可以提高数据库的安全性。 例1:建立计算机系选修了00000001号课程的学生学号、姓名、分数的视图S_1。 CREATE VIEW S_1(SID,Sname,Score) AS SELECT StuInfo.SID,StuInfo.Sname,Score FROM StuInfo,ScoreInfo WHERE StuInfo.Dept= 计算机系 AND StuInfo.SID = ScoreInfo.SID AND ScoreInfo.CID= 00000001;2) 视图的优点u 为用户集中数据,简化用户的数据查询和处理。有时用户所需要的数据分散在多个表中,定义视图可将它们集中在一起,从而方便用户的数据查询和处理。u 屏蔽数据库的复杂性。用户不必了解复杂的数据库中的表结构,并且数据表的更改也不影响用户对数据库的使用。u 简化用户权限的管理。只需授予用户使用视图的权限,而不必指定用户只能使用表的特定列,也增加了安全性。u 便于数据共享。各用户不必都定义和存储自己所需的数据,可共享数据库的数据,这样同样的数据只需存储一次。u 可以重新组织数据以便输出到其他应用程序中。3) 视图的注意事项u 只有在当前数据库中才能创建视图。u 给视图的命名必须遵循标识符命名规则,不能与表同名,且对每个用户视图名必须是惟一的,即对不同用户,即使是定义相同的视图,也必须使用不同的名字。u 不能把规则、默认值或触发器与视图相关联。u 不能在视图上建立任何索引,包括全文索引。4) 视图的创建(1)在对象资源管理器中创建(2)用CREATE VIEW命令创建u 组成视图的属性列名:必须全部指定或者全部省略。 u 全部省略时,视图的属性列名则为子查询SELECT目标列中的诸字段名。u 必须全部指定的3种情况: a.某目标列是集函数或列表达式目标列为*; b.多表连接时选出了同名列作为视图字段; c.其他需要的情况。5) 常见的视图形式主要有6种(1)行列子集视图例1:建立计算机系学生的学号、姓名和专业的视图student_1。CREATE VIEW Student_1 AS SELECT SID,Sname, Major FROM StuInfo WHERE Dept= 计算机系(2)WITH CHECK OPTION视图例1:建立计算机系学生的学号、姓名和专业的视图Student_2,并要求通过该视图进行的更新操作只涉及计算机学院学生。CREATE VIEW Student_2 AS SELECT SID,Sname, Dept FROM StuInfo WHERE Dept= 计算机系 WITH CHECK OPTION;(3)基于多个基表的视图例1:建立计算机学院选修了00000001号课程的学生视图StuCourse1 。CREATE VIEW StuCourse1(学号,姓名,成绩) AS SELECT StuInfo.SID,Sname,Score FROM StuInfo,ScoreInfo WHERE Dept= 计算机系 AND StuInfo.SID=ScoreInfo.SID AND ScoreInfo.CID= 00000001;(4)基于视图的视图例1:建立计算机学院选修了00000001号课程且成绩在60分以上的学生的视图。 CREATE VIEW Stu_Pass1 AS SELECT 学号,姓名,成绩 FROM StuCourse1(StuCourse1是一个视图) WHERE 成绩=60(5)带表达式的视图例1:定义一个反映学生年龄的视图StuAge。 CREATE VIEW StuAge(SID,Sname,Sage) AS SELECT SID,Sname,year(getdate()-year(birthday) FROM StuInfo注意:带表达式的视图必须明确定义组成视图的各个属性列名。 (6)分组视图例1:将学生的学号及他的平均成绩定义为一个视图ScoreAvg 。CREATE VIEW ScoreAvg(学号,平均成绩) AS SELECT SID,AVG(Score) FROM ScoreInfo GROUP BY SID; 二、查询技巧(熟练应用)1) 查询视图的定义用系统存储过程sp_helptext来查询视图的定义。例1:使用T-SQL语句来查看teachingData数据库的student_1视图的定义。USE teachingData;EXEC sp_helptext student_1;2) 查询视图记录查询计算机学院学生的学号、姓名和专业的信息。例1:Use teachingData;SELECT * FROM Student_1;三、视图的操作方法(熟练掌握)1) 视图属性查询例1:查询teachingdata数据库中student_1视图的属性Use teachingdataGoExec sp_helptext student_12) 视图定义的修改例1:修改视图student_1为查看管理系学生的学号、姓名、性别和专业。Use teachingdataGoAlter view student_1AsSelect sid,sname ,sex,major from student_1Where dept=管理学3) 视图的记录查询例1:用SELECT语句查询视图student_1中的学生学号和姓名Use teachingdataGoSelect sid ,sname,from student_14) 视图记录的修改u 在查询编辑器中用INSERT 、UPDATE和DELETE命令来修改视图记录。u 一般不建议对视图记录进行插入或删除操作。例1:利用视图StuCourse1为计算机系中每位学生的高等数学成绩减少5分。Update StuCourse1 Set 成绩=成绩-55) 通过视图向基表插入记录例1:用T-SQL语句向视图student_2插入“计算机系,王良”。Use teachingdataGoInsert into student_2 values (计算机系,王良)6) 重命名视图例1:修改视图student_1为student_11Use teachingdata GoExec sp_rename student_1,student_117) 删除视图例1:删除视图student_11Use teachingdata GoDrop view student_11第五部分 数据的完整性与安全性一、数据安全性和完整性的基本概念及区别(理解)1) 安全性基本概念(1)安全机制u 数据安全性是指保护数据库以防止非法使用造成的数据泄露、更改或破坏。u 在安全模型中,用户标识与鉴定是系统提供的最外层安全保护措施。只有在DBMS成功注册了的人员才是该数据库的用户,才可以访问数据库。 u 用户标识与鉴定解决了检查用户是否合法的问题,但是合法用户的存取权限不尽相同。数据安全性的核心问题是DBMS的存取控制机制,确保进入系统的用户只能进行合法的操作。 (2)登陆账号u 创建用户帐号1.利用“对象资源管理器”2.利用T-SQL语句向当前数据库添加新的用户帐号,也可使用CREATE USER语句来实现。例1:在TeachingData数据库中为登录帐号stu_admin创建用户帐号,并取名为U1。USE TeachingDataCREATE USER U1 FOR LOGIN stu_adminu 利用T-SQL语句查看服务器的登录帐号其语法格式为:sp_helplogins login_nameu 修改服务器的登录帐号例1:对stu_admin登录帐号重新启用后,将帐号的登录密码更改为111。ALTER LOGIN stu_admin ENABLEALTER LOGIN stu_admin WITH PASSWORD = 111u 删除服务器的登录帐号DROP LOGIN login_name2) 完整性基本概念数据完整性是保证数据质量的一种重要方法,是现代数据库系统的一个重要特征。(1)数据完整性的实现u 约束(Constraint)u 规则(Rule)u 触发器(Trigger)u 存储过程(Stored Pro

温馨提示

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

评论

0/150

提交评论