SQL数据库维护全析(免费)

SQL数据库维护全析(免费)
SQL数据库维护全析(免费)

SQL Server数据库维护计划的实施步骤

作为网管员,无论其管理的网络的规模是大还是小,在日常的管理中除了维护网络平稳运行、及时排除网络故障、保护网络安全等工作以外,备份网络中关键数据也是其中的一个非常非常重要的工作环节。

网络中的各种故障无非就分两种:软件故障和硬件故障。对于“硬件故障”可以通过维修或更换硬件设备得到及时解决;对于“软件故障”则可以通过重新安装或升级软件、重做网络或应用软件系统等方法及时解决,而且用此方法来解决网络故障大多需要一些基础的、关键的数据支持才能得以恢复正常。但是,网络中诸如此类的关键数据(特别是“应用软件系统”中的关键数据)的损坏或丢失,绝大部分是无法恢复和弥补的。即使可以恢复部分数据,弥补它们所花费的代价(诸如时间、人力、财力、物力等)都可能远远超出了公司的承受能力。

所以说,注重数据的备份工作是网管员日常管理工作中的必须时刻关注的一项任务,也是必须周期性重复操作的一项工作。

目录

现行备份策略

具体实现步骤

结束语

现行备份策略

我公司在组建局域网时,考虑到商业企业的特点,仔细考量了购、销、存三大环节中发生的各种数据及其存储问题后,选定了以Windows 2000 Server为操作系统,SQL Server 2000为数据库平台来搭建局域网的应用系统的软件平台,以网线为载体将购、销、存等核心部门的计算机通过局域网平台紧密地连接起来。这样,各个核心部门每天的任何一笔业务都及时地、动态地存储到公司局域网的核

心Dell服务器上的SQL Server 2000数据库中,并以此为基础平台向各方提供所需的各种数据服务。

因此,自公司局域网开始正式运作之日起,作为网管员的我就非常注重对局域网中的关键数据——特别是这些业务数据的备份工作。同时,我也希望备份数据的软件能够实现以下自动功能。

功能1:能够在每天的某个固定的时刻(如夜晚0:00:00,当然这个时间是可以自主设定的)对包含所有业务数据库在内的所有关键数据库进行一次“完全备份”。

功能2:能够在每天的0:00:00至23:59:59这段时间内,每间隔1个小时对功能1中所涉及到的各个数据库的事务日志进行“差异备份”。

功能3:每天都能够保留功能1和功能2中所生成的数据库和事务日志的最近两天的备份(即:前一天的和前两天的),而且能够自动地删除久于两天前的所有数据库和事务日志的备份。

功能4:定期(如每个星期一次)将所有关键数据库的完全备份的副本备份到磁带或其它存储介质上(这部分工作可能需要手工完成)。

于是,围绕这些功能的实现,在日常管理工作中,我尽可能地尝试了各种备份数据的软件和方法,如Windows 2000自带的“备份”工具、SQL Server 2000自带的“备份”功能等。这些备份软件和方法的功能各有千秋,但是都存在以下缺点:

一种就是需要人工干预,无法实现自动备份(如Windows 2000自带的“备份”工具)。如果采用这种方法,就必须时刻人工手动备份,万一哪天因为出差或其它原因没有进行备份,而这时又出现服务器或数据故障的话,那麻烦就大了。

另一种就是能够实现自动备份,但是旧的备份不能被自动地删除(如SQL Server 2000自带的“备份”功能)。如果采取这种方法,就必须及时地手工删除旧的备份,否则再大的硬盘也会迅速地被用完。

在相互比较后,我还是决定采用第二种——SQL Server 2000自带的“备份”功能对关键数据库进行备份,因为它能够实现“自动备份”功能,比第一种略强。所以,在一段时期内,我每天上班后的第一件事就是先检查一下备份目录下各种数据的新的备份,然后手工删除旧的备份数据。这种做法一度让我很是苦恼。

一天,我在利用SQL Server 2000的“帮助”查询某个Transact-SQL语句的语义解释时无意中阅读到“自动化管理任务”的内容。从头到尾地仔细阅读后,我不由得眼睛一亮,原来SQL Server 2000本身自带了一个能够实现我的备份要求的、强大的功能——“数据库维护计划”。于是我立刻按照这部分内容的提示,以一个数据库为试验样本一步一步地操作,成功地创建了一个数据库维护计划。经过一个星期的试运行,这个计划果然能够实现自动备份调度,以及自动删除旧的数据备份,完全能够满足我的备份要求。

从那时起,我就利用SQL Server 2000的“数据库维护计划”备份所有关键数据库,而且严格地、定期地执行功能4,每个星期五将完全备份的数据库备份到磁带和局域网中其它客户机(主要是用于网络管理的网管PC)的硬盘上。这样做的目的是,能同时异地保存三份相同的备份,减少故障带来的损失。

而且,通过SQL Server 2000的“数据库维护计划”,我现在能够较轻松地备份所需各种数据,方便地管理其备份,相应地减少了日常工作量,也减轻了部分工作压力。

具体实现步骤

目录

第一步:打开SQL Server“企业管理器”窗体

第二步:找到“数据库维护计划”功能

第三步:创建“数据库维护计划”

第四步:维护和管理“数据库维护计划”

第五步:启动SQL Server 2000代理以便执行“作业”

第六步:检查结果

“数据库维护计划”功能在SQL Server 2000的“企业管理器”中可以找到。

说明:

1.以下操作是在服务器的Windows 2000 Server上进行操作的。在Window 9X系统上操作相同。

2.由于SQL Server 2000执行备份时将产生许多文件(特别是在进行事务日志备份时),所以建议按数据库名称分别建立独立的备份目录进行存储。

3.以下所有操作过程当中一般不会对数据库的使用产生影响。

第一步:打开SQL Server“企业管理器”窗体

用鼠标单击任务栏上的“开始”按钮中的“程序(P)”菜单下的“Microsoft SQL Server”子菜单中的“企业管理器”菜单项,即可打开SQL Server 2000的“企业管理器”窗体。

第二步:找到“数据库维护计划”功能

在“企业管理器”窗体中左侧的树型选项卡中,用鼠标单击“+”图标扩展开“控制台根目录”下的“Microsoft SQL Servers”,可以看到其下有一个“SQL Server组”;接着继续扩展开“SQL Server组”,此时可以看到其下出现了服务器的名称(图1中的“JXNC-SERVER”就是我的服务器的名称);再继续扩展开此服务器,可以看到其下列出了诸如“数据库”、“数据转换服务”等项目;最后单击“管理”项目,可以看到其下存在一个“数据库维护计划”(如图1)。

单击“数据库维护计划”项目,在“企业管理器”窗口右侧将会显示出已经存在的维护计划项目。每个维护计划均包括以下项目:

1.名称:就是维护计划的名称。此名称可以自定义,中英文皆可。

