T-SQL语句创建一个更改表数据的sql语句库名称为STUDENTS,有1个5MB和1个10MB的更改表数据的sql语句文件和2个5T?

任务目标:本章设计了一个简单数据库Manage,用于对客户、货物以及客户对货物的订货信息进行管理,来帮助大家学习和理解数据库管理。通过Manage数据库应用,达到掌握SQL Server 2012的相关知识的目标,学会数据库的管理、信息的有效组织、数据库的高级应用、数据库的安全操作等技能。本章是实现Manage数据库的基础,首先应掌握SQL Server数据库的基本知识,包括数据库系统以及数据库文件结构等概念,在此基础上通过对数据库的创建、修改、删除、分离和附加等操作,完成数据库管理项目的相关任务操作。

从数据库管理员的角度,SQL Server数据库的物理表现形式是数据文件,即一个数据库由一个或多个磁盘上的文件组成。这种物理表现只对数据库管理员是可见的,对用户是透明的,可称为物理数据库。

从数据库用户的角度,SQL Server数据库是由存放数据的表和对这些数据进行各类操作的逻辑对象共同组成的一个集合。这种集合称为逻辑数据库,组成逻辑数据库的各种对象称为数据库对象。

2.1.1 数据库文件分类

SQL Server数据库是以文件的形式存储在磁盘上的,根据文件作用不同可以分为三种类型,为了便于文件管理,可将数据库文件分成不同的文件组。

● 主数据文件,是数据库的关键文件,包含数据库的启动信息、数据库对象、其他文件的位置信息以及数据等。每个数据库必须有且仅有一个主数据文件,其扩展名为.mdf。

● 辅助数据文件,用于存储未包含在主文件中的数据信息。使用辅助数据文件可以扩展数据库的存储空间。若数据库只有主数据文件来存储数据,则主数据文件的最大容量将受到整个磁盘空间的限制;若采用了辅助数据库文件,并将多个文件存放在不同的磁盘上,则数据库的容量不再受一个磁盘空间的限制。每个数据库可有0个或多个辅助数据文件,其扩展名为.ndf。

● 事务日志文件,用来记录对数据库的所有修改操作和执行每次修改的事务,保存恢复数据库所需的事务日志信息。SQL Server遵循先写日志再执行数据库修改操作(如

INSERT、UPDATE、DELETE等SQL命令)的原则,一旦发生数据库系统崩溃,数据库管理员可以通过日志文件完成数据库的修复与重建。每个数据库有一个或多个事务日志文件,其扩展名为.ldf。

为了扩展存储空间,在创建数据库时常将多个数据文件存放在不同的磁盘上,并把多个数据文件组成一个或多个文件组。创建数据库对象时可以指定它所在的文件组,但不能指定文件,这样当对数据库对象进行操作时,由数据库对象找到它所在的文件组,再由文件组找到组中的数据文件。数据库根据组内数据文件的大小,按比例写入组内所有数据文件中,而不是将组内第一个数据文件写满后再写第二个、第三个……这样可以使多个磁盘同时并行工作,大大提高了读写速度,又使组内的数据文件同时写满。

每个数据库中都有一个文件组作为默认文件组,即主文件组PRIMARY。若创建表或索引时没有为其指定文件组,则将从默认文件组中进行存储页分配、查询等操作。

注意:在一个数据库中可以创建多个文件组,而一个数据库文件只能属于一个文件组,事务日志文件不属于任何文件组,一个数据文件或文件组只能被一个数据库使用。

2.1.2 数据库对象

数据库中的数据按不同的形式组织在一起,构成了不同的数据库对象。当一个用户连接到数据库服务器后,看到的是这些逻辑对象,而不是存放在物理磁盘上的文件。一个数据库对象在磁盘上没有对应的文件。

SQL Server数据库对象主要包括以下几方面。

● 表:SQL Server最主要的数据库对象,是由行和列组成的二维表,作为存放和操作数据的一种逻辑结构。

● 视图:从一个或多个基表中创建的虚拟表,数据库中只存放视图的定义,数据仍然存放在基表中。

● 索引:提供加快检索数据的方式,是对数据表某些列的数据进行排序的一种结构。

