数据库考试复习资料

  • 格式:docx
  • 大小:29.89 KB
  • 文档页数:3

. 建库代码 create database NewDB on primary ( name='newDBdata', filename='E:\数据库练习资料\newDBdata.mdf', size=3MB, maxsize=20MB, filegrowth=10% ) log on ( name='newDBlog', filename='E:\数据库练习资料\newDBlog.ldf', size=1MB, maxsize=5MB, filegrowth=1MB 修改数据库代码 use NewDB go alter database NewDB modify file ( name='newDBdata', size=50MB, filegrowth=2MB ) 使用T-SQL语句对数据库NewDB增加数据文件newDBdata1.ndf,初始大小为10MB,最大大小为50MB,按10%增长。 alter database NewDB add file ( name='newDBdata1', filename='E:\数据库练习资料\newDBdata1.ndf', size=10MB, maxsize=50MB, filegrowth=10% ) 删除新增的数据文件newDBdata1.ndf ALTER DATABASE NewDB1 REMOVE FILE newDBdata1 将数据库NewDB的名字改为NewDB1。 alter database NewDB modify name=NewDB1 GO 1.SQL SERVER有哪些系统数据库,各自作用是什么? 答:MASTER:核心数据库 主要配合完成数据库的权限,日志,登陆信息,设定,进程管理等数据库系统与操作系统级别的服务操作 MODEL:模版数据库 主要配合完成用户自定义数据库创建时提供各种模板 MSDB:自动化任务 主要完成一些定时,预操作比如发送邮件,提示等等等等。 TEMPDB:临时缓存 NORTHWIND和PUBS:样例库 2、SQL SERVER数据库文件和日志文件各自的特点及作用是什么? (1). 主要数据文件(.mdf) 主要数据文件包含数据库的启动信息,并用于存储数据。每个数据库都有一个主要的数据文件。 (2).次要数据文件(.ndf) 次要数据文件也用来存储数据,他含有不能置于主要文件中的说有数据。如果主要文件可以包含数据中的所有数据,那么数据库就不需要次要数据文件。如果数据库很大,主要主要数据文件超过了行的限制,就需要设置多个次要的文件并将它们保存到不同的磁盘上。 3.为什么要使用辅助数据文件?数据库可以不用自动增长吗? 主要是为了数据操作简单和安全性考虑,数据库也可以设置为手动增长,知道磁盘存储不下为止。 第三章 1、常见数据库约束有哪些及其各自特点? 答:常见的约束:主键约束、外键约束、默认值约束、检查约束、非空约束、唯一值约束。 2、char、varchar、nchar、nvarchar之间区别? 答:char [ ( n ) ]:固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节。每个字符和符号占用1个字节。 varchar [ ( n | max ) ] :可变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。 nchar [ ( n ) ] :n 个字符的固定长度的 Unicode 字符数据。n 值必须在 1 到 4,000 之间(含)。存储大小为两倍 n 字节。 nvarchar [ ( n | max ) ] :可变长度 Unicode 字符数据。n 值在 1 到 4,000 之间(含)。max 指示最大存储大小为 2^31-1 字节。存储大小是所输入字符个数的两倍 + 2 个字节。 3、date和datetime之间区别?money和float区别? 答:date是SQL Server 2008新引进的数据类型。它表示一个日子,不包含时间部分,可以表示的日期范围从公元元年1月1日到9999年12月31日。只需要3个字节的存储空间。 DateTime 日期和时间部分,可以表示的日期范围从公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精确到3.33毫秒,它需要8个字节的存储空间。 money和float区别:金额的存储上可以优先money,如果金额过大采用decimal(numeric),极端的情况(数据超大)使用float(real)。 建表代码 use Marker_db create table customers ( c_id int primary key, c_name varchar(50), c_contact Varchar(50), c_city Varchar(50), c_brith varchar(50) not null, ) GO 修改数据类型 alter table customers alter column c_name varchar(70) GO 修改字段名 EXEC sp_rename 'customers.[c_contact]', 'c_phone', 'COLUMN' GO 增加字段 alter table customers add c_gender char(1) null GO 修改表名 EXEC sp_rename 'customers', 'customers_info' GO 删除字段 alter table customers_info drop column c_city GO 在Market中创建数据表orders use Marker create table orders ( O_num int primary key, O_date date, O_id Varchar(50), ) 外键 alter table orders add constraint o_num_c_id_FK1 foreign key (o_num) references customers_info(c_id) 删除orders表的外键约束,然后删除表customers。 1.删除外键约束 alter table orders drop constraint o_num_c_id_FK1 2.删除表 use Marker go drop table customers_2 第四章 简述T-SQL语句分类及其作用 数据操作语句(用于增、删、改、查)、数据定义语句(用于创建、管理数据库各种对象)、数据控制语句(用于账号管理、用户管理、角色管理)和一些附加的语言元素(用于事务处理、游标等)。参阅P94页的相关简述,学会这门课程后,要掌握所有关键字的使用。 简述什么是架构Schema? 数据库构架是一个独立于数据库用户的非重复命名空间,构架是不能嵌套的 简述SQL SERVER中最常用的3个全. 局变量以及全局变量和局部变量的区别 1.@@VERSION、@@LANGOAGE、@@LOCK_TIMEOUT 2.用户只能使用预先定义的全局变量,而不能修改,引用时必须以标记符@@开头,局部变量被引用时要在其名称前加上标志@,且必须先用DECLARE声明后才可以使用。 简述什么是批处理及其特点?什么是T-SQL脚本及其特点? 1)批处理就是一条或多条T-SQL语句,为一个目标执行批处理可减少系统开销,GO命令表示批处理结束,若语句中无GO命令,则按照单个批处理执行。 (2)T-SQL脚本是储存在文件中一序列的T-SQL语句,包含一个或多个批处理。脚本可用来做副本,在机器间共享,分析及学习代码。 声明整数变量@var,使用CASE流程控制语句判断@var值等于1,等于2或者两者都不等。当@var值为1时,输出字符串”var is 1”; 当@var值为2时,输出字符串”var is 2”;否则输出字符串”var is not 1 or 2”。 DECLARE @VAR int SELECT CASE when @VAR=1 then'VAR is 1' when @VAR=2 then'VAR is 2' else 'VAR is not 1 or 2' end 编程计算1~100之间所有能被3整除的数的个数@count和总和@sum,并分别用Select语句和Print语句两种方法输出个数@count和总和@sum。 declare @i int declare @sum int declare @count int Select @i=1 Select @sum=0 Select @count=0 while @i<=100 begin if @i%3=0 Select @sum=@sum+@i Select @count=@count+1 end Select @i=@i+1 PRINT'总和是'+STR(@SUM) PRINT'总数是'+STR(@count) 用T-SQL语言编程输出3~100之内的素数。 declare @a int,@b int,@i int set @i=3 while @i<100 begin set @a=2 set @b=0 while (@a<@i) begin if (@i%@a=0) begin set @b=1 break end set @a=@a+1 end if @b=0 print @i set @i=@i+1 end 第五章 使用数学函数进行如下运算: (1)计算18除以5的商和余数。 SELECT FLOOR(18/5),FLOOR(18%5); (2)将弧度值PI()/4转换为角度值。 SELECT DEGREES(PI()/4); (3)计算9的4次方值。 SELECT POWER(9,4); (4)保留浮点值3.14159小数点后面2位。 SELECT ROUND(3.14159,2); 2、使用字符串函数进行如下运算: (1)分别计算字符串“Hello World!”和“University”的长度。 SELECT LEN('Hello World!'),LEN('University'); (2)从字符串“Nice to meet you!”中获取子字符串“meet”。 SELECT SUBSTRING('Nice to meet you!',9,4); (3)除去字符串“h e l l o”中的空格。 SELECT REPLACE('h e l l o',' ',''); (4)将字符串“SQLServer”逆序输出。 SELECT REVERSE('SQLSserver'); (5)在字符串“SQLServerSQLServer”中,从第4个字母开始查找字母Q第一次出现的位置。 SELECT CHARINDEX('Q','SQLServerSQLServer',4); 3、使用日期和时间函数经行如下运算: (1)计算当前日期是一年的第几天。 SELECT DATEPART(DAYOFYEAR,GETDATE()); (2)计算当前日期是一周中的第几个工作日。 DECLARE @week INT; SELECT @week=(SELECT DATEPART(WEEKDAY,GETDATE()-1)); IF @week<6 IF @week>0 PRINT '今天是第'+CONVERT(varchar,@week) +'个工作日'; ELSE PRINT '今天是休息日'; (3)计算“1929-02-14”与当前日期之间相差的年份。 SELECT DATEDIFF(YEAR,'1929-02-14',GETDATE()) 第六章 插入dept表数据: INSERT INTO dept VALUES (10,'ACCOUNTING','ShangHai'),