2023年数据库应用技术考试知识点_第1页
2023年数据库应用技术考试知识点_第2页
2023年数据库应用技术考试知识点_第3页
2023年数据库应用技术考试知识点_第4页
2023年数据库应用技术考试知识点_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

第二章系统数据类型介绍p24创建用户自定义数据类型:sp_addtypetype_name,phystype[(length)|([precision,scale]),null|notnull|identity]查看,重命名,删除用户定义的数据类型:sp_helptype_name查看用户自定义数据类型的特性;sp_renametype_name给用户自定义数据类型重新命名;sp_droptypetype_name删除一个已经定义且未被使用的用户自定义数据类型。定义局部变量:DECLAER{@local_variabledata_type}[…n]设定局部变量的值,必须使用SELECT命令或者SET命令。其语法形式为:SET{{@local_variable=expression}或者SELECT{@local_variable=expression}[,...n]全局变量:全局变量分为两类,一是与SQLServer连接有关的全局变量,如@@rowcount表达受最近一个语句影响的行数;二是关于系统内部信息有关的全局变量,如@@version表达SQLServer的版本号。SQLServer运算符的优先级别数学函数:字符串函数:日期函数:转换函数:系统函数:聚合函数:批和脚本:批解决:包含一个或多个T-SQL语句的组,它将一次性地发送到SQLServer中执行,用GO来告知SQLServer一批T-SQL语句的结束。脚本就是一系列顺序提交的批。流程控制:各语句的作用:BEGIN…END用来设定一程序块IF…ELSE用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。CASE语句为多分支语句WHILE…CONTINUE…BREAK循环语句WAITFOR语句用来暂时停止程序执行GOTO语句用来改变程序执行的流程RETURN语句用于结束当前程序(所在的批、存储过程和触发器)的执行,返回到上一个调用它的程序或其它程序。PRINT语句的作用是在屏幕上显示用户信息。RAISERROR语句的作用是将错误信息显示在屏幕上,同时也可以记录在日记中。各语句的形式:IF…ELSE语句的语法形式:IFBoolean_expressionﻫ

sql_statement|statement_blockﻫ[ELSE

sql_statement|statement_block]BEGIN…END语句的语法形式:BEGIN

sql_statement

|statement_block

ﻫENDCase语句:见p37WHILE…CONTINUE…BREAK语法形式:WHILEBoolean_expressionﻫ

sql_statement|statement_blockﻫ

[BREAK]ﻫ

sql_statement|statement_block

[CONTINUE]WAITFOR语句的语法形式为:WAITFOR{DELAY'time'|TIME'time'}RETURN语句的语法形式为:RETURN[integer_expression]GOTO和RAISERROR见p39-40第三章数据库的逻辑结构从逻辑角度,SQLServer2023将数据库组织成为各种数据库对象,如数据表、视图、索引、数据类型、存储过程、触发器等。(各对象的定义见p48)。数据库的物理结构从物理角度,SQLServer2023数据库以多种操作系统文献形式存储在计算机硬盘上,一般一个数据库被组织成数据文献和日记文献两种类型的文献。重要数据文献(.mdf),该文献包含数据库的启动信息,并用于存储数据次要数据文献(.ndf),它具有不能置于重要数据文献中的数据,可以有多个,并分布在不同磁盘上。日记文献(.ldf),记录了用户对数据库的所有操作。文献组文献组是数据库中数据文献的逻辑组合。每个数据库有一个重要文献组。此文献组包含重要数据文献和未放入其他文献组的所有次要文献。可以创建用户定义的文献组,用于将数据文献集合起来,以便于管理、数据分派和放置。数据文献的组织方式:数据文献由若干个大小为64KB的区组成,每个区由8个8KB大小的连续空间组成,这些连续空间被成为数据页。在数据页上,数据行紧接着页首按顺序存放。页尾有一个行偏移表,表中页上的每一行都有一个条目,每个条目记录那一行的第一个字节与页首的距离。SQLServer2023有两种区,统一区和混合区。统一区属于单个数据库对象所有,区所有的数据页只能由拥有该区的对象使用;混合区最多可以由8个逻辑对象来使用。事务日记:事务日记是数据库中已经发生的一连串修改和操作的记录。SQLServer2023包含两种类型的数据库:系统数据库和用户数据库。系统数据库存储有关数据库系统的信息,例如master、model、msdb、tempdb。master数据库记录SQLServer2023的所有系统级信息,涉及登录帐户和系统配置设立。model数据库为用户创建新的数据库提供模板。msdb数据库是代理服务使用的数据库,代理程序调度警报作业以及记录操作员的操作时使用。tempdb数据库保存所有的临时表和临时存储过程。创建用户数据库:CREATEDATABASEdatabase_nameON{[PRIMARY](NAME=logical_file_name,FILENAME=’os_file_name’,[,SIZE=size][,MAXSIZE={max_size|UNLIMTED}][,FILEGROWTH=grow_increment])}[,…n]LOGON{(NAME=logical_file_name,FILENAME=’os_file_name’[,SIZE=size][,MAXSIZE={max_size|UNLIMTED}][,FILEGROWTH=grow_increment])}[,…n]参数说明:参数说明database_name要建立的数据库名称PRIMARY在主文献组中指定文献。ON指定存储数据库数据部分的磁盘文献(数据文献)。LOGON指定建立数据库的日记文献。NAME指定数据或日记文献的文献名称FILENAME指定文献的操作系统文献名和途径。os_file_name中的途径必须指定为SQLServer所安装服务器上的某个文献夹。SIZE指定数据或日记文献的大小。用户可以以MB为单位指定大小,也可以使用默认单位MB来指定大小。假如没有为主文献提供size,则数据库引擎

将使用model数据库中的主文献的大小。假如指定了辅助数据文献或日记文献,但未指定该文献的size,则数据库引擎

将以1MB作为该文献的大小。。MAXSIZE指定文献可以增长到的最大长度。默认单位为MB,用户也可以以MB来指定该长度。假如没有指定长度的话,文献将一直增长直到磁盘满为止。要建立的数据库大小单位为MB。FILEGROWTH指定文献的增长增量。该参数设立不能超过MAXSIZE参数。指定值的默认单位为MB,用户也可以以KB为单位进行指定,此外还可以使用比例(%)。假如该参数没有指定的话,默认值为10%,最小值为64KB。修改数据库:ALTERDATABASEdatabasename{ADDfile<filespec>[,…n][TOfilegroupfilegroupname]|ADDlogfile<filespec>[,…n]|REMOVEfilelogical_file_name[withdelete]|MODIFYfile<filespec>|MODIFYname=new_databasename|ADDfilegroupfilegroup_name|REMOVEfilegroupfilegroup_name|MODIFYfilegroupfilegroup_name{filegroup_property|name=new_filegroup_name}}查看数据库状态:sys.databases:数据库和文献目录视图,可以查看有关数据库的基本信息。MicrosoftSQLServer实例中的每个数据库都相应一行sys.databases_files:可以查看有关数据库文献的信息。每个存储在数据库自身中的数据库文献在表中占用一行。sys.master_files:可以查看数据库文献的基本信息和状态信息。master数据库中的每个文献相应一行。增长用户数据库容量:ALTERDATABASEdatabase_nameMODIFYFILE(NAME=file_name,SIZE=newsize)缩减用户数据库容量:P65DBCCSHRINKDATABASE(‘database_name’|database_id|0[,target_percent])[WITHNO_INFOMSGS]数据库快照的作用:1、维护历史数据以生成报表。2、将查询实行在数据库的快照上,可以释放主体数据库上的资源。3、使用快照将数据库恢复到生成快照时的状态比从备份还原快得多。创建快照数据库语法格式CREATEDATABASEdatabase_snapshot_nameON(NAME=logical_file_name,FILENAME='os_file_name')[,...n]ASSNAPSHOTOFsource_database_name数据库更名与删除:p69更名:execsp_renamedb‘old_name’,’new_name’删除:dropdatabasedatabase_name第四章数据表中行和列的作用:每行代表一唯一的记录,每列代表记录中的一个域。创建数据库:CREATETABLE[database_name.[owner].|owner.]table_name({<column_definition>|column_nameAScomputed_column_expression|<table_constraint>::=[CONSTRAINTconstraint_name]}|[{PRIMARYKEY|UNIQUE}[,...n]][ON{filegroup|DEFAULT}][TEXTIMAGE_ON{filegroup|DEFAULT}]<column_definition>::={column_namedata_type}[COLLATE<collation_name>]……修改表结构:ALTERTABLEtable_name{[ALTERCOLUMNcolumn_name{new_data_type[(precision[,scale])][COLLATE<collation_name>][NULL|NOTNULL]|ADD{[<column_definition>][,...n]|DROP{[CONSTRAINT]constraint_name|COLUMNcolumn_name}[,...n]插入、更新和删除表数据:查看表结构:使用系统存储过程sp_help查看表结构[EXECUTE]sp_help[table_name]数据插入:INSERT命令完毕数据插入。INSERT[INTO]table_name[(column1,column2…)]values(value1,value2…)更新表中现存记录中的数据:UPDATE语句可以更新表中现存记录中的数据UPDATEtable_nameSETcolumn1=modified_value1[,column2=modified_values[,…]][WHEREcolumn1=value1][,column2=value2]删除数据:DELETE语句可以从表中删除一行或多行记录。DELETEFROMtable_name[WHEREcolumn1=value1],[column2=value2]数据完整性:存储在数据库中数据的一致性和对的性。数据完整性分为:实体完整性、参照完整性、域完整性和用户定义完整性四种。约束:CHECK约束限制输入到一列或多列的值的范围DEFAULT约束假如没有为列指定数据,系统将默认值赋给列PRIMARYKEY约束假如某列或多列的值能惟一标记表中的每一行,这样的列称为表的主键,通过它可以强制表的实体完整性。FOREIGNKEY约束外键(ForeignKey)是用于建立和加强两个表(主表与从表)的一列或多列数据之间的链接,当数据添加、修改或删除时,通过参照完整性保证它们之间数据的一致性。定义表之间的参照完整性是先定义主表的主键,再对从表定义外键约束UNIQUE约束保证表中的两个数据行在非主键列中没有相同的列值约束的创建与删除:CHECK约束的创建ALTERTABLEtable_nameADD[CONSTRAINTconstraint_name]CHECK(logical_expression)Check约束的删除:DROPCONSTRAINTconstraint_name创建和删除DEFAULT约束ALTERTABLEtable_nameADD[CONSTRAINTconstraint_name]DEFAULTconstraint_expressionDROPCONSTRAINTconstraint_name创建和删除PRIMARYKEY约束ALTERTABLEtable_nameADD[CONSTRAINTconstraint_name]PRIMARYKEY[CLUSTERED|NONCLUSTERED]constraint_expressionDROPCONSTRAINTconstraint_name创建和删除FOREIGNKEY约束ALTERTABLEtable_nameADD[CONSTRAINTconstraint_name][FOREIGNKEY]REFERENCESreferenced_table_name[(ref_column)]DROPCONSTRAINT[FOREIGNKEY]constraint_name创建和删除UNIQUE约束ALTERTABLEtable_nameADD[CONSTRAINTconstraint_name]UNIQUEconstraint_expression[CLUSTERED|NONCLUSTERED]ALTERTABLEtable_nameDROPCONSTRAINTUNIQUEconstraint_name创建默认值和将其绑定到表上的某列CREATEDEFAULTdefault_nameASconstraint_expressionEXECsp_bindefaultdefault_name'table_name.[column_name[,…]|user_datetype]'第五章SELECT语句的形式:SELECTselect_list[INTOnew_table_name]FROMtable_list[WHEREsearch_conditions][GROUPBYgroup_by_list][HAVINGsearch_conditions][ORDERBYorder_list[ASC|DESC]][COMPUTErow_aggregate(column_name)[BYcolumn_name]]简朴查询:SELECT[ALL|DISTINCT]*|{table_name|view_name}.*|column_name[AS]column_titleFROMtable_name|view_name各个子句的作用:FROM子句:指定SELECT语句查询的一个或多个表,最多可以指定16个表,每一个表名用逗号分隔。即从指定的数据表table_name1[,table_name2,...]的记录中,检索(SELECT)出指定的列column_name1,column_name2[,...n]形成结果集。但是,FROM后面的表名在两个或者两个以上时,SELECT列表中应当采用table_name.[column_name]形式限定列所属的表。使用SELECT…INTO语句可以在查询数据的基础上创建新的数据表。通常,可使用这种方法来创建临时表,以便在随后的开发过程中使用。SELECTcolumn_name1,column_name2[,...n][INTOnew_table]FROMtable_nameWhere子句:从整个表中选出满足指定条件的内容,这就要用到WHERE子句。SELECTcolumn_name1,column_name2[,...n]FROMtable_nameWHEREsearch_conditionORDERBYcolumn_name1[ASC|DESC][,column_name2[ASC|DESC][,...]]ORDERBY是一个可选的子句,假如有ORDERBY子句,将按照排序列名column_name1[,column_name2[,...]]进行排序,其结果表还要按选项的值升序(ASC)或降序(DESC)排列。缺省时为查询结果按升序排列。使用GROUPBY子句可以按一定的条件对查询到的结果进行分组,再对每一组数据计算记录信息。SELECTcolumn_name1,column_name2[,...n]FROMtable_nameWHEREsearch_conditionGROUPBYgroup_by_expressionHAVINGsearch_conditionGROUPBY将查询结果按(group_by_expression)进行分组,该属性列相等的记录为一个组。通常,在每组中通过聚合函数来计算一个或者多个列。假如GROUP带有HAVING,则只有满足search_condition的组才干输出。Compute子句:SELECTcolumn_name1,column_name2[,...n]FROMtable_nameWHEREsearch_conditionORDERBYcolumn_name[ASC|DESC][,...]COMPUTErow_aggregate(column_name)[,row_aggregate(column_name)…][BYcolumn_name[,column_name…]其中,row_aggregate表达行聚合函数,如AVG(),COUNT(),MAX(),MIN(),SUM()。COMPUTE子句生成合计作为附加的汇总列出现在结果集的最后。当与BY一起使用时,COMPUTE子句在结果集内对指定列进行分类汇总。可在同一查询内指定COMPUTEBY和COMPUTE。内连接:内连接是用比较运算符比较两个表中列值,将两个表中满足连接条件的行组合起来作为结果,它是最常见的表连接形式。内连接分为:等值连接,在SELECT列表中使用星号(*)的和在结果集中显示冗余列数据的连接。不等值连接,在连接条件中使用除等于运算符以外的其它比较运算符(>、>=、<=、<、!>、!<、<>),来比较被连接列的列值。自然连接,对结果集的冗余列数据进行限制的连接。在连接条件中使用等号(=)运算符比较被连接列的列值,但它使用选择列表指定查询结果聚合中所涉及的列,并删除连接表中的反复列。P109第六章视图的概念视图是基于某个查询结果的一个虚拟表,只是用来查看数据的窗口而已。视图与真正的表很类似,也是由一组命名的列和数据行所组成,其内容由查询所定义。但是视图并不是以一组数据的形式存储在数据库中,数据库中只存放视图的定义而不存放视图相应的数据,这些数据仍存放在导出视图的基表中。当基表中的数据发生变化时,从视图中查询出来的数据也随之改变。创建视图:CREATEVIEWview_name[(column_name[,...n])][WITHENCRYPTION]ASSELECT_statement[WITHCHECKOPTION]通过视图查询数据p131第七章索引的概念:索引是一个表中所包含的值的列表,它说明了表中包含各个值的行所在的存储位置。索引中数据的存储:在没有建立索引的表内,使用堆的集合的方法组织数据页。在堆集中,数据行不按任何顺序进行存储,数据页序列也没有任何特殊顺序。因此扫描这些数据堆集花费的时间肯定较长。在建有索引的表内,数据行基于索引的键值按顺序存放,将改善系统查询数据的速度。索引的分类:按照索引存储方式的不同,可以将索引分为聚集索引和非聚集索引。在聚集索引(ClusteredIndex)中,行的物理存储顺序与索引顺序完全相同,即索引的顺序决定了表中行的存储顺序,由于行是通过排序的,所以每个表中只能有一个聚集索引。非聚集索引(NonclusteredIndex)并不在物理上排列数据,即索引中的逻辑顺序并不等同于表中行的物理顺序,索引仅仅记录指向表中行的位置的指针,这些指针自身是有序的,通过这些指针可以在表中快速地定位数据。按照索引取值方式可以将索引分为唯一索引和非唯一索引。唯一索引和非唯一索引既可以是聚集索引,也可以是非聚集索引。唯一索引是指索引值必须是唯一的,不允许数据表中具有两行相同的索引值。创建PRIMARYKEY或UNIQUE,默认建立一个唯一索引。索引视图:为视图创建独特的聚集索引,从而让访问此类视图的查询性能得以极大的改善。创建索引: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]索引的查看:通过系统视图sys.indexs可查看数据库中的索引信息,通过sys.index_columns可查看索引列信息。P157索引的更名p157sp_rename[@objname=]'object_name',[@newname=]'new_name'[,[@objtype=]'object_type']删除索引:DROPINDEXtable_name.index_name[,…n]第八章存储过程:一组完毕特定功能的T-SQL语句集,经编译后以特定的名称存储在数据库中,用户通过指定存储过程的名字并给出参数(假如该存储过程带有参数)来执行存储过程。创建不带参数的存储过程CREATEPROC[EDURE]procedure_nameASsql_statementsprocedure_name为所创建的存储过程的名字;sql_statements为在存储过程中需要执行的数据库操作。创建带参数的存储过程:CREATEPROC[EDURE]procedure_name[{@parameterdata_type}[=DEFAULT][OUTPUT]][,…n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTI○N}]ASsql_statements使用ALTERPROCEDURE命令ALTERPROC[EDURE]procedure_name[{@parameterdata_type}[=DEFAULT][OUTPUT]][,…n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYTION}]ASSql_statement[,…n]触发器的概念:触发器也是一种存储过程,一种在基表被修改时自动执行的内嵌过程,重要通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLServer就会自动执行触发器所定义的SQL语句。从而保证对数据的解决必须符合由这些SQL语句所定义的规则。触发器的重要作用就是其可以实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。创建触发器:CREATETRIGGERtrigge_nameON{table|view}{FOR|AFTER|INSTEADOF}{[INSERT],[UPDATE],[DELETE]}[WITHENCRYPTION]ASIFUPDATE(column_name)[{and|or}UPDATE(column_name)…]sql_statesments修改触发器:ALTERTRIGGERtrigge_nameON{table|view}{FOR|AFTER|INSTEADOF}{INSERT,UPDATE,DELETE}[WITHENCRYPTION]ASIFUPDATE(column_name){and|or}UPDATE(columnname)…]sql_statesments第九章事务的概念:事务是由一系列的数据查询操作或更新操作构成的。从用户的观点来看,根据业务规则,这些操作是一个整体,不能分割,即要么所有的操作都顺利完毕,要么一个也不要做。绝不能只完毕了部分操作,而尚有一些操作没有完毕。事务中任何一个语句执行时犯错,系统都会返回到事务开始前的状态。事务的(原子性、一致性、隔离性、持久性)4个特性一般简称为事务的ACID特性事务的管理:使用BEGINTRANSACTION建立事务BEGINTRAN[SACTION][transaction_name|@tran_name_variable[WITHMARK['description']]]使用COMMITTRANSACTION标记事务结束COMMIT[TRAN[SACTION][transaction_name|@tran_name_variable]]使用COMMITWORK语句标记事务结束COMMIT[WORK]功能与COMMITTRANSACTION相同,但COMMITTRANSACTION接受用户定义的事务名称。使用ROLLBACKTRANSACTION回滚到事务的指定点ROLLBACK[TRAN[SACTION][transaction_name|@tran_name_variable|savepoint_name|@savepoint_variable]]使用ROLLBACKWORK回滚到事务的起点ROLLBACK[WORK]此语句的功能与ROLLBACKTRANSACTION相同,但ROLLBACKTRANSACTION接受用户定义的事务名称。嵌套事务时,ROLLBACKWORK始终回滚到最远的BEGINTRANSACTION语句,并将@@TRANCOUNT系统函数减为0。事务模式:显式事务由用户在其中定义事务的启动和结束隐式事务隐式事务是指在当前事务提交或回滚后,自动启动新事务自动事务模式在自动事务模式下,每个Transact_SQL语句在成功执行完毕后,都被自动提交;假如碰到错误,则自动回滚该语句。该模式为系统默认的事务管理模式。事务日记的内容各个事务的开始标记、结束标记、所有更新操作,每个记录的内容包含:事务标记(标明是哪个事务)操作的类型(插入、删除或修改)操作对象(记录内部标记)更新前数据的旧值(对插入操作而言,此项为空值)更新后数据的新值(对删除操作而言,此项为空值)游标的概念:游标是一种解决数据的方法,为了查看或者解决结果集中的数据,游标提供了在结果集中向前或者向后浏览数据的能力。某些业务规则规定对结果集逐行执行操作,而不是对整个结果集执行操作。游标正是这样一种基于逐行操作结果集的方法,它对SELECT语句的查询结果集中的记录行逐行解决,而不是整个结果集作同一解决,并基于游标的当前位置,更新或删除表或视图中的行。游标的使用:声明或创建游标→打开游标→推动游标指针从游标的结果集中提取数据→逐行解决操作游标指针所指向的行数据→关闭和释放游标声明游标DECLAREcursor_nameCURSORFORselect_statement[FOR{READONLY|UPDATE[OFcolumn_name_list[,…]]}]打开游标OPENcrusor_name读取游标中的数据FETCH[[NEXT|PRIOR|FIRST|LAST]FROM]cursor_name[INTOfetch_target_list]删除数据DELETE[FROM]{table_name|view_name}WHERECURRENTOFcursor_name更新数据UPDATE{table_name|view_name}SET[table_name.|view.]column_name1={expression1|NULL|(select_statement)}[,column_name2={expression2|

温馨提示

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

评论

0/150

提交评论