● 同义词:在架构范围内为存在于本地或远程服务器上的其他数据库对象提供备用名称的一种技术手段。

● 存储过程:一组经过预编译的SQL语句集合,用于完成特定功能。

● 触发器:能够被某些操作激发并自动触发执行的一种特殊的存储过程。

● 规则:用来限制表列数据范围、保障数据完整性的一种手段。

● 默认值:在用户没有给出具体数据时,系统所自动生成的数值。

● 约束:用来保障数据的一致性与完整性的简便方法。

SQL Server 2012包含用户数据库和系统数据库两类。

用户数据库是由用户自行创建的数据库,存储着用户的重要数据。

2.2.1 用户数据库

系统数据库是在安装SQL Server 2012时由安装程序自动创建的数据库。系统数据库存放着SQL Server运行和管理其他数据库的重要信息,是SQL Server 2012管理数据库的依据。如果系统数据库遭到破坏,SQL Server将不能正常运行。

2.2.2 系统数据库

SQL Server 2012包含5个系统数据库,分别是:master、tempdb、model、masb和resource。其中,前4个数据库是可见的,可以在SSMS中的【对象资源管理器】窗口(见图2.1)【系统数据库】节点中看到;resource数据库为隐藏数据库,它存在于sys框架中,无法显示在SSMS【系统数据库】节点中。

图2.1 【对象资源管理器】窗口内的系统数据库

master数据库是SQL Server的主控数据库,用于管理其他数据库和保存SQL Server系统信息。master数据库如果遭到破坏,SQL Server系统将无法启动。master数据库记录了SQL Server系统级的信息,包括系统中所有的登录账号、系统配置信息、所有数据库的信息、所有用户数据库的主文件地址等,这些信息都记录在master数据库的各个表中。

为了与用户创建的表相区别,这些表被称为系统表,表名多以“sys”开头。master数据库中包含的系统表很丰富,常用的部分系统表如表2.1所示。

用于保存系统表的特征值

保存服务器选项的代码、名称、当前设置

保存所有数据库的代码、名称、创建日期等信息

用于保存系统数据库设备和备份的信息

临时数据库tempdb用于存储用户创建的临时表、存储过程或用户声明的全局变量,以及用户通过游标筛选出来的数据,并为数据排序提供一个临时性工作空间。当用户离开SQL Server以后,在tempdb数据库中的临时信息将被自动删除。当再次启动SQL Server时tempdb数据库将被重建,当它的空间不够用时,系统自动扩展它的大小。

使用这个临时数据库不需要特殊的权限,不管SQL Server中安装了多少个数据库,临时数据库都只有一个。tempdb数据库是SQL Server中负担最重的数据库,因为几乎所有的查询都可能需要使用它。

model数据库是SQL Server 2012中的模板数据库,其中包含的各个系统表为每个用户数据库所共享。当创建一个用户数据库时,model数据库的内容会自动复制到该数据库中。通过修改模板数据库,可以对所有新数据库建立一个自定义的配置。所以我们可以把每一个新建数据库所需要的数据对象创建在model数据库中。

model数据库有19个系统表,另外还有一些视图和存储过程。表2.2中列出了model数据库中部分系统表信息。

表2.2 常用的数据库系统表

用于保存数据库中所有的数据库对象的信息,包括表、视图、存储过程、规则等

记录系统数据类型和用户定义的数据类型

记录数据库的数据文件和日志文件的信息

用于保存数据库的文件组信息

记录数据库中所有的用户和角色

msdb数据库用于存储报警、作业及操作员信息。SQL Server Agent(SQL Server代理)通过这些信息来调度作业,监视数据库系统的错误并触发报警,同时将作业或报警消息传递给操作员。

resource数据库包含SQL Server 2012中的所有系统对象。该数据库具有只读特性,即可以从resource数据库中读取相应的信息,但是不能够更改其信息。Resource数据库的物理文件名为mssqlsystemresource.mdf,该文件不允许移动或重新命名,否则SQL Server将不能启动。

2.3 使用SSMS操作数据库

2.3.1 创建数据库

创建数据库实质上就是定义数据库文件与设置数据库选项,包括确定数据库的逻辑文件名与物理文件名,规划数据库文件的容量,指定文件的增长模式,设计数据库的排序规则,选择数据库的字符集,设置数据库文件的存放位置等。

