数据库考试复习资料
更新时间:2023-10-04 15:11:01 阅读量: 综合文库 文档下载
建库代码
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'), 计算所有女员工(F)的工龄。 SELECT e_name 员工姓名,hireDate 入日期期,
DATEDIFF(YEAR,hireDate,GETDATE())工龄
FROM employee
WHERE e_gender='女';
使用TOP查询或者RANK查询从第3条记录开始到第6条记录。
--(1)Top:
SELECT TOP (4) e_no 员工编号 ,e_name 员工姓名,e_gender 员工性别,
dept_no 部门编号,e_job 职
位,e_salary 薪水,hireDate 入职日期
FROM employee WHERE e_no NOT IN (SELECT TOP (2) e_no FROM employee); --(2)Rank SELECT e_no 员工编号 ,e_name 员工姓名,e_gender 员工性别, dept_no 部门编号,e_job 职
位,e_salary 薪水,hireDate 入职日期
FROM (SELECT RANK() OVER (ORDER BY e_no ASC) AS num,*FROM employee) AS e1
WHERE e1.num BETWEEN '3' AND '6';
查询获得销售人员(SALESMAN)的最低工资的员工的薪水及员工编号、员工姓名、入职日期。
SELECT e_no 员工编号,e_name 员工姓名,hireDate 入职日期,e_salary 薪水 FROM employee
WHERE e_job='SALESMAN' AND e_salary=(SELECT MIN(e_salary) FROM employee WHERE e_job='SALESMAN');
查询名字以字母N或者S结尾的记录。
SELECT e_no 员工编号 ,e_name 员工姓名,e_gender 员工性别, dept_no 部门编号,e_job 职
位,e_salary 薪水,hireDate 入职日期
FROM employee
WHERE e_name LIKE'%N' OR e_name LIKE'%S';
查询在BeiJing工作的员工姓名和职务。
--方法一: SELECT e_name 员工姓名,e_job 职位
FROM employee WHERE
dept_no=(SELECT d_no FROM dept WHERE d_location='BeiJing'); 分别使用左连接和右连接和全连接方式查询员工表和部门表,显示员工详细信息及部门名称、部门地址。 (1):使用左连接方式查询employee和dept表
SELECT employee.e_no 员工编号,employee.e_name 员工姓名,employee.e_gender 性别,e_job 职位,e_salary 薪水,hireDate 入职日期, dept.d_name 部门名
称,dept.d_location 工作地点 FROM employee LEFT OUTER JOIN dept
ON employee.dept_no=dept.d_no
(2):使用右连接方式查询employee和dept表
SELECT employee.e_no 员工编号,employee.e_name 员工姓名,employee.e_gender 性别,e_job 职位,e_salary 薪水,hireDate 入职日期, dept.d_name 部门名
称,dept.d_location 工作地点 FROM employee RIGHT OUTER JOIN dept
ON employee.dept_no=dept.d_no (3):使用全连接方式查询employee和dept表
SELECT employee.e_no 员工编号,employee.e_name 员工姓名,employee.e_gender 性别,e_job 职位,e_salary 薪水,hireDate 入职日期, dept.d_name 部门名
称,dept.d_location 工作地点 FROM employee FULL OUTER JOIN dept
ON employee.dept_no=dept.d_no 查询所有2001到2005年入职的员工的信息,查询部门编号为20和30的员工信息并使用UNION合并两个查询结果。
SELECT e_no 员工编号 ,e_name 员工姓名,e_gender 员工性别, dept_no 部门编号,e_job 职
位,e_salary 薪水,hireDate 入职日期
FROM employee WHERE (SELECT
DATEPART(YEAR,hireDate)) IN(2001,2002,2003,2004,2005) UNION SELECT e_no 员工编号 ,e_name 员工姓名,e_gender 员工性别, dept_no 部门编号,e_job 职
位,e_salary 薪水,hireDate 入职日期
FROM employee
WHERE dept_no IN (20,30); 使用LIKE关键字查询员工姓名中包含字母a的记录。
SELECT e_no 员工编号 ,e_name 员工姓名,e_gender 员工性别, dept_no 部门编号,e_job 职
位,e_salary 薪水,hireDate 入职日期
FROM employee
WHERE e_name LIKE '%A%'; 分组统计并显示各个部门员工的最高工资、最低工资、平均工资,并且按平均工资升序排序。 SELECT d_name 部门名
称,MAX(e_salary) AS 最高工资,MIN(e_salary) AS 最低工资,AVG(e_salary) AS 平均工资 FROM employee LEFT OUTER JOIN dept ON
employee.dept_no=dept.d_no GROUP BY d_name
ORDER BY AVG(e_salary) ASC;
第九章
功能。类似与C语言中的指针。 事务和锁在应用上的区别是什么? 分类:SQL Server2012 支持3种游事务将一段T-SQL语句作为一个单标实现
元来处理,这些操作要么全部成功,①Transcat-SQL游标②应用程序编要么全部失败。事务包含4个特性:程接口(API)服务器游标 ③客户原子性、一致性、隔离性、和持久端游标
性,事务的执行方式分为自动提交根据游标的特点还可将游标分为4事务、显示事务、隐式事务和分布类
式事务。事务以“BEGIN TRAN”语①只进游标②静态游标 句开始,并以“COMMIT TRAN”或③动态游标④由键集驱动的游标 “ROLLBACK TRAN”语句结束。锁是另一个和事务紧密联系的概念,对使用游标的基本步骤有哪些? 于多用户系统,使用锁来保护制定游标的操作步骤:
的资源。在事务中使用锁,防止其①声明游标 ②打开游标③ 读取游他用户修改另一个事务还没有完成标中的数据
的事务中的数据,SQL Serve 中有④关闭游标⑤释放游标 多种类型的锁,允许事务锁定不同
的资源。
事务和锁有什么关系?
SQL Server 2012 中可以使用多种机制来确保数据的完整性,例如约束、触发器以及本章介绍的事务和锁等。事务和锁的关系非常紧密。事务包含一系列的操作,这些操作要么全部成功,要么全部失败,通过事务机制管理多个事务,保证事务的一致性,事务中使用锁来保护指定的资源,防止其他用户修改另一个事务还没有完成的事务中的数据。
简述事务原理,事务有哪些类型? 事务原理:事务要有非常明确的开始和结束点,SQL Server 中的每一条数据操作语句,例如SELECT 、INSERT、UPDSTE和DELETE都是隐式事务的一部分,即使有一条语句,系统也会把一条语句当作一个事务,要么执行语句,要么什么都不执行。 事务类型:
①自动提交事务:每条单独的SQL语句就是一个事务。
②显示事务:每个事务均以BEGIN TRNSACTION 语句显示开始,以
COMMIT或ROLLBACK 语句显示结束。 ③隐式事务:前一个事务完成时新事务隐式启动,每个事务仍以
COMMIT或ROLLBACK 语句显示结束 ④分布式事务:跨越多个服务器的事务。
常用的锁类型有哪些?为什么会产生死锁?如何理解锁的相容性? 锁的类型: ①更新锁:一般用于可更新的资源。 ②排他锁:用于数据修改操作。 ③共享锁:用于读取数据操作。 ④键范围锁:可防止幻读。
⑤架构锁:执行表的数据定义操作时使用架构修改锁,在架构修改锁起作用的期间,会防止对表的并发访问。
游标的含义及分类?
游标含义:游标是SQL Server 2012 的一种数据访问机制,它允许用户访问单独的数据行。在查看或处理结果集中的数据时,游标可以提供在结果集中向前或向后浏览数据的
正在阅读:
数据库考试复习资料10-04
《管理会计》试题库(选择)03-22
正畸名词解释Word版08-21
音乐企划案03-31
统计自查报告03-26
中学教师2023年度个人工作计划范文03-22
厨房交响曲作文600字07-14
VB课后答案05-03
端正学习态度,培养良好习惯(第3周)11-27
组宣委员自我总结08-13
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 复习资料
- 数据库
- 考试