2.数据库:就是维护计划所进行维护的数据库的名称。

因为一个维护计划允许同时维护多个数据库,所以此处可以显示出多个数据库的名称(在图1中可以看到名为“系统数据库备份”的数据库维护计划中的“数据库”就包括三个数据库:master、model和msdb)。

3.服务器:也就是维护计划所维护的数据库所处的服务器的名称。“(local)”表示是本地服务器。

4.对策:是指维护计划所需要进行的具体维护工作的内容。

图1中有3个“数据库维护计划”均为“数据库备份,事务日志备份”,它的含义就是这些维护计划中同时对所指定的数据库进行“数据库”和“事务日志”的备份。

第三步:创建“数据库维护计划”

鼠标右击“数据库维护计划”项目,选择“新建维护计划(P)”功能,将打开“数据库维护计划向导”窗体,依照此向导能够创建一个新的“数据库维护计划”。

步骤1:单击“下一步(N)”按钮,打开“选择数据库”窗体(如图2)。在此窗体中可以选定一个或多个的数据库作为操作对象。为了叙述方便,我在此只选择了一个数据库“regie”。

步骤2:单击图2中的“下一步(N)”按钮,打开“更新数据优化信息”窗体(如图3)。

在此窗体中可以对数据库中的数据和索引重新进行组织,以及能够设定在满足一定条件的情况下,维护计划自动删除数据库中的未使用的空间,以便提高性能。

但要注意的是,在此窗体中,只要选定了“重新组织数据和索引页[R]”复选框,“更新查询优化器所使用的统计。示例[D]”复选框将失效(变成灰色,不能选择)。而且“重新组织数据和索引页[R]”复选框和“从数据库文件中删除未使用的空间[M]”复选框二者只要有一个被选中,其下的“调度[S]”功能才有效。单击“更改[C]”按钮可以对“调度”进行自定义。

各位读者可以根据自身情况决定是否选用其中的功能。当然也可以通过单击“帮助”按钮来查看各功能的具体含义。

在此窗体中能够便捷地设定每项作业的持续运行时间和运行的频率。完成自己的设置后,一定要选定右上角的“启用调度[B]”复选框,这样一个作业调度才算真正完成了。

步骤3:单击图3中的“下一步(N)”按钮,打开“检查数据库完整性”窗体。

在此窗体中可以设定维护计划在备份数据库前自动检查数据库的完整性,以便检测由于硬件或软件错误而导致数据的不一致。在此窗体中只有先选定了“检查数据库完整性[H]”复选框,其下

Sql Server 2005 数据库维护计划

这个星期开始为了减轻工作压力开始使用数据库维护计划(SQL Server Maintenance Plan Wizard)维护数据库,由于以前都没用过,在个人使用的免费版(Express)里也没有这个功能,所以现在好好学习了一番,这里总结一下。

维护计划向导可以用于帮助您设置核心维护任务,从而确保数据库执行良好,做到定期备份数据库以防系统出现故障,对数据库实施不一致性检查。维护计划向导可创建一个或多个SQL Server 代理作业,代理作业将按照计划的间隔自动执行这些维护任务。它使您可以执行各种数据库管理任务,包括备份、运行数据库完整性检查、或以指定的间隔更新数据库统计信息。创建数据库维护计划

可以让SQL Server有效地自动维护数据库,保持数据库运行在最佳状态,并为管理员节省了宝贵的时间。

以下是可以安排为自动运行的一些维护任务:

用新填充因子重新生成索引来重新组织数据和索引页上的数据。这确保了数据库页中包含的数据量和可用空间的平均分布,还使得以后能够更快地增长。

通过删除空数据库页压缩数据文件。

更新索引统计信息,确保查询优化器含有关于表中数据值分布的最新信息。这使得查询优化器能够更好地确定访问数据的最佳方法,因为可以获得数据库中存储数据的详细信息。虽然SQL Server 会定期自动更新索引统计信息,但是此选项可以对统计信息立即进行强制更新。

对数据库内的数据和数据页执行内部一致性检查,确保系统或软件故障没有损坏数据。

备份数据库和事务日志文件。数据库和日志备份可以保留一段指定时间。这使您可以为备份创建一份历史记录,以便在需要将数据库还原到早于上一次数据库备份的时间的时候使用。还可以执行差异备份。

运行SQL Server 代理作业。这可以用来创建可执行各种操作的作业以及运行这些作业的维护计划。

维护任务生成的结果可以作为报表写入文本文件,或写入msdb 中的sysmaintplan_log 和sysmaintplan_log_detail 维护计划表。若要在日志文件查看器中查看结果,请右键单击“维护计划”,再单击“查看历史记录”。

以下是详细说明:

Check Database Integrity(检查数据库完整性)

任务检查指定数据库中所有对象的分配和结构完整性。此任务可以检查单个数据库或多个数据库,您还可以选择是否也检查数据库索引,检查所有索引页以及表数据页的完整性。

此任务封装DBCC CHECKDB 语句。

生成的代码:

--检查当前数据库,取消信息性消息

DBCC CHECKDB WITH NO_INFOMSGS

Shrink Database(收缩数据库任务)

收缩数据库’任务”对话框可以创建一个任务,尝试减小所选数据库的大小。

此任务封装了DBCC SHRINKDATABASE 命令。

选项:

Shrink database when it grows beyond

当数据库大小超过指定值时收缩数据库,指定引发此任务的数据库大小(MB)。

Amount of free space to remain after shrink

收缩后保留的可用空间,当数据库文件中的可用空间达到此值时停止收缩。

Retain freed space in database files

选择在数据库文件中保留所释放的文件空间。如果指定NOTRUNCATE 选项,数据文件好像没有收缩。

Return freed space to operating system

选择把数据文件中任何未使用空间被释放给操作系统。无需移动任何数据即可减小文件大小。

生成的代码:

--选择Retain freed space in database files

DBCC SHRINKDATABASE (N'AdventureWorks', 10, NOTRUNCATE)

--选择Return freed space to operating system

DBCC SHRINKDATABASE(N'AdventureWorks', 10, TRUNCATEONLY)

Reorganize Index(重新组织索引)

重新组织SQL Server 数据库表和视图中的索引。通过使用“重新组织索引”任务,包可以重新组织单个数据库或多个数据库中的索引。如果此任务仅重新组织单个数据库中的索引,则可以选择任务要重新组织其索引的视图或表。“重新组织索引”任务还包含压缩大型对象数据的选项。大型对象数据是具有image 、text、ntext、varchar(max)、nvarchar(max)、varbinary(max) 或xml 数据类型的数据。

此任务封装了Transact-SQL ALTER INDEX 语句。

如果选择压缩大型对象数据,则该语句使用REORGANIZE WITH(LOB_COMPACTION = ON) 子句,否则LOB_COMPACTION 将设置为OFF。

生成代码:(只选择了Employee表)

--选择compact large objects