微课:使用SSMS创建数据库

注意:系统会根据用户输入的数据库的名称,自动生成数据库文件的相关属性,具体如下。

● 逻辑名称:数据库的逻辑文件名。

● 文件类型:用来标识创建的文件是存储记录(行数据)的数据文件,还是存储日常事务行为的日志文件。

● 文件组:用来标识创建的数据库所归属的文件组名称。文件组包含所有的系统表。一个数据库文件只能存在于一个文件组中。日志文件不允许属于任何文件组。

● 初始大小:用来设置空数据库文件的初始空间大小值(单位默认为MB)。刚创建的数据库只有系统表,而不存在用户数据库对象,因此初始文件大小可以比较小。以后随着数据库量增长,可以自动扩展数据库的空间大小。

● 自动增长:当数据库文件在超过其初始空间大小时,该项可用以启动文件大小的自动增长功能,可设置具体的增长方式。

● 路径:数据库物理文件所存放的位置。默认情况下为SQL Server安装目录下的某个特定子目录。可以通过其右侧的按钮来指定文件的存储路径。

● 文件名:数据库物理文件的名称。该名称一般由系统根据逻辑名称按内部规则设定,也可以通过输入改变默认名称。

要创建数据库,用户必须是sysadmin或dbcreator服务器的成员,或被明确赋予了执行CREATE DATABASE语句的权限。

【任务2.1】 创建一个名为Manage的数据库,该数据库包含一个主数据库文件、一个事务日志文件,所有文件都存储在C:\Program Files\Microsoft SQL Server\data文件夹下。其中,主数据库文件初始大小为5MB,按照10%的容量增长,大小无限制。日志文件初始大小为1MB,每次增长1MB,文件最大容量为100MB。

创建Manage数据库过程操作步骤如下。

(2)在SSMS窗口左侧的【对象资源管理器】中展开当前服务器对象节点,右击数据库节点,选择【新建数据库】命令,如图2.2所示。弹出【新建数据库】对话框,如图2.3所示。

图2.2 新建数据库快捷菜单

图2.3 【新建数据库】对话框

(3)在对话框左上方的【选择页】窗格中选中【常规】选项卡,在对话框右侧的窗格中分别为新建的数据库提供必要的信息,如图2.4所示。

图2.4 【新建数据库】对话框

(4)在【数据库名称】文本框中输入要创建数据库的逻辑名称Manage。为【所有者】文本框选择数据库的拥有者(Owner)。数据库的拥有者又称为数据库的属主,可以是任何具有数据库权限的登录账户。此处保持系统默认值,即将数据库的拥有者设置为登录SQL Server服务器的当前用户。

(5)分别设置系统自动添加的逻辑名称为主数据文件Manage和Manage_log的事务日志文件的文件属性,其中逻辑名称和物理名称都可以更改。单击【自动增长】栏目右侧的按钮,在图2.5所示的【更改Manage的自动增长设置】对话框中选中【启用自动增长】复选框,按照题目要求分别设置文件增长和最大文件大小属性。

(6)分别单击主数据文件和事务日志文件【路径】表项栏目右侧的按钮,弹出【定位文件夹】对话框,将文件的保存路径改为C:\Program

(7)完成所有设置之后,单击【确定】按钮,退出【新建数据库】对话框。此时在【对象资源管理器】中可以看到新创建的数据库Manage,在资源管理器C:\Program Files\MicrosoftSQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA文件夹下可见SQL Server引擎生成的2个数据库物理文件,如图2.7所示。

图2.7 资源管理器中Manage数据库的物理文件

2.3.2 修改数据库属性

建立一个数据库以后,可以根据需要对该数据库的结构进行修改。修改数据库包括增删数据文件和事务日志文件个数、设置某些数据库选项等,如将Manage数据库设置为只读、将其修改为自动收缩等属性修改。可以通过打开【数据库属性】对话框,在【选择页】中的【常规】、【文件】、【文件组】、【选项】、【更改跟踪】、【权限】和【扩展属性】各个选项卡中进行查看和修改,如图2.8所示。修改完成后,单击【确定】按钮即可。

