方法一:使用语句修改,命令格式ALTER DATABASE <旧数据库名称> Modify Name=<新数据库名称>;方法二:在SSMS中修改。
添加辅助数据库文件:一个数据库可以有多个辅助数据文件,可以通过添加辅助文件来满足新的数据库容量。
删除数据库:删除数据库操作将删除数据库包含的所有对象,且不能恢复。用户只能根据自己的权限删除用户数据库,不能删除系统数据库,也不能删除正在使用的数据库。
SQL语句删除数据库的格式:drop database 数据库名字
例题:
1.创建数据库时指定数据库初始大小的关键字是? ( D )
A.name B.maxsize C.filegrowth D.size
2. 删除数据库的语句是Delete Database。( 错 )
分离数据库:是指将数据库从SQL Server 2005实例上删除,但该数据库的数据文件和事务日志文件仍然保持不变,这时可将数据库附加到其他任何SQL Server 2005实例上。与删除数据库不同,分离只是从SQL Server 2005中移除,并没有从物理磁盘上将数据文件删除。
附加数据库:与分离数据库相反的操作时附加数据库。如想把硬盘上的数据库添加到SQL Server 2005实例中,可用附加数据库的方法。
导入导出:如要将其他类型的数据源(如:Excel、Access或Oracle数据库等)添加到SQL Server 2005的实例中,或将SQL Server 2005的数据库文件转换为其他类型的数据库文件,则必须通过导入和导出的方法。
例题:
1. 简述数据库的分离和附加的作用?
分离数据库的作用是将数据库从SQL Server 2005实例上删除,但该数据库的数据文件和事务日志文件仍然保持不变,这时可将数据库附加到其他任何SQL Server 2005实例上。附加数据库与分离数据库相反,如想把硬盘上的数据库添加到SQL Server 2005实例中,可用附加数据库的方法。参见课本P49.
3.4 管理数据表
表是存储数据的地方,是数据库中最重要的部分。在关系数据库中每一个关系都体现为一个表。表分为4种类型,即普通表、分区表、临时表和系统表。这里我们仅讨论普通表的创建和管理。
创建表之前,首先考虑要创建的表包含哪些内容,例如,一个表包含多少列、每列应该是什么数据类型、哪些字段为主键、是否使用约束等。
创建表有两种方式,一种是使用SSMS工具创建表,另一种是使用T-SQL语句创建,开发人员可随时在程序中用T-SQL为数据库创建表,具有非常好的灵活性。最简单的创建表的语句格式是:CREATE Table 表名(字段名列表 数据类型 长度 约束…),各列之间用逗号隔开。
当数据表创建之后,可以根据需要改变表中的许多选项。例如:用户可以增加、删除和修改列,修改表名,创建CHECK约束等。
在设计表时,需要知道每列字段的数据类型。SQL Server 2005系统提供了28种数据类型,主要分为精确数字类型、近似数字类型、字符数据类型、日期时间数据类型等。每一种数据类型都有自己的定义和特点,具体参见课本P63。
为了实现数据完整性,SQL Server 2005在管理表时提供了CHECK约束和定义表关系等手段。CHECK约束又叫检查约束,用于定义列中可接收的数据值,通过限制输入列中的值来强制域的完整性;创建表间关系,主键与外键的设置要完全相同,通常情况下,关系将一个表的主键与另一个表中的外键匹配。
例题:
1. 表主要由列和行构成,行又可以称为数据行或 记录 ,列又可以称为
字段 。
2. 在下面的教师表和系部表中,教师号和系部号分别是两个表的主关键字。 教师表(教师号、教师名、系部号、职务、工资) 系部表(系部号、系部名、部门人数、工资总额) 在这两个表中,只有一个是外关键字,它是( B )。
A.教师表的“教师号” B.教师表的“系部号”
C.系部表的“系部号” D.系部表的“系部名” 3. 指定主键的关键字是( D )
A、null B、check C、default D、primary key
4. 下面哪种是属于SQL Server 2005的字符数据类型:( C )
A.real B.bigint C.nvarchar D.money
5. 如果要在SQL Server 中存储图形图像、Word文档文件,不可采用的数
据类型是( B )
A. binary B. varchar C. image D. text
6. 字符型和文本型有何区别?举例说明在什么情况下使用字符型,在什么
情况下使用文本型?
字符型数据类型存储的最大字符数是需设定的,文本型数据类型存储的最大字符数不需设定。当要存储的字符型数据非常庞大时,应该选择text数据类型,text数据类型专门存储数量庞大的变长字符数据。当要存储的字符型数据相对较小时,选择char(最大可容纳8000个字符)或varchar(最大可容纳8000个字符)等字符型数据类型。参见P64。 7. 整数型和字符型在引用的时候必须要加单引号或者双引号。( 错 )
8. CHECK约束被称为 检查约束 。
9. 主键约束和唯一性约束有什么区别,并举例说明?
PK一个表只有一个,唯一标识该记录,不能重复,不能为空,unique一个表可以有多个,不可以重复,可以取空值,例如一个表中有学号和身份证号码,学号为pk,身份证只能为unique 10. 什么是数据库,并给出2个系统数据库。
数据库是对象的容器,数据库不仅可以存储数据,而且能够使数据存储和检索以安全可靠的方式进行,并以操作系统文件的形式存储在磁盘上。数据库对象是存储、管理和使用数据的不同结构形式。
系统数据库Master,Tempdb,Model,Msdb 随意举出2个即可
3.4 数据库表的设计(补充内容)
数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。在设计数据库时,最重要的步骤是要确保数据正确分布到数据库的表中。使用正确的数据结构,可以极大地简化相应的应用程序。正确进行表设计也称‘数据库规范化’。
第4章 数据查询与更新
4.1 认识SQL语言
SQL是Structure Query Language(结构化查询语言)的缩写,是一种用于数据库查询和编程的语言,已经成为关系型数据库普遍使用的标准,使用这种标准的数据库语言给程序设计和数据库维护都带来了极大的方便。Transact-SQL(简称T-SQL)语言是Microsoft公司对此标准的一个实现。T-SQL语言已成为SQL Server 2005的核心,通过它可以完成数据库中的所有操作。 SQL语言包含4个部分:DQL; DML; DDL; DCL. T-SQL语法约定:
1. 常量:也称为文字值或标量值,是指程序运行中不变的量。常量类型中,字符串常量和日期常量需用单引号括起来,二进制常量以0x为前缀,货币常量以$为前缀。 2. 变量
变量用于临时存放数据。变量名必须是一个合法的标识符。SQL Server有两种类型的变量:全局变量(有系统提供,@@变量名);局部变量(@变量名)。
用DECLARE语句声明变量,格式为:DECLARE {@局部变量名,数据类型}...
3. 注释语句
行注释语句使用“--”标示,块注释语句用“*/ */”标示。 4. 常用函数
SQL Server 2005为T-SQL语言提供了大量的系统函数,使用户对数据库进行查询和修改时更加方便。常用的函数主要有:数学、字符串、日期时间和聚合函数等。
数学函数:abs;ceiling;floor;power;round;rand;sign;pi;sqrt参见P75
字符串函数:len; substring; upper; lower; char; ascii; str; left; right 参见P76 日期函数:getdate; month; year; day; dateadd; datepart; datename 参见P77 聚合函数:count(); max(); min(); avg(); sum() 参见P80 数据类型转换函数:CAST;CONVERT 5. 用户函数 (补充内容)
SQL Server用户定义函数是接受参数、执行操作(例如复杂计算),并将操作结果以值的形式返回的函数。通过用户自定义函数,可以补充和扩展系统提供的内置函数。用户定义函数可接受零个或多个输入参数,返回标量值或表。用户自定义函数不能用于执行
一系列改变数据库状态的操作,但它可以像系统函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE 命令来执行。
例题:
1. 数据库管理系统包括数据定义语言(DDL)、 数据操纵语言DML 、数据控制语言(DCL)。
3. SQL Server支持两种类型的注释字符:单行注释和多行注释。单行注释的注释符是( A )
A. - - B. // C. /* */ D. /- -/ 4. Transact-SQL中可以使用两种变量:全局变量 和 局部变量 。
5. 局部变量必须以“@”开头,而且必须先用DECLARE 命令说明后才可使用。 6. 整数型和字符型在引用的时候必须要加单引号或者双引号。( 错 ) 7. Transact-SQL语言中函数SUBSTRING(‘abcdefg’,4,2’)返回值是( de )。 8.( A )函数的作用是求一个字符串的实际长度。
A. LEN() B. LTRIM() C. LEFT() D. SUBSTRING() 9.( B )函数的作用是对给定的表达式,返回从最右侧开始某个长度的子字符串。
A. LEN() B. RIGHT() C. LEFT() D. SUBSTRING()
10. ( C )日期和时间函数用于返回当前日期和时间。
A. DATEPART() B. DAY() C. GETDATE() D. YEAR()
10.在调用系统函数时,一定要在函数名称的前面加上用户名。( 错 ) 11. 编写用户函数
编写一个用户自定义函数zzz,要求根据输入属性xx的上限y和下限x求出数据表xxx在此范围内的记录数,并利用函数求出输入值在80到90之间的记录数。 1.
Crate function zzz (@x as real,@y as real) Returns int Begin
Declare @a int
Select @a=count (*) from xxx where xx between @x and @y Return @a End 2.
Select dbo.zzz (80,90)
4.2 基本的SELECT语句
SELECT语句是SQL标准中最为灵活、使用最为广泛的语句之一。利用SELECT语句可以从数据库中按照用户的需要进行数据检索,并将结果以表格的形式输出。在SQL Server 2005数据库中,获取数据的功能是通过SELECT语
句来实现的。
例句:
SELECT * FROM Users
SELECT UserName, Sex, Email FROM Users
SELECT 用户名=UserName, 性别=Sex FROM Users
SELECT UserName AS用户名, Sex AS性别 FROM Users
SELECT DISTINCT UserName FROM Article --一个用户可以发表多篇文章,若不用DISTINCT选项,则会有重复的用户名称。ALL可显示重复行,为默认选项。
SELECT 学号,课程号,成绩,提高后成绩=成绩*1.2 FROM 选课表 –允许包含算术表达式(+,-,*,/)
SELECT UserName,Subject,ShiJian INTO MyArticle FROM Article –使用INTO关键字,可把查询结果存放在新表中。
聚合函数的应用:有时需要对查询列进行计算在显示,这是必须采用一些聚合函数,常用的聚合函数有count(),max(),min(),avg(),sum()。聚合函数只能在以下位置作为表达式使用:1>SELECT语句的选择列表(子查询和外部查询);2>HAVING子句。
例句:
SELECT count(*) AS 开博人数 FROM Users
SELECT max(成绩) AS 最高成绩, min(成绩) AS 最低成绩 FROM 选课表 WHERE子句:在数据库中查询数据时,有时用户只希望得到一部分数据而不是全部,这时就需要用到WHERE条件语句。基本格式为:SELECT 显示字段 FROM 数据来源 WHERE 条件表达式。
条件表达式通过以下几种运算来进行:比较运算>,>=,=,<.<=,<>,!>,!<;范围运算BETWEEN…AND, NOT BETWEEN…AND;列表运算IN( ),NOT IN( );模式匹配符LIKE,NOT LIKE;逻辑运算符NOT,AND,OR。
例句:
SELECT * FROM Users WHERE UserName LIKE ‘%o%’ WHERE IS [NOT] NULL
例题:
1.在字符串匹配中,通配符“%”代表任意多个(含零个)字符,“_”代表任意一个单字符。
2.WHERE 子句用来指定(C)。
A. 查询结果的分组条件 B. 组或聚合的搜索条件 C. 限定返回的行的搜索条件 D. 结果集的排序方式 3.下列哪个不属于常用的逻辑运算符:( D )
A. AND B. OR C. NOT D. IN 4.通配符“%”表示某单个字符。( 错 )
4.3 单表查询