ALTER INDEX [PK_Employee_EmployeeID] ON [HumanResources].[Employee] REORGANIZE WITH ( LOB_COMPACTION = ON )

--不选择

ALTER INDEX [PK_Employee_EmployeeID] ON [HumanResources].[Employee] REORGANIZE WITH ( LOB_COMPACTION = OFF )

Rebuild Index(重新生成索引)

重新生成SQL Server 数据库表和视图中的索引。包可以重新生成单个数据库或多个数据库中的索引。如果任务仅重新生成单个数据库中的索引,则可以选择任务要重新生成其索引的视图和表。使用默认可用空间重新组织页删除数据库中表上的索引,并使用在创建索引时指定的填充因子重新创建索引。

此任务封装ALTER INDEX REBUILD 语句并提供下列索引重新生成选项:Reorganize pages with the default amount of free space

指定FILLFACTOR 百分比或使用原始的FILLFACTOR 量。

Change free space per page percentage to:

填充索引使用PAD_INDEX 选项可以在索引创建过程中设置中间级页中的可用空间百分比。将每页的可用空间百分比更改,删除数据库中表上的索引,并使用新的、自动计算的填充因子重新创建索引,从而在索引页上保留指定的可用空间。

Sort results in tempdb

使用SORT_IN_TEMPDB 选项,该选项确定在索引创建过程中生成的中间排序结果的临时存储位置。使用索引的IGNORE_DUP_KEY 选项,该选项指定对唯一聚集或非聚集索引上多行INSERT 事务中的重复键值的错误响应。

Keep index online while reindexing

使用ONLINE 选项,用户可以在索引操作期间访问基础表或聚集索引数据以及任何关联的非聚集索引。

生成代码:(只选择了Employee表)

ALTER INDEX [PK_Employee_EmployeeID] ON [HumanResources]. [Employee] REBUILD WITH ( FILLFACTOR = 90, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, SORT_IN_TEMPDB = OFF, ONLINE = OFF )

Updata Statics(更新统计信息)

为指定的表或索引视图中的一个或多个统计信息组(集合)更新键值分布信息。

此任务封装UPDATE STATISTICS 语句。

All existing statistics

如果更新应用于所有统计信息,则暗示使用WITH ALL 子句。

Column statistics only

如果更新仅应用于列,则包含WITH COLUMN 子句。

Index statistics only

如果更新仅应用于索引,则包含WITH INDEX 子句。

Full scan

全部统计

Sample by

从每个索引所对应的表中抽样的数据,此样本的大小取决于表中的行数和数据修改的频率。

生成代码:(只选择了Employee表)

UPDATE STATISTICS [HumanResources].[Employee]

WITH FULLSCAN

Clean Up History(清除历史记录)

使用“清除历史记录”对话框,可以放弃msdb 数据库表中旧的历史信息。此任务支持对备份和还原历史记录、Microsoft SQL Server 代理作业历史记录和维护计划历史记录进行删除。

此任务封装sp_delete_backuphistory 系统存储过程并将指定日期作为参数传递给该过程。

选项:

Backup and restore history

Sql Server Agent job history

Maintenance plan history

生成代码:

以下为引用的内容:

declare @dt datetime select @dt = cast(N'2007-05-31T08:00:00' as datetime)

exec msdb.dbo.sp_delete_backuphistory @dt

GO

EXEC msdb.dbo.sp_purge_jobhistory @oldest_date=@dt

GO

EXECUTE msdb..sp_maintplan_delete_log null,null,@dt

GO

Execute Sql Server Agent Job(执行SQL Server 代理作业)

任务运行SQL Server 代理作业。SQL Server 代理作业能够自动执行您需要重复执行的任务。

此任务封装sp_start_job 系统过程并把SQL Server 代理作业的名称作为参数传递给该过程。

Back Up Database Task

备份用的,太熟悉了,不介绍了。

Maintenance Cleanup Task

此任务封装master.dbo.xp_delete_file 系统过程,用来删除备份文件。

Execute T-SQL Statement Task

执行T-SQL 任务运行Transact-SQL 语句。这个任务用向导的时候是没有的,要到设计视图里面去拖出来。

Notify Operator Task

通知操作员任务将通知消息发送到SQL Server 代理操作员。此任务是唯一一个不封装Transact-SQL 语句或DBCC 命令的数据库维护任务。

执行维护计划最好按一定的顺序,首先是执行检查数据库完整性,然后是收缩数据库,重新生成索引或者重新组织索引任务,最后是更新统计信息。

重新生成索引或者重新组织索引要根据情况选择不同的操作,两个一起选择没有什么意义。决定使用哪种碎片整理方法的第一步是分析索引以确定碎片程度。使用系统函数sys.dm_db_index_physical_stats 可以检测特定索引、表或索引视图的所有索引、一个数据库中的所有索引或所有数据库中的所有索引中的碎片。知道碎片程度后,可以确定修复碎片的最佳方法。索引碎片不太多时,可以重新组织索引。不过,如果索引碎片非常多,重新生成索引则可以获得更好的结果。

我们公司这些任务都是一个星期运行一次,几个数据库加起来有200G,数据库也不算很大,每次运行要两个小时以上,所以都是在凌晨进行。如果进行的是重新生成索引那么在执行的时候表是无法访问的,现在也没什么更好的解决方案。这个问题还在继续学习中!

解SQL Server“数据库维护计划”

因为一个维护计划允许同时维护多个数据库,所以此处可以显示出多个数据库的名称(在图1中可以看到名为“系统数据库备份”的数据库维护计划中的“数据库”就包括三个数据库:master、model和msdb)。

3.服务器:也就是维护计划所维护的数据库所处的服务器的名称。“(local)”表示是本地服务器。

4.对策:是指维护计划所需要进行的具体维护工作的内容。

图1中有3个“数据库维护计划”均为“数据库备份,事务日志备份”,它的含义就是这些维护计划中同时对所指定的数据库进行“数据库”和“事务日志”的备份。

第三步:创建“数据库维护计划”

鼠标右击“数据库维护计划”项目,选择“新建维护计划(P)”功能,将打开“数据库维护计划向导”窗体,依照此向导能够创建一个新的“数据库维护计划”。

步骤1:单击“下一步(N)”按钮,打开“选择数据库”窗体(如图2)。在此窗体中可以选定一个或多个的数据库作为操作对象。为了叙述方便,我在此只选择了一个数据库“regie”。

图2

步骤2:单击图2中的“下一步(N)”按钮,打开“更新数据优化信息”窗体(如图3)。

图3

在此窗体中可以对数据库中的数据和索引重新进行组织,以及能够设定在满足一定条件的情况下,维护计划自动删除数据库中的未使用的空间,以便提高性能。