【任务2.2】 为Manage数据库添加一个辅助数据文件Mange_DB1,将其初始大小设置为5,自动增加10%,最大空间设置为20MB。

在Manage数据库中添加辅助数据文件操作步骤如下。

(1)选择Manage数据库节点,单击鼠标右键在弹出的快捷菜单中选择“属性”选项,如图2.9所示。

(2)在弹出的对话框中的【选择页】中选择【文件】,如图2.10所示。

图2.9 数据库快捷菜单

图2.10 【文件】选择页

(3)在【文件】选择页中单击“添加”命令按钮,在逻辑名称处输入“Mange_DB1”并设置其初始大小为5MB,如图2.11所示。

图2.11 【文件】选择页

(4)单击【自动增长】栏目右侧的按钮,在图2.12所示的【更改Mange_DB1的自动增长设置】对话框中选中自动增加10%,最大空间设置为20MB。

图2.12 设置自动增长

2.3.3 数据库的分离和附加

当数据库需要从一台计算机转移到另一台计算机,或者更改物理保存位置,可以通过数据库的分离和附加操作来完成。

分离数据库就是将数据库从SQL Server实例中卸载,但组成该数据库的数据文件和事务日志文件依然完好无损地保存在磁盘上。通过分离得到的数据库,可以重新附加到SQL Server实例上。在对数据库进行分离之前,要确保没有任何用户登录到该数据库上。

注意:只有固定服务器角色成员sysadmin才可执行分离操作,系统数据库master、model和tempdb无法从系统分离出去。

【任务2.3】 将创建好的Manage的数据库从服务器上进行分离。

分离Manage数据库操作步骤如下。

(2)在左侧的【对象资源管理器】中展开当前服务器的对象节点,右击Manage数据库节点,选择弹出菜单【任务】下的【分离】命令,如图2.13所示。

(3)在打开的图2.14所示的对话框中右边窗格的【要分离的数据库】表项栏目中,显示出要分离的数据库名称、删除连接、更新统计信息、状态、消息等项目。选中【删除连接】复选框,指示终止任何现有的数据库连接;如果要更新现有的优化统计信息,应选中【更新统计信息】复选框;默认情况下,分离操作将在分离数据库时保留过期的优化统计信息;【状态】表项栏目可选择“就绪”或“未就绪”两种状态值;【消息】表项栏目显示数据库活动连接的个数。

图2.14 【分离数据库】对话框

(4)单击【确定】按钮,执行分离操作。分离成功后,该数据库将从【对象资源管理器】中的树型结构中被删除。

附加数据库就是利用分离出来的数据库文件和事务日志文件将数据库再附加到任何SQL Server系统中,而且数据库在新系统中的使用状态与它分离时的状态完全相同。

【任务2.4】 将被分离的Manage的数据库重新附加到SQL Server服务器上。

将分离的Manage数据库附加到服务器上的操作步骤如下。

(2)在【对象资源管理器】中右击【数据库】节点,在弹出的菜单中选择【附加】命令,如图2.15所示。

(3)打开【附加数据库】对话框,如图2.16所示。

(4)单击【添加】按钮,打开【定位数据库文件】对话框,如图2.17所示。选择要附加数据库的主数据文件,单击【确定】按钮,返回到【附加数据库】对话框,如图2.18所示。

(5)单击【确定】按钮,数据库引擎执行附加数据库操作,被附加的数据库立即出现在【对象资源管理器】中的树型结构中,如图2.19所示。

图2.16 【附加数据库】对话框

图2.17 【定位数据库文件】对话框

图2.18 【附加数据库】对话框

2.3.4 删除数据库

对于过时的数据库或失去使用价值的数据库,应及时予以删除,以便节省系统空间,提高操作的效率。删除数据库一定要谨慎操作,数据库一旦删除,数据库中所有对象也将被删除,数据库所占用的系统空间也将被释放,存储在数据库中的重要信息将永久丢失。为防止误删除重要数据库而导致数据丢失,造成无法挽回的损失,在进行数据库删除之前,最好先对被删除的数据库进行一次备份。

微课:使用SSMS删除数据库

注意:当数据库处于正在使用、正在被恢复和正在参与复制三种状态之一时,不能删除该数据库。

【任务2.5】 删除系统中的Manage数据库。

(1)启动SSMS 2012工具,在【对象资源管理器】的Manage数据库节点上右击,执行【删除】命令,如图2.20所示。

(2)打开【删除对象】对话框,如图2.21所示。

图2.21 【删除对象】对话框

(3)根据应用的需求,有选择地选中对话框中的两个复选框。

● 【删除数据库备份和还原历史记录信息】复选框用来决定是否保存在进行数据库备份或还原过程中产生的历史记录。选中该复选框将删除历史记录。

● 【关闭现有连接】复选框用来保证正在被使用的数据库能够成功删除。该选项在实施删除操作前会自动关闭对于被删除数据库的连接。

(4)单击【确定】按钮,完成Manage数据库的删除操作,同时该数据库将从【对象资源管理器】中的树型结构中被删除。

2.4.1 创建数据库

微课:使用T-SQL语句创建数据库

CREATE DATABASE语句用来创建指定的数据库,该语句的基本语法格式如下。

[SIZE=数据文件的初始大小,] {([NAME=事务日志文件的逻辑名称,] [SIZE=事务日志文件的初始大小,]

(1)ON关键字表示数据库是根据后面的参数来创建的,LOG ON子句用于指定该数据库的事务日志文件。每个文件定义包含NAME、FILENAME、SIZE、MAXSIZE和FILEGROWTH五个参数,需用括号括起来,若存在多个文件,文件定义用逗号分隔。

(2)PRIMARY关键字指定将后面定义的数据文件加入主文件组中,也可加入用户自创建的文件组中。

(3)NAME关键字用来指定数据库文件的逻辑名。

(4)FILENAME关键字用来指定数据库文件的物理名,需要指明文件路径及带后缀的全名,用单引号引起来。

(5)SIZE关键字用于指定文件的初始大小,默认单位为MB,也可定义为其他单位(如KB、GB或TB)。数据文件初始大小为3MB,日志文件初始大小为1MB。

(6)MAXSIZE关键字用于指定文件的最大容量,单位与SIZE参数单位相同。若文件大小不受限制,表示文件可不断增长,直到磁盘空间完全被使用,此时可省略该参数,或将参数值设置为UNLIMITED。

(7)FILEGROWTH关键字用于指定数据库文件的增加量,增量采用固定大小和按比例增长两种方式,可加MB等单位或%,默认单位为MB。

(8)COLLATE关键字引导的子句用来指定数据库的默认排序方式。COLLATE子句不出现时,数据库将依照SQL Server的model系统数据库的设置来定义数据库的默认排序方式。

(9)FOR {ATTACH | ATTACH_REBUILD_LOG}子句用来指定以何种附加方式向新建数据库中添加初始数据。FOR ATTACH选项将依据已有的数据文件来创建新的数据库,此时新建数据库必须保证主文件已经被指定。FOR ATTACH_REBUILD_LOG选项则依据日志文件的事务记录来创建新的数据库。

(10)若省略所有的选项,则数据库创建时会根据model系统数据库的默认设置来自动设定各属性参数。当用户不需对新建数据库的各种特性进行较多控制时,可以采用最简化的数据库创建方式,即语句CREATE DATABASE数据库名。

注意:SQL语句在书写时不区分大小写,为了清晰,本书采用大写表示关键字,用小写表示用户自定义的名称。一条语句可以写成多行,但不能将多条语句写在一行中。

【任务2.6】 创建一个名为Manage的数据库,该数据库包含一个主数据库文件、一个事务日志文件,所有文件都存储在D:\data文件夹下。其中,主数据库文件初始大小为5MB,按照10%的容量增长,大小无限制;日志文件初始大小为1MB,每次增长1MB,文件最大容量为100MB。

使用T_SQL实现Manage数据库创建步骤如下。

(1)打开查询编辑器。

(2)在查询编辑器中输入如下的T-SQL脚本代码。

(3)按F5键执行输入的代码,执行结果如图2.22所示。

2.4.2 切换(或使用)数据库

微课:切换(或使用)数据库

T-SQL中可使用USE语句来将数据库上下文环境设置为指定的某个数据库。SQL Server服务器上通常有许多数据库,为使当前的一组操作都施加到某个选定的数据库上,需要使用USE语句将该数据库切换到数据库上下文环境中。这种切换到某个数据库的操作也常被称为打开该数据库。

USE语句的基本语法格式如下。

USE语句常用在批处理或脚本代码中。

【任务2.7】 将当前数据库切换为Manage数据库。

(1)打开查询编辑器。

(2)在查询编辑器中输入如下的T-SQL脚本代码。

(3)按F5键执行输入的代码。

2.4.3 修改数据库

微课:使用T-SQL语句修改数据库

T-SQL提供了ALTER DATABASE语句用于修改数据库的各文件参数,如更改数据库文件的尺寸、改变数据库文件的增长方式、增加或删除数据库文件及文件组等。

(1)在上述语法格式中,“|”表示几项中仅选一项。

(2)ADD FILE与ADD LOG FILE子句分别用来向数据库中添加数据文件与日志文件,文件的属性定义见CREATE DATABASE。TO FILEGROUP子句指定将文件添加到哪个文件组,默认为主文件组PRIMARY。

(3)REMOVE FILE子句用于从数据库中删除一个数据文件。

(5)MODIFY FILE子句用于修改数据库文件的初始大小、文件最大容量及文件增长量等信息。

注意:数据库文件的物理文件名称不允许修改,因此FILENAME子句不允许出现在文件修改中。另外,在修改文件的“分配的空间”项时,所改动的值必须大于现有的空间值。

(7)MODIFY NAME子句用于改变数据库的逻辑名称。

注意:要对数据库改名必须先将数据库改为排他锁锁定状态,即断开所有其他连接,以执行该操作。

(8)SET关键字引导的子句用来设置某些数据库功能选项,这些选项将影响数据库的某些特征或属性。

(9)COLLATE关键字引导的子句用来为数据库指定排序规则。

【任务2.8】 编写T-SQL代码,为Manage数据库添加一个新文件组newfilegroup,并在其中添加一个辅助数据文件Manage_add.ndf,将其保存在与主数据文件相同的目录下,初始大小3MB,最大值不受限制,每次增长10MB。

(1)打开查询编辑器。

(2)在查询编辑器中输入如下的T-SQL脚本代码。

(3)按F5键执行输入的代码,执行结果如图2.23所示。

2.4.4 删除数据库

微课:使用T-SQL语句删除数据库

T-SQL提供了DROP DATABASE命令来删除数据库,该语句的基本语法格式如下。

注意:在执行某个数据库的删除命令前,要保证没有实际应用与该数据库保持连接。

(1)打开查询编辑器。

(2)在查询编辑器中输入如下的T-SQL脚本代码。

(3)按F5键执行输入的代码,刷新【对象资源管理器】,该数据库已从其中的树型结构中被删除。

图2.24 使用DROP语句删除数据库

2.4.5 管理数据库信息

微课:使用T-SQL语句查看数据库

查看数据库信息主要包括查看三方面内容:基本信息、维护信息和空间使用情况。

在T-SQL中查看数据库信息可使用sp_helpdb系统存储过程,基本语法格式如下。

● 若省略数据库名,可查看所有数据库的定义信息,与“SELECT * FROM sysdatabases”语句功能完全相同。

● EXECUTE关键字可缩写成EXEC。如果此语句是一个批处理中的第一句,则EXECUTE关键字可省略。

【任务2.10】 查看Manage数据库相关信息。

(1)打开查询编辑器。

(2)在查询编辑器中输入如下的T-SQL脚本代码。

(3)按F5键执行输入的代码,执行结果如图2.25所示。

图2.25 查看数据库信息

2.4.6 直接复制文件的数据库分离与附加

T-SQL也提供了实现数据库分离与附加的系统存储过程。

1.实现数据库分离的语法格式

2.实现数据库附加的语法格式

● 数据库名必须是唯一的。

● 数据库文件名为文件的物理名称,包括文件路径。

● 最多可以指定16个文件名。

● 文件名列表至少必须包括主文件。

● 可使用此方法对现有数据库制作多个副本,也可以实现在不同SQL Server服务器之间移动传递数据的目的。

本章主要介绍了数据库的重要概念SQL Server 2012的数据库类型、数据库文件、事务日志等。本章的重点是使用语句创建、显示、修改、删除数据库和使用SSMS管理数据库。

使用T-SQL语句,创建数据库使用    命令,修改数据库使用    命令,删除数据库使用    命令,查看数据库信息使用    命令,查看和设置数据库选项使用

1.SQL Server 2012中数据库文件有哪三类?分别简述各个文件的功能及要求。

2.SQL Server 2012提供的系统数据库有几个,各具什么功能?

3.数据库处在什么情况下不允许删除?

创建并管理学生信息管理数据库(Students)。

(1)使用SSMS对学生信息管理数据库(Students)进行创建、修改与删除等操作。

(2)使用T-SQL命令对学生信息管理数据库(Students)进行创建、修改与删除等操作。

(1)规划学生信息管理数据库(Students)的主数据文件、辅助数据文件与日志文件的名称、大小、增长方式与存储路径等属性。

(2)在SSMS中完成学生信息管理数据库(Students)从创建、修改、分离、附加,直到删除的完整过程。

(3)使用T-SQL语句完成学生信息管理数据库(Students)的创建、修改与删除等操作。

ldf”,其他参数默认。

(1)使用SSMS创建该数据库,创建完成后即可再通过SSMS对其进行删除。

(2)使用T-SQL语句创建该数据库,可使用最简单的语句实现以上功能。

(3)使用T-SQL语句对该数据库进行修改,创建一个新的文件组newgroup,并在其中添加一个辅助数据文件,逻辑名为“StuInfoAdd”,与前一数据文件放在同一目录下,初始大小为5MB。添加一个事务日志文件,逻辑名为“StuInfoLogAdd”,与前一日志文件放在同一目录下。

(4)使用系统存储过程查看数据库信息。

(5)使用系统存储过程修改数据库设置信息,将“自动收缩(AUTO SHRINK)”属性设置为TRUE。

(6)使用SSMS和T-SQL两种方式对数据库进行分离操作。

(7)用最简单的T-SQL语句创建数据库CeShi,创建成功后对数据库进行删除操作。

操作具体步骤略,请参考相应案例。

在本次实训操作结果的基础上,分析总结并撰写实训报告。

(1)已知表T1中有2行数据,T2中有3行数据,执行SQL语句

多表查询没有指定连接条件,会导致笛卡尔积的出现,返回行数等于2张表的行数乘积,返回6行记录

考察:对多表连接、笛卡尔积的理解

第二题  UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

第三题 GROUP BY 对按照ID字段进行分组,同时对ID相同字段的ScorE进行求和,GROUP by 会自动对结果集进行排序所以答案选B

(4)、电话号码表t_phonebook中含有100万条数据,其中号码字段PhoneNo上创建了唯一索引,且电话号码全部由数字组成,要统计号码头为321的电话号码的数量,下面写法执行速度最慢的是_________

A>或者<操作符会采用索引查找

B:LIKE通配符在XXX%情况下会应用索引,如果在%xxx%等情况下不会应用索引

答案: C:采用函数处理的字段不能利用索引,例如substr()  这个题好像写成java的函数了

(5)、已知表tbl中字段land_ID建有索引,字段cust_id建有唯一索引,下列语句查询逻辑相同,其中执行效率最优的是

C/D相比较而言,D的执行效率更高一些

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录

采用UNION ALL操作符替代UNION,因为UNION ALL操作只是简单的将两个结果合并后就返回。

哪条语句可以查询同时拥有技能A和技能B的员工

(7)员工表staff表结构如下

哪一个SQL语句查询出没有E_mail地址的员工号

(8)Oracle数据库启动步骤的顺序为

10)一个表的字段为varchar2,如果建表时没有指定长度,则默认长度为:

F、建表时varchar2类型字段必须指定长度

C、DELETE命令不记录日志

执行时是错误的,请问以下措施哪个能够改正这个错误?

A 在order by的子句中使用表的别名

B 在where子句中去掉表的别名

C 在where子句中用表名代替表的别名

D 在order by子句中去掉表名,只要字段名称即可

(如果2张表中,不同时存在字段名为description的话,D答案也是正确的)

14)A表字段a 类型int中有100条记录,值分别为1至100。如下语句