但要注意的是,在此窗体中,只要选定了“重新组织数据和索引页[R]”复选框,“更新查询优化器所使用的统计。示例[D]”复选框将失效(变成灰色,不能选择)。而且“重新组织数据和索引页[R]”复选框和“从数据库文件中删除未使用的空间[M]”复选框二者只要有一个被选中,其下的“调度[S]”功能才有效。单击“更改[C]”按钮可以对“调度”进行自定义。

各位读者可以根据自身情况决定是否选用其中的功能。当然也可以通过单击“帮助”按钮来查看各功能的具体含义。

在此窗体中能够便捷地设定每项作业的持续运行时间和运行的频率。完成自己的设置后,一定要选定右上角的“启用调度[B]”复选框,这样一个作业调度才算真正完成了。

步骤3:单击图3中的“下一步(N)”按钮,打开“检查数据库完整性”窗体。

在此窗体中可以设定维护计划在备份数据库前自动检查数据库的完整性,以便检测由于硬件或软件错误而导致数据的不一致。在此窗体中只有先选定了“检查数据库完整性[H]”复选框,其下的“备份之前执行这些检查[R]”和“调度[S]”功能才有效。单击“更改[C]”按钮可以对“调度”进行自定义。

各位读者可以自主决定,较好的一种做法就是选中“检查数据库完整性[H]”复选框(推荐,因为有可能会修正一些错误)。

步骤4:在“检查数据库完整性”窗体中的“下一步(N)”按钮,打开“指定数据库备份计划”窗体。

如需对数据库进行备份,则必须选定“作为维护计划的一部分来备份数据库[A]”复选框,而且必须指定存储备份文件的位置:磁带[P]或磁盘[K]。

如果选择“磁盘[K]”作为数据库备份的位置,设定“调度”后单击“下一步(N)”按钮则显示“指定备份磁盘目录”窗体(如图4)。

图4

在图4中,可以具体指定存储备份文件的目录(可以使用默认的目录,也可自定义)、备份文件扩展名,而且能够指示备份计划自动地删除早于某个时间(图4中设定的是“2天”,也就是说两天前的所有备份文件将被自动地删除,只留下最近两天的备份)的备份文件。而图4中的“为每个数据库创建子目录[C]”功能只是在步骤1中选择了多个数据库时才有用,对于一个数据库作用不大。设定后,单击“下一步(N)”按钮则显示“指定事务日志备份计划”窗体。

如果选择“磁带[P]”作为数据库备份的位置,设定“调度”后单击“下一步(N)”按钮则直接显示“指定事务日志备份计划”窗体。

SQL数据库基础知识集合

1、数据库简介: 数据库是专门开发数据管理的软件,或者说专门管理数据的软件就是数据库。 数据库存在的意义就是:减轻开发人员的负担。数据库是一个综合的软件,那么我们不需要队要进行2进制保存数据进行处理了,但是却是要与数据库产生交互,那么命令式SQL,有技巧的,数据库就是万物皆关系(面向对象,万物皆是对象)有所区别。 2、数据库的发展: 一开始的是层次化的数据与网状数据库,后来也发现使用确实很麻烦。 于是到了1970年EF.Cold博士(IBM公司的研究员)开创了关系性的数据库的先驱,发表了关系性数据库的论文,但是由于当时电脑硬件的局限性,大家觉得跑如此大的程序不值得。后来,Oracle(甲骨文)公司的创始人,拉里带领Oracle投入到关系型数据库的研发,并且得到了一个大客户—美国国防部。随即开始世界刮起了关系数据库的旋风,随后各个公司都纷纷推出自己的数据库系统。比如:IBM的DB2 ,还有风靡一时的DBS3。 但是随即出现不兼容的问题,由于最早的时候都没有进行没规范。所以到最后各个数据库巨头统一了操纵数据库的SQL(结构化Struct数据查询语言)变成了标准语言,而关系型数据库也俨然变成大家的宠儿,Oracle也从一个小公司,变成现在的数据库巨头,而我们的微软也推出了SQLServer。当然还有PHPer的最爱mySQL。但是mySQL被SUN,SUN 被Oracle收购,现在有免费版与收费专业版了。所以我们学习SQL语言的时候,先学共同点,再学特异性。各种数据库软件在使用上有一点区别。 3、数据库系统详解: 为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。 数据库系统一般由4个部分组成: 数据库,即存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。(个体) 数据库管理系统(DBMS)。一组能完成描述、管理、维护子数据库的程序系统。它按照一种公用的和可控制的方法完成插入新数据、修改和检索原有数据的操作。 数据库管理员(DBA)。 用户和应用程序。(微软的称作SSMS) 4、数据库系统的基本要求是: 1、能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。 2、冗余数据少,数据共享程度高。 3、系统的用户接口简单,用户容易掌握,使用方便。 4、能够确保系统运行可靠,出现故障时能迅速排除,能够保护数据不受非受权者访问或破坏,能够防止错误数据的产生,一旦产生也能及时发现。 5、有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。 6、具有可修改性和可扩充性、可维护性。 7、能够充分描述数据间的内在联系。 5、数据库(Database): 由众多的数据、数据表、约束、存储过程、函数、视图、索引构成的一个数据存储与交互单元,是按照数据结构来组织、存储和管理数据的仓库。 6、数据表(table): 数据表,实际上是一个二维表。一般是围绕一个事务、动作记录,或者是一个信息主题作为一个数据表。数据表由行与列构成。 7、列(column、field): 列,其实就是字段。也是决定了信息的基本单元。列,包含有数据类型的设定。 8、行(row、record): 行,实际上就是一条基本信息。一行包含了多列数据的存储的信息。所以一行也有一条记录之称。 9、行业(trade) 一个行业一种需求,没一个需求每一种数据库的设计模式与思想。每个行业的数据设计的重点都是不同的。侧重查询(要求低范式)还是操作(要求搞范式)就是自己选择的问题了。 10、索引(index) 索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引其实就是一个B+树,但是这个索引是N^n层数次方的。目的就是在数据库中划分出一定的区域优化查询。可以提升大量数据的查询速度。索引一般可以分为:基于字段优化查询速度的普通索引、唯一性索引、主键索引、全文索引、单列与多列索引。现在由于数据库系统的不断升级,我们只要设定索引就可以了,不需要特殊的维护。而且数据在查询的时候也会根据查询适当地选择是利用索引查询,还是仅仅是表查询。由于数据库系统的发展,系统内部已经自动帮我们完成对索引的维护。但是在设计的时候要考虑到索引的损耗问题。数据库DB就像是一个字典,索引就是根据指定字段制成的快速指向。由于只是指向数据对象标识,真正的数据是存储在DB中,所以查询速度极快。但是额外的内存与硬盘花销也是一个需要考虑的问题。比如:增加、删除、修改时数据库都要对索引进行维护,但是这样也是为了最后查询的效率的提升,特别适合W行级别的数据查询。而索引可以分为:隐式索引(针对单个字段)、唯一索引(唯一约束)、函数索引(函数(字段))、聚簇索引(主键)、组合索引(最多16个field)与全文索引(text)。一般索引会占用原数据库大小的20%。 11、视图(view) 固化的子查询,将一个子查询起了一个固化的名字,保存在数据库中,方便以后的使用。其实调用大量的Join来进行一个查询一般也是用视图。视图与索引都是为了优化查询的速度与语句。视图是优化语句,索引是优化单查速度。一般是DBA来设定数据库的视图,封装内部数据库的数据关系,范式修改数据容易了,视图让我们查询复杂关系的数据变得容易。 12、触发器(trigger) 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。触发器可以从DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。 13、SQLServer数据类型详解

关系数据库标准语言SQL练习题

关系数据库标准语言 S Q L练习题 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

第3章关系数据库标准语言SQL 一.单项选择题 1.SQL语言是▁▁▁▁▁的语言,易学习。 A.过程化 B非过程化 C.格式化 D导航式 B 2.SQL语言是▁▁▁▁▁语言。 A.层次数据库 B.网络数据库 C.关系数据库 D非数据库 3.SQL语言具有▁▁▁▁▁的功能。 A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 C.数据定义、关系规范化、数据操纵 4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是▁▁▁▁▁。A.SELECT B.INSERT C.UPDATE D.DELETE 5.在关系代数运算中,五种基本运算为▁▁▁▁▁。 A.并、差、选择、投影、自然连接 B.并、差、交、选择、投影 C.并、差、选择、投影、乘积 D.并、差、交、选择、乘积 6 .SQL语言中,实现数据检索的语句是▁▁▁▁▁。 A.SELECT B.INSERT C.UPDATE D.DELETE 7.下列SQL语句中,修改表结构的是▁▁▁▁▁。 A.ALTER B.CREATE C.UPDATE D.INSERT 第8到第11题基于这样的三个表,即学生表S、课程表C和学生选课表SC,他们的结构如下: S(S#,SN,SEX,AGE,DEPT); C(C#,CN); SC(S#,C#,GRADE) 其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程CN为课程名,GPADE为成绩。 8.检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是▁▁A▁▁。 A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=“王华”) B.SELECT SN,AGE,SEX FROM S WHERE SN=“王华” C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN=“王华”) D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华.AGE 9.检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是▁▁D▁▁。 A.SELECT S# FORM SC WHERE C#=“C2”AND GRADE>=(SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC WHERE C#=“C2”AND GRADE IN(SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC WHERE C#=“C2”AND GRADE NOT IN(SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC WHERE C#=“C2”AND GRADE>=ALL(SELECT GRADE FORM SC WHERE C#=“C2”)

SQL银行数据库管理语句(详细版)

create table UserInfo( CustomerId char(20), CustomerName char(50)not null, PID varchar(20)unique, Telephone varchar(20), Address char(50), PRIMARY KEY(CustomerId)) create table CardInfo( cardID char(50)not null, curType varchar(10)not null default'RMB', savingType varchar(10), openDate datetime default getdate(), openMoney int not null, balance int not null, pass char(50)not null default'888888', IsReportLoss char(50)not null default'否', customerID char(20)not null foreign key(customerID)references userinfo(customerID), PRIMARY KEY(CardId)) create table TransInfo( transDate datetime not null default'getdate()', cardID char(50)foreign key(cardID)references cardinfo(cardID), transType char(10)not null, transMoney bigint not null, remark char(20), ID int identity(1,1)not null) Insert into userinfo values('10001','李清','420101************','2071-84216821','湖北武汉'); Insert into userinfo values('10002','玉清','420101************','2071-84216820','湖北武汉'); INSERT INTO CardInfo V ALUES('102128001','RMB','活期',getdate(),'10000','10000','84212121','否','10001'); INSERT INTO CardInfo V ALUES('102128002','RMB','活期',getdate(),'10001','10001','84202020','否','10002');

关系数据库标准语言SQL(一)

关系数据库标准语言SQL(一) (总分:19.00,做题时间:90分钟) 一、{{B}}选择题{{/B}}(总题数:7,分数:7.00) 1.在SQL语言中,删除视图的语句是 ______。 (分数:1.00) A.ALTER VIEW B.DROP VIEW √ C.ZAP VIEW D.DELETE VIEW 解析: 2.关系数据库的数据语言是 ______ 的语言,其核心部分为查询,因此又称为查询语言。 (分数:1.00) A.过程化 B.非过程化√ C.宿主 D.系列化 解析: 3.实现“收回用户U4对学生表STUD中学号(XH)的修改权”这一功能的正确SQL语句是 ______。 (分数:1.00) A.REVOKE UPDAE(XON TABLE FROM U4 B.REVOKE UPDAE(XON TABLE STUD FROM PUBLIC C.REVOKE UPDAE(XON TABLE STUD FROM U4 √ D.REVOKE ALL PRIVILEGES ON TABLE FROM U4 解析: 4.在嵌入式SQL中,主语言向SQL语句输入数据,主要用主变量来实现。为了区别字段名,要求主变量名前必须加符号 ______ 作标志。 (分数:1.00) A.;(分号) B.、(顿号) C.+(加号) D.:(冒号) √ 解析: 5.在SQL语言中,CREATE VIEW语句用于建立视图。如果要求对视图更新时,必须满足子查询中的条件表达式,应当在该语句中使用短语 ______。 (分数:1.00) A.WITH UPDATE B.WITH INSERT C.WITH DELETE D.WITH CHECK OPTION √ 解析: 6.为使程序员编程时既可使用数据语言又可使用常规的程序设计语言,数据库系统需要把数据库语言嵌入到 ______ 中, (分数:1.00) A.编译程序 B.操作系统 C.中间语言 D.宿主语言√

sql数据库期末考试题及答案

一、单选题(共 10 道试题,共 50 分。)V 1. SQL Server中,保存着每个数据库对象的信息的系统表是()。 A. sysdatabases B. Syscolumns C. Sysobjects D. Syslogs 满分:5 分 2. 在存在下列关键字的SQL语句中,不可能出现Where子句的是()。 A. Update B. Delete C. Insert D. Alter 满分:5 分 3. 在查询语句的Where子句中,如果出现了“age Between 30 and 40”,这个表达式等同于()。 A. age>=30 and age<=40 B. age>=30 or age<=40 C. age>30 and age<40 D. age>30 or age<40 满分:5 分 4. 如果要在一管理职工工资的表中限制工资的输入围,应使用()约束。 A. PDRIMARY KEY B. FOREIGN KEY C. unique D. check 满分:5 分 5. 记录数据库事务操作信息的文件是()。 A. 数据文件 B. 索引文件 C. 辅助数据文件 D. 日志文件 满分:5 分 6. 要查询XSH数据库CP表中产品名含有“冰箱”的产品情况,可用()命令。 A. SELECT * FROM CP WHERE 产品名称LIKE ‘冰箱’ B. SELECT * FROM XSH WHERE 产品名称LIKE ‘冰箱’ C. SELECT * FROM CP WHERE 产品名称LIKE ‘%冰箱%’ D. SELECT * FROM CP WHERE 产品名称=‘冰箱’ 满分:5 分 7. 储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是()。 A. 一对一的联系 B. 一对多的联系 C. 多对一的联系 D. 多对多的联系 满分:5 分

关系数据库标准语言SQL练习题

第3章关系数据库标准语言SQL 一.单项选择题 1.SQL语言是▁▁▁▁▁的语言,易学习。 A.过程化 B非过程化 C.格式化 D导航式 B 2.SQL语言是▁▁▁▁▁语言。 A.层次数据库 B.网络数据库 C.关系数据库 D非数据库 3.SQL语言具有▁▁▁▁▁的功能。 A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 C.数据定义、关系规范化、数据操纵 4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是▁▁▁▁▁。A.SELECT B.INSERT C.UPDATE D.DELETE 5.在关系代数运算中,五种基本运算为▁▁▁▁▁。 A.并、差、选择、投影、自然连接 B.并、差、交、选择、投影 C.并、差、选择、投影、乘积 D.并、差、交、选择、乘积 6 .SQL语言中,实现数据检索的语句是▁▁▁▁▁。 A.SELECT B.INSERT C.UPDATE D.DELETE 7.下列SQL语句中,修改表结构的是▁▁▁▁▁。 A.ALTER B.CREATE C.UPDATE D.INSERT 第8到第11题基于这样的三个表,即学生表S、课程表C和学生选课表SC,他们的结构如下: S(S#,SN,SEX,AGE,DEPT); C(C#,CN); SC(S#,C#,GRADE) 其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程CN为课程名,GPADE为成绩。 8.检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是▁▁A▁▁。 A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=“王华”) B.SELECT SN,AGE,SEX FROM S WHERE SN=“王华” C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN=“王华”) D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华.AGE 9.检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是▁▁D▁▁。 A.SELECT S# FORM SC WHERE C#=“C2”AND GRADE>=(SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC WHERE C#=“C2”AND GRADE IN(SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC WHERE C#=“C2”AND GRADE NOT IN(SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC WHERE C#=“C2”AND GRADE>=ALL(SELECT GRADE FORM SC WHERE C#=“C2”) 10.检索学生姓名及其所选修课程号和成绩。正确的SELECT语句是▁▁▁C▁▁。

SQL2008数据库使用手册

SQL数据库用户使用手册 如何将本地SQL数据库导入到万网主机上,一般分为4个步骤 示例: 第一步:通过SQL脚本生成表结构,可以保证本地数据库中视图、存储过程、以及表的默认值、标识、主键等属性的完整性,避免由于DTS传输引起丢失属性的问题,同时使用查询分析器执行SQL脚本,在服务器端创建表结构; 1)、请您先运行本地的企业管理器 2)、请您点击您本地的数据库点击右健-》选择生成SQL脚本

3)、选择常规-》点击全部显示,选择您想导出的脚本对象 4)、点击选项-》表脚本选项,把您所用到的脚本选中然后点击确定 5)为自己导入的.sql脚本文件命名,并保存在本地