则如下哪个值在这个sql语句返回的结果集中

16)关于索引(index)的说法哪些是错误?

A、创建索引能提高数据插入的性能

B、索引应该根据具体的检索需求来创建,在选择性好的列上创建索引

D、建立索引可使检索操作更迅速

(17)指出下面sql语句的错误之处:

执行该语句后将有几条记录插入到表texample表中?

(20)设计一表结构,某字段要求存放员工编号,为固定10位长字符,采用哪种类型字段

(1)、已知T1包含字段ID、ID2,T2包含字段ID,请在空白处完成SQL语句,查询表T1字段ID2取值存在于T2的ID取值集合中。

(2)Oracle创建表时指定了以下的存储参数:

则这个表第三次扩展分配的空间大小为__________

(3)、已知表T1包含字段ID,对同一个ID的取值,可能存在多条数据,请在空白处完成SQL语句,查询T1中对应有大于1条数据ID及其对应数据的条数。

(4)、已知表T1、T2和T3的结构和数据如下

IDName1张三2李四请写出查询的SQL语句,使得查询的结果为:

(5)、为了统计图书馆的每天的借出和还书的次数,定义了表T1,结构如下

字段名称类型说明DateStrvarchar(10)日期OprTypeinteger操作类型,0代表借,1代表还OprCountinteger操作次数已知表中没有数据,请写一个更新T1表的存储过程,每一个借出或还书的操作都调用该存储过程来更新统计数据,输入参数为:操作时间,操作类型。