6)、找到刚才我们保存在本地的.sql脚本文件,使用记事本打开 7)、选择编辑-》替换,把程序中所有[dbo]的字符都更改成您万网发信告知您的数据库登

陆名,更换完成后保存关闭记事本 8)、通过万网通知书中的数据库登陆地址、数据库登陆名、和数据库密码,使用企业管理器连接到万网的主机服务器上,然后选择查询分析器

9)、点击打开选择刚才编辑过的.sql脚本,然后点击运行 第二步:在本地创建一个和万网主机相同权限的SQL数据库 1)、完成上面操作后,请您选择数据库点击右键选择新建数据库,由于您在万网申请的是虚拟主机,万网分配的权限都是user的而不是dbo的权限,因此需要您在本地也创建一个与服务器一样的配置,以便正常完成导入操作

2)、在常规-》名称处输入万网开通通知中告知您的数据库库名,然后点击确定。例如:cw01001_db 3)、选择安全性-》新建登陆

关系数据库标准语言SQL汇总

关系数据库标准语言SQL 一、SQL概述与查询功能 1、SQL概述 SQL是Structured Query Language(结构化查询语言)的缩写。可以说查询是SQL语言的重要组成部分,但不是全部,SQL还包括数据定义、数据操纵和数据控制功能等部分。Visual FoxPro在SQL方面支持数据定义、数据查询和数据操纵功能,但在具体表现方面也存在一些差异,由于安全控制方面的缺陷,没有提供数据控制功能。 2、查询功能 Visual FoxPro的SQL SELECT命令格式如下:SELECT……FROM……[WHERE……][GROUP BY……][HAVING……][UNION[ALL]……][ORDER BY……] SELECT [ALL|DISTINCT][<别名>.]<选项>[AS<显示列名>][,[<别名>.]<选项>[AS<显示列名>]…]FROM [<数据库名>!]<表名>[[AS]<本地别名>][[INNER|LEFT|[OUTER]|RIGHT[OUTER]|FULL[OUTER]JI ON<数据库名>!]<表名>[AS]<本地别名>][ON<连接条件>…][[INTO<目标>|[TO FILE<文件名>][ADDITIVE]|TO PRINTER [PROMPT]|TO SCREEN]][PREFERENCE<参照名>][NOCONSOLE][PLAIN][NOWAIT][WHERE<连接条件

1>[AND <连接条件2>…]AND|OR <过滤条件1>[AND|OR <过滤条件2>…]]][GROUP BY <分组列名1>[,<分组列名2>…]][HAVING<过滤条件>][UNION[ALL]SELECT命令][ORDER BY <排序选项1>[ASC|DESC][,<排序选项2>[ASC|DESC]…]] SELECT说明要查询的数据。 FROM说明要查询的数据来自哪个(些)表。 WHERE说明查询条件,即选择元组的条件。 GROUP BY用于对查询结果进行分组,可以利用它进行分类汇总。HAVING必须跟随GROUP BY使用,客观存它用来限定分组必须满足的条件。 ORDER BY用来对查询的结果进行排序。 数据查询语句 SQL数据查询命令是SELECT命令。该命令的基本框架是SELECT…FROM…WHERE,它包含输出字段、数据来源、查询条件等基本子句。在这种固定格式中,可以不用WHERE,但是SELECT 和FROM是必备的。 基本查询 所谓基本查询是指无条件查询,其常用格式是: SELECT [ALL|DISTINCT][〈别名〉.]〈选项〉[AS 〈显示列名〉][,[〈别名〉.]〈选项〉[AS 〈显示列名〉…]]FROM 〈表

实验一 关系数据库标准语言SQL