–利用存储过程查找看本日期和操作类型有没有数据,如果没有则插入数据,如果有则更新数据使操作次数加1

(6)、表T1中有字段Field1,类型为varchar(20),请在T1上创建一个约束,保证Field1的前三个字符的取值为“aaa”、“bbb”或者“ccc”。

想不出更加简练的表达式,或许还有更好实现发放

(7)、某大型商场的数据库中有一个日志表t_Log,它记录了每日的商品交易日志,t_Log包含了字段LogDatetime记录日志的生成时间,每日的日志数据为20,000-40,000条之间。后发现日志表数据量过于庞大,需要删除6个月前的历史日志数据约3,000,000行。请综合考虑性能等因素,写出删除历史数据的SQL语句。

答案(T-SQL):此题应用存储过程分批删除并提交,如下是每次删除10000

数据量比较大的情况,可以考虑分批删除,效率会高一些。可使用循环控制语句中,使用rownum<10000来分300次来删除。注意每次删除后commit。

(8)、请写出oracle的SGA区的几个组成部分(只写出4个主要部分即可)。

答案:字典管理方式和本地管理方式

(10)、请写出你所知道的几个需要排序的DML的操作。

另外在查询语句中where子句中,判断函数尽量不要放在左边

上机实验4 视图和索引操作