实验一关系数据库标准语言SQL 班级:姓名:学号: 任课教师:实验教师:上机时间: 【实验目的】 1、MS SQL SERVER认识及其环境熟悉,了解T-SQL对标准SQL的扩充。 2、掌握T-SQL环境下数据定义包括数据库、基本表、视图、索引定义。 3、掌握T-SQL环境下数据操纵包括数据插入、删除、修改。 4、掌握T-SQL环境下数据查询及其各种变化。 5、理解T-SQL环境下数据控制。 【实验性质】 验证性实验 【实验学时】 4H 【实验内容】 设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成; 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成; 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。 今有若干数据如下:

请根据以上内容完成下面题目,写出相应的SQL语句。(空位不够请自行续页) 1、创建数据库,置为当前数据库 2、创建表 3、插入数据 4、请用SQL语句完成下面题目的查询。 (1)求供应工程J1零件的供应商号码SNO: (2)求供应工程J1零件P1的供应商号码SNO: (3)求供应工程J1零件为红色的供应商号码SNO: (4)求没有使用天津供应商生产的红色零件的工程号JNO: (5)求至少用了供应商S1所供应的全部零件的工程号JNO: 5、请用SQL语句完成下面题目的查询。 (1)找出所有供应商的姓名和所在城市。 (2)找出所有零件的名称、颜色、重量。 (3)找出使用供应商S1所供应零件的工程号码。 (4)找出工程项目J2使用的各种零件的名称及其数量。

SQL数据库完全操作手册

SQL数据库完全操作手册 SQL是Structured Quevy Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。 ##1 二、SQL数据库数据体系结构 SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。名称对称如^00100009a^: ##1 三、SQL语言的组成 在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL 语言的组成: 1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。 2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。 3.一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。 4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。 5.用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。 6.SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。 ##1 四、对数据库进行操作 SQL包括了所有对数据库的操作,主要是由4个部分组成: 1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。 2.数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。 3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。 4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。下面我们将分别介绍: ##2 (一)数据定义 SQL数据定义功能包括定义数据库、基本表、索引和视图。 首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^) 1.数据库的建立与删除 (1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为: CREATE DATABASE <数据库名> [其它参数] 其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。[其它参数]因具体数据库实现系统不同而异。 例:要建立项目管理数据库(xmmanage),其语句应为: CREATE DATABASE xmmanage

SQL数据库语句大全大全(完全整理版)

SQL语句大全--语句功能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 -数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引 DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器 CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征 --程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标

SQL2005数据库安装详细步骤(带图解说明)

1,安装前准备: 安装IIS,打开控制面板,点“添加或删除程序”,点“添加/删除Windows组件(A)”,把“Internet 信息服务(IIS)”前面的勾选框的勾选上,点“下一步”,一路确认完成。这个过程一般没有问题。 当然,要装SQL Server 2005,当然要准备安装程序(光盘),也就要选对版本。 我之前下载了个“Microsoft SQL Server 2005 Enterprise Edition”,兴冲冲的去安装,安装不成功,最后看他的安装说明里面恰好这个版本“Windows XP Professional Edition SP24”是不能安装的,背啊。。。。才知道磨刀不误砍材功的道理,后来去下载了“Microsoft SQL Server 2005 Standard Edition”,920MB的压缩包。 2,SQL Server 2005的安装光盘共有2张,先打开第一张,点“服务器组件、工具、联机丛书和示例(C)”

此步骤系统配置检查很重要,14个项目里面如果有1项有错误或者警告,整个SQL Server 2005都将不正常。 我第一次在一台笔记本的Windows xp2系统上安装就遇到了一个COM+组建的警告,以为没有什么大不了,不过最后是发现程序不能正常运行,在google,百度上搜索半天,操作了半天,结果还是问题依旧。不过我回家第二次在台式机上的Windows xp2安装就没有问题,一切正常。 看来和Windows xp2的系统版本没有关系,而是我的笔记本电脑的Windows xp2系统不正常了,可能重新装下系统就可以正常安装SQL Server 2005了。 重装系统看来是遇到问题的唯一法宝——除非你是那种专家级别的高手。在这个步骤遇到问题或者错误警告还是举手投降了,选择重新安装系统。可能那样解决问题的时间还要短些。烦恼也少些。

实验报告2-关系数据库标准语言SQL

实验报告2-关系数据库标准语言SQL

实验2:关系数据库标准语言SQL 一.实验目的 通过本实验使学生掌握SQL语言的数据定义功能、数据查询功能和数据操纵功能。 二.实验类型验证型 三.实验学时 4学时 四.实验原理及知识点 1.SQL语言的数据查询功能 2.SQL语言的数据定义功能 3.SQL语言的数据操纵功能 五.实验环境 1.硬件设备要求:PC及其联网环境; 2.软件设备要求:Windows操作系统;MS SQL Server数据库管理系统。 六.实验内容及步骤 在STUDENT数据库中,根据要求使用SQL语言完成下列操作,将SQL语句以.sql文件的形式保存在自己的目录下。 1.查询选修了课程的学生的学号。 2.查询学生学号和出生年份。 3.查询计算机系学生的学号、姓名。 4.查询年龄在20岁与22岁之间(包括20和22岁)的学生姓名和年龄。 5.查询学生姓名中含有“波”字的学生情况。 6.查询缺少学习成绩的学生学号和课程号。 7.查询选修C601课程的学生的学号和成绩,并按分数的降序排列。 8.求选修了课程的学生人数。 9.求课程C601的平均成绩。 10.求选修课程超过2门的学生学号。 11.查询参加学习的学生所学的课程号和总分。 12.查询选修高等数学课程且成绩在80分以上的学生的学号、姓名。 13.查询每一课程的间接先行课(即先行课的先行课)。 14.查询年龄低于所有工程系学生的学生姓

名、所在系、年龄。 15.找出刘建平老师所开全部课程的课程号、课程名。 16.找出全部课程的任课教师。 17.求学生1203所学课程的总分。 18.找出所有姓张的学生的姓名和籍贯。 19.找出至少一门课程的成绩在90分以上的女学生的姓名。 20.求每一年龄上人数超过2的男生的具体人数,并按年龄从小到大排序。 21.把学生的学号及他的平均成绩定义为一个视图GRADE_VIEW。 22.创建一个从student、course、study表中查出计算机系的学生及其成绩的视图computer_view,要求显示学生的学号sno、姓名name、课程号cno、课程名称cname、成绩grade。 23.在Student表中依据学生姓名创建索引name_index。 24.在Study表中依据sno和cno创建索引main_index。 25.将课程C603的任课老师改为“赵明”。 26.在Student表中插入两个学生记录:'1201','吴华', '女',20,'成都','计算机系' '1102','张军', '男',21,'上海','工程系' 27.删除年龄在21岁以上的学生记录。 --1 SELECT DISTINCT Sno'学号' FROM Student_course;

SQL数据库学习心得

SQL数据库学习心得 一数据库课程总结 (一)数据库概述 1 数据 (1)数据库中存储的基本对象,是描述事物的符号记录(如存储某一个人 (2) 数据的种类包括文字、图形、图象、声音 (3)数据的特点是数据与其语义是不可分的。 2 数据库 (1)(database,简称DB)是指长期存储在电脑内有组织的、可共享的数据集合; (2)数据库管理系统(Database Management System,简称DBMS),是位于用户与操作系统之间的一层数据管理软件。 3 关系数据库基础 (1)元组(Tuple)表中的一行即为一个元组。 (2)属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名。 (3)主码(Key)表中的某个属性组,它可以唯一确定一个元组。 (4)域(Domain)属性的取值范围。 (5)分量元组中的一个属性值。 (二)SQL Server概述 1 SQL Server的版本 (1)企业版,作为生产使用 (2)个人版,供移动用户使用 (3)标准版,作为小工作组或部门使用 (4)开发板,供程序员开发测试使用 2 SQL数据库的创建 (1)创建数据库的过程就是确定数据库名称、大小、存放位置等信息。 (2)数据库文件包括主数据库文件(.mdf)、次数据文件(.ndf)、事务日志文件(.ldf)(3)3种方式创建数据库:使用数据库创建向导、使用企业管理器、使用SQL语句在查询分析器中创建。 (三)数据库中的表 1 创建表两种方式:使用企业管理器、使用SQL语句

2修改表,修改操作包括:增加字段、删除字段、修改字段(名称、修改其已有的属性)两种方式,使用企业管理器、使用SQL语句 (四)数据查询 1基本的SELECT语句,例查询Readers表中所有记录的信息SELECT*FROM Readers 2查询语句的统计功能 3数据的连接 外连接的结果集中,不仅包括满足连接条件记录,还包括不满足连接条件的记录。连接方式分为:左外连接、右外连接、全外连接。 (五)数据完整性 1定义:数据完整性是指存储在数据库中的数据的一致性和准确性。 2实体完整性 又称行完整性,要求表中不能存在完全相同的记录,而且每条记录都要具有一个非空且不重复的主键值。 3使用约束:约束是保证数据完整性的有效方法, (1)PRIMARY KEY(主键约束)特点:每个表只能定义一个主键、主键值不可为空、主键值不可重复。 (2)UNIQUE(唯一约束)确保表中的某非主键列不输入重复值,PRIMARY KEY 与 UNIQUE的区别、约束数量、是否允许NULL值 (3)CHECK(检查约束),用于限制输入到列中的值的范围 (六)数据库的安全 1对于SQL Server来说,提供身份验证和权限验证两种保护方式。 (1)身份验证模式: Windows验证模式,只限于本机使用;混合验证模式,本机或远程均可访问 2 角色管理是一种权限管理的方法,角色中的每一用户都拥有此角色中的所有权限。 3数据库角色提供了在数据库级别上的管理权限组。 (七)备份与恢复 1备份数据库,使用SQL语句备份 步骤:(1)创建备份设备 (2)备份数据库(完全数据库备份、差异备份、日志备份、文件与文件组备份) 2恢复数据库(使用企业管理器恢复、使用SQL语句恢复)

关系数据库标准语SQL习题五

关系数据库标准语SQL习题五一、单选题 1.Visual FoxPro中支持的SQL功能不包括()。A)数据定义 B)数据修改 C)数据查询 D)数据控制 2.SQL SELECT语句的功能是()。 A)定义 B)查询 C)修改 D)控制 3.SELECT语句中,用于排序的子句是()。 A)ORDER BY B)FROM C)GROUP BY D)INTO 4.SELECT语句中用于分组的短语是()。 A)ORDER BY B)MODIFY C)GROUP BY D)SUM

5.下面有关HAVING子句的描述错误的是()。 A)HAVING子句必须与GROUP BY子句同时使用,不能单独使用 B)使用HAVING子句的同时不能使用WHERE子句 C)使用HAVING子句的同时可以使用WHERE子句 D)使用HAVING子句的作用是限定分组的条件 6.SELECT语句中,只有满足连接条件的记录才能包含在查询结果中的选项是()。A)LEFT JOIN B)RIGHT JOIN C)INNER JOIN D)FULL JOIN 7.下列是字符串匹配运算符的是()。 A)LIKE B)AND C)IN D)= 8.SELECT语句中,表达式“工资BETWEEN 1220 AND 1250”的含义是()。 A)工资> 1220 AND 工资< 1250 B)工资> 1220 OR 工资< 1250 C)工资>= 1220 AND 工资<= 1250 D)工资>= 1220 OR 工资<= 1250 9.UPDATE语句的功能是()。 A)属于数据定义功能

B)可以修改表中列的内容 C)属于数据查询功能 C)可以修改表中列的属性 10.要为“职工”表的所有职工增加100元工资,正确的SQL命令是()。A)REPLACE 职工SET 工资= 工资+100 B)UPDATE 职工SET 工资= 工资+100 C)EDIT 职工SET 工资= 工资+100 D)CHANGE 职工SET 工资= 工资+100

sql数据库实例(数据库入门)word版本

s q l数据库实例(数据 库入门)

数据库设计及应用实验 一、实验内容 创建数据库:包括Student, Course, Enroll, Statistics表,表的结构如下: Student (sno, sname, age, sex) Course (cno, cname, credit) Enroll (sno, cno, grade) Statistics (sno, cNumber, creditSum) 说明:cNumber是sno学生选修课程的数目;creditSum是sno学生选修课程的总学分。 1、设计并在MS SQL Server 2000中创建以上表结构,并设置完 整性约束。 2、查询所有选修课程的学生的基本信息、课程信息及相应的考试 成绩。 3、查询所有学生的信息,若已选课就还要给出选修课程的信息及 考试成绩。 4、查询所有课程的信息,若课程有学生选修就还要给出选修课程 的学生的信息及考试成绩。 5、查询选修名为“数据库”的课程的考试成绩最高的学生的信息。 6、对Student的age创建规则,满足18≤age≤25,并给出验证实例 及验证结果。

7、创建触发器:当学生选修一门新的课程后,Statistics表的 cNumber自动加1,且creditNumber自动增加新选课程的学分。 8、创建视图:找出所有已修学分超过6、所修课程平均分不低于 60的学生的基本信息、以及所修课程的平均分。按照平均分排序,若平均分相同按照学号排序。 9、对于如下一组数据操作: (1)select * from course; (2)select * from course where cname=’数据库’ (3)select * from course where credit=3 (4)select * from course where credit>2 and credit<5 (5)update course set credit=3 where credit=2 对Course表的credit属性创建索引,并给出上述查询在创建了该索引后的执行计划; 去掉Course表的credit属性上创建的索引,并给出上述查询的执行计划。 对上述有无索引个查询执行的情况进行对比分析,总结出什么时候索引有效? 10、将表Student、Course、Enroll作内连接的结果发布为HTML 网页格式。

相关文档
最新文档