1、练习并掌握使用企业管理器创建和管理视图;

2、练习并掌握使用Transact_SQL 语言创建和管理视图;

3、练习通过视图操作表中数据,并能理解它的含义;

4、通过在企业管理器创建和管理索引,掌握创建和管理索引的多种方法;

5、通过练习使用Transact_SQL 语言创建和管理索引,理解语句意思,掌握其用法;

6、了解查看索引信息的方法。

5.2 实验练习预备知识点

视图是一种数据库对象,是虚拟表。它是从基本表或者视图中导出的表, 用来存储用户想到看的数据。视图是用户查看数据库的一种方式。

视图与数据表之间的区别:

视图是引用存储在数据库中的查询语句时动态创建的,它本身并不存储数据,真正的数据依然存储在数据表中。

5.2.2 在企业管理器中创建视图

1、打开企业管理器,在左边的目录树中选择要创建数据库文件夹,选中“视图”对像。点击右键选择“新建视图”,打开“视图”设计窗口。如图5-1所示

2、将用来创建视图的表添加到视图设计窗口,如图5 -2 所示。如果创建的视图覆盖多张数据表,那么这些数据表必须是存在联系的。

3、从数据源中选择将在视图中显示的字段,同时出现在第二部分的列表中。在该列表中可设置限制视图中显示数据的条件,排序字段和排序顺序,以及该字段是否显示。

4、在第三部分的空白处会自动显示出创建该视图所用到的SELECT 语句。可做修改。

我要回帖

更多关于 更改表数据的sql语句 的文章

 

随机推荐