SQL Server SQL实验与练习题参考答案
(SQLServer)考试试题及答案解析
2013年(下)全国信息技术水平考试数据库应用系统设计技术水平证书(SQL Server)考试试卷第一大题:单选题(30 分)1. (1分)数据模型的三要素不包括()。
(A) 数据结构(B) 数据操作(C) 数据完整性约束(D) 数据恢复2. (1分)数据的存储结构与数据逻辑结构之间的独立性称为数据的()。
(A) 结构独立性(B) 物理独立性(C) 逻辑独立性(D) 分布独立性3. (1分) 如果对于实体集A中的每一个实体,实体集B中可有多个实体与之联系;反之,对于实体集B中的每一个实体,实体集A中也可有多个实体与之联系。
则称实体集A与B具有()。
(A) 1:1联系(B) 1:n联系(C) n:m联系(D) 多种联系4. (1分)当对关系R和S使用自然联接时,一般要求R和S至少含有一个共同的()。
(A) 元组(B) 关键字(C) 记录(D) 属性5. (1分)若关系模式R(A,B,C,D,E)上的函数依赖集F={AB->C,A->D,A->E},为了满足BCNF,可以将R分解为()。
(A) R1(A,B,C,D) R2(A,E)(B) R1(A,B,C) R2(A,D,E)(C) R1(A,B,C) R2(D,E)(D) R1(A,B) R2(A,C,D,E)6. (1分) SQL语言查询一次的结果是一个()。
(A) 元组(B) 表(C) 属性(D) 数据库7. (1分)在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,则称函数依赖X→Y为()。
(A) 平凡函数依赖(B) 部分函数依赖(C) 完全函数依赖(D) 传递函数依赖8 . (1分)在Transact-SQL中,下列命令能让程序完全跳出循环的是()。
(A) CASE(B) WAIT(C) BREAK (D) CONTINU E9 . (1分) 在Transact-SQL中,下列选项不属于数值型数据类型的是()。
sql server 数据库管理与开发教程与实训(第2版习题答案)
12.我心中的太阳我心中的月亮
13.by百岁不是梦百岁
14.1931 7 142009-01-12 19:24:55.543
15.7719852015
16.35
17.减(-)乘(*)除(/)取余(%)
18.等于(=)不等于(<>)小于(<)小于等于(<=)大小相同与否
19.字符串联接、比较、逻辑
from学生信息表as xs
inner join教学成绩表as cj on cj.学号=xs.学号
group by xs.班级编号,课程编号
order by avg(分数) desc,xs.班级编号desc
e教学成绩管理数据库
go
select bj.名称,xs.学号,xs.姓名,avg(分数)
go
select xs.学号,姓名,名称,分数
from学生信息表as xs,教学成绩表as cj,课程信息表as kc
where xs.学号=cj.学号and cj.课程编号=kc.编号and班级编号='200303'
注意:编号为900012的课程由两个教师上
12.例6.30相同
13.create view班级课程成绩统计表
where datediff(year,出生日期,getdate())=25 or datediff(year,出生日期,getdate())=27
order by出生日期
e教学成绩管理数据库
go
select *
from学生信息表
where (datediff(year,出生日期,getdate())=25 or datediff(year,出生日期,getdate())=27)and性别='男'
SQLSERVER2008实用教程实验参考答案(综合实验)
系统开发入门实习2 VISUAL C#2008/SQL Server2008员工信息管理系统一、新建项目1. 运行Visual Stutio2008,单击菜单“文件-新建-项目”,在弹出的对话框中选择“Visual C#-Windows窗体应用程序”模板,命名为SimpleCRM,确定。
2. 新建父窗体:右击项目名“添加-Windows窗体”,选择“MDI父窗体”,确定。
3. 设计父窗体:1)父窗体的Text属性值设置为:员工管理系统。
删除父窗体中原有的menuStrip和toolStrip 控件。
2)添加菜单。
从工具箱中拖放一个menuStrip菜单控件到父窗体中,分别添加员工管理和关于菜单。
并在菜单下分别添加员工管理、工资管理和关于、帮助子菜单。
3)删除原有代码。
按F7键打开代码页,删除MDIParent1部分类中除构造函数外的所有代码。
4)添加代码。
切换到窗体设计窗口,双击员工管理子菜单,在“员工管理ToolStripMenuItem1_Click”方法中添加如下代码。
Form1 form1 = new Form1();form1.MdiParent = this;form1.Show();5)将父窗体设置为首选执行窗体。
在解决方案资源管理器中打开“Program.cs”文件,将“form1”修改为“MDIParent1”6)修改父窗体和子窗体的Size。
父窗体Size改为1024,768。
子窗体改为800,600。
二、设计员工管理窗体员工管理窗体(Form1.cs)的功能包括:员工查询、员工添加、员工修改、员工删除。
主要操作数据库YGGL下的Employees表。
1)添加控件:2个GroupBox、4个Button、9个Label、9个TextBox、1个DataGridView。
调整控件布局,修改控件Text属性值。
2)DataGridView控件设置。
打开DataGridView的属性窗口,单击DataSource属性,添加项目数据源,弹出“数据源配置向导”对话框。
Microsoft SQL Server数据库管理练习题参考答案
Microsoft SQL Server数据库管理练习题参考答案1. 数据库的备份和还原是维护数据库的重要任务,请简要说明在Microsoft SQL Server中如何备份和还原数据库。
在Microsoft SQL Server中,可以使用SQL Server Management Studio (SSMS)工具来备份和还原数据库。
备份数据库:1) 打开SSMS工具,连接到SQL Server数据库引擎。
2) 在对象资源管理器中,展开数据库文件夹,右键点击要备份的数据库,选择“任务”->“备份”。
3) 在“备份数据库”对话框中,选择备份类型、备份到的位置、备份集的名称等设置,然后点击“确定”进行备份。
还原数据库:1) 打开SSMS工具,连接到SQL Server数据库引擎。
2) 在对象资源管理器中,展开数据库文件夹,右键点击要还原的数据库,选择“任务”->“还原”->“数据库”。
3) 在“还原数据库”对话框中,选择备份集、还原到的位置、还原选项等设置,然后点击“确定”进行还原。
2. 在数据库设计中,为了保持数据的一致性和完整性,我们常常使用约束来规定数据的规则。
请简要说明在Microsoft SQL Server中如何添加和删除约束。
添加约束:1) 打开SSMS工具,连接到SQL Server数据库引擎。
2) 在对象资源管理器中,展开数据库文件夹,展开要添加约束的表所在的文件夹,右键点击该表,选择“设计”。
3) 在设计视图中,选择要添加约束的列,在属性窗口中选择“约束”一项,点击“...”按钮。
4) 在“约束”对话框中,选择要添加的约束类型(如主键、唯一性约束、外键等),设置约束的名称和规则,然后点击“确定”完成添加。
删除约束:1) 打开SSMS工具,连接到SQL Server数据库引擎。
2) 在对象资源管理器中,展开数据库文件夹,展开要删除约束的表所在的文件夹,右键点击该表,选择“设计”。
SQLServer课后习题参考答案(详解)
SQLServer课后习题参考答案(详解)第一章:1、订单管理系统的功能有哪些?答:订单管理系统的功能主要有客户查询商品信息、客户预订商品并提交订单、销售人员处理客户的订单信息、销售人员管理商品信息、客户信息等。
2、说明ER模型的作用?答:ER模型(实体关系模型)是描述概念世界,建立概念世界的工具,ER方法把管理系统所要描述的问题划分为单个的实体,通过实体间的联系实现有效、自然地模拟现实世界。
3、什么是关系模型?关系的完整性包括哪些内容?答:关系模型就是用二维表格结构来表示实体及实体之间联系的模型,关系模型包括四类完整性:域完整性、实体完整性、参照完整性和用户定义的完整性。
4、按照功能,SQL语言分为哪4部分?答:按照功能,SQL语言分为数据定义语言、查询语言、数据操纵语言、数据控制语言。
5、规范化范式是依据什么来划分的?它与一事一地的原则有什么联系?答:规范化范式根据一个关系满足数据依赖的程度不同,可规范化为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。
规范化范式遵循一事一地的原则,将描述一个独立事物的属性组成一个关系。
第二章:1、SQL Server 2005有哪些新增特性?答:SQL Server 2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。
企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在CommonLanguage Runtime集成、集成XML、Transact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。
2、SQL Server 2005安装的软件和硬件环境是什么?答:SQL Server 2005安装的软件和硬件环境参见教材表2-3、2-4、2-5、2-6。
3、SQL Server 2005有哪些版本?有哪些服务组件?答:SQL Server 2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。
新SQL——SERVER实验练习答案
SQL-Server实验答案上海师范大学计算机系目录第一部分企业管理器的使用 (3)试验一注册服务器.................................................................................. 错误!未定义书签。
试验二创建数据库.................................................................................. 错误!未定义书签。
试验三创建表.......................................................................................... 错误!未定义书签。
实验四数据输入...................................................................................... 错误!未定义书签。
实验五登录到数据库服务器.................................................................. 错误!未定义书签。
第二部分SQL语言 (3)第二部分SQL语言 (3)试验一数据库创建 (3)试验二创建表 (3)试验三创建数据完整性 (5)试验四数据完整性试验 (6)试验五索引 (10)试验六更新数据 (11)试验七 Sql 查询语句 (12)试验八视图 (15)试验九安全性控制实验 (16)试验十存储过程 (17)试验十二触发器 (21)试验十二恢复技术 (25)试验十三事务 (26)试验十四锁 (27)第一部分企业管理器的使用第二部分SQL语言试验一数据库创建目的:1掌握利用SQL语言进行数据库的创建、维护。
2 sp_helpdb 命令要求:1 创建数据库 2 修改数据库 3 删除数据库一建立school 数据库1 使用查询分析器创建数据库 schoolCreate DataBase school2 使用 SP_helpdb 查询数据库 School 的信息3 使用SQL-Server 的企业管理器查看数据库 school 的信息。
sql_server实验指导 课后答案
sql_server实验指导课后答案一、实验目的1、掌握SQL Server的安装及配置;2、掌握SQL Server的基本操作;3、掌握SQL Server的数据库管理;4、掌握SQL Server的数据库设计;5、掌握SQL Server的数据库查询;6、掌握SQL Server的数据库维护;7、掌握SQL Server的数据库安全管理。
二、实验内容1、安装SQL Server首先,我们需要下载SQL Server安装文件,然后双击安装文件,按照提示安装SQL Server,安装完成后,我们就可以使用SQL Server了。
2、配置SQL Server在安装完成后,我们需要配置SQL Server,配置SQL Server的方法有很多,比如设置SQL Server的安全性、设置SQL Server的连接属性、设置SQL Server的数据库文件位置等等。
3、基本操作在配置完成后,我们就可以使用SQL Server进行基本操作了,比如创建数据库、创建表、插入数据、更新数据、删除数据等等。
4、数据库管理在使用SQL Server进行基本操作后,我们还可以使用SQL Server进行数据库管理,比如创建视图、创建存储过程、创建触发器等等。
5、数据库设计在使用SQL Server进行数据库管理后,我们还可以使用SQL Server进行数据库设计,比如设计数据库模式、设计数据库索引、设计数据库视图等等。
6、数据库查询在使用SQL Server进行数据库设计后,我们还可以使用SQL Server进行数据库查询,比如使用SELECT语句查询数据、使用JOIN语句查询数据、使用GROUP BY语句查询数据等等。
7、数据库维护在使用SQL Server进行数据库查询后,我们还可以使用SQL Server进行数据库维护,比如备份数据库、恢复数据库、优化数据库等等。
8、数据库安全管理在使用SQL Server进行数据库维护后,我们还可以使用SQL Server进行数据库安全管理,比如设置用户权限、设置数据库安全策略、设置数据库审计等等。
Sql Server上机实验答案
--以默认方式创建stu001数据库create database stu001--打开stu001数据库use stu001--创建学生表XScreate table xs(学号char(7)not null primary key,姓名char(8)not null,性别bit not null default 1,出生日期smalldatetime not null,班级char(5)default'41021',总学分tinyint default 0,备注text null)--创建课程表KCcreate table kc(课程号char(3)not null primary key,课程名char(20)not null,开课学期tinyint not null default 1 check(开课学期>=1 and开课学期<9 ),学分tinyint not null default 0,学时tinyint not null)--创建学生与课程表xs_kccreate table xs_kc(学号char(7)not null references xs(学号),课程号char(3)not null references kc(课程号),成绩tinyint null default 0 check(成绩>=0 and成绩<=100),学分tinyint null default 0primary key(学号,课程号))--修改学生情况表(XS)的“出生日期”字段,使其数据类型改为datetime,且允许为空use stu001alter table xsalter column出生日期datetime null--删除学生与课程表(XS_KC)中的“学分”字段alter table xs_kc drop constraint DF__xs_kc__学分__0AD2A005alter table XS_kc drop column学分--修改学生情况表(XS),删除“班级”字段,增加一“专业”字段(varchar(20), 默认值为“计算机”)alter table xs drop constraint DF__xs__班级__7E6CC920alter table xs drop column班级alter table xs add专业varchar(20)default'计算机'--向数据库STUxxxx的XS表、KC表和XS_KC表中插入或修改成数据insert into xs(学号,姓名,性别,出生日期,专业,总学分,备注)values('4102101','王林',1,'1983-1-23','计算机',40,NULL)insert into xs(学号,姓名,性别,出生日期,专业,总学分,备注)values('4102102','吴荣华',0,'1984-3-28','计算机',44,NULL)insert into xs(学号,姓名,性别,出生日期,专业,总学分,备注)values('4202103','张强',1,'1981-11-19','电子',null,NULL)insert into xs(学号,姓名,性别,出生日期,专业,总学分,备注)values('4202110','王向荣',1,'1980-12-9','电子',50,NULL)insert into xs(学号,姓名,性别,出生日期,专业,总学分,备注)values('4202221','李丽',0,'1982-7-30','电子',null,NULL)insert into xs(学号,姓名,性别,出生日期,专业,总学分,备注)values('4302101','刘明',1,'1982-10-18','自控',38,NULL)insert into xs(学号,姓名,性别,出生日期,专业,总学分,备注)values('4402130','叶凡',1,'1983-11-18','数学',46,'转专业学习')insert into kc(课程号,课程名,开课学期,学时,学分)values('101','计算机基础',1,48,3)insert into kc(课程号,课程名,开课学期,学时,学分)values('102','C语言',2,80,5) insert into kc(课程号,课程名,开课学期,学时,学分)values('103','数据库',4,64,4) insert into kc(课程号,课程名,开课学期,学时,学分)values('201','离散数学',6,64,4)insert into kc(课程号,课程名,开课学期,学时,学分)values('202','计算机网络',7,64,4)insert into kc(课程号,课程名,开课学期,学时,学分)values('301','软件工程',6,64,4)insert into xs_kc(学号,课程号,成绩)values('4102101','101',80)insert into xs_kc(学号,课程号,成绩)values('4102101','102',89)insert into xs_kc(学号,课程号,成绩)values('4102101','103',78)insert into xs_kc(学号,课程号,成绩)values('4102102','101',57)insert into xs_kc(学号,课程号,成绩)values('4102102','102',67)insert into xs_kc(学号,课程号,成绩)values('4202103','103',90)insert into xs_kc(学号,课程号,成绩)values('4202110','101',85)insert into xs_kc(学号,课程号,成绩)values('4202110','102',91)insert into xs_kc(学号,课程号,成绩)values('4202221','101',69)insert into xs_kc(学号,课程号,成绩)values('4402130','101',78)insert into xs_kc(学号,课程号,成绩)values('4402130','103',74)--(一)简单查询--1.查询XS表中各个同学的所有信息。
SQL实验的题目和答案全解
数据库实验总汇二、使用SQL Server 工具在管理数据库系统和运行SQL查询的两个主要工具是企业管理器和查询分析器三、实验目的1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL对数据库进行操作。
3.完成上机练习。
四、实验内容(打※为选做题)Part A1.使用CREATE语句创建数据库2. 使用CREATE语句创建基本表3.更改基本表的定义,增加列,修改列的数据类型。
4.创建表的索引,取消表的索引1、数据库的建立使用SQL 语句建立关系数据库schooldemo2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea),表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT (10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date (DATETIME);(三个表之间有联系)3、更改基本表的定义,增加列,删除列,修改列的数据类型。
更改表PERSON,增加属性Ptype(类型是CHAR ,长度为10),把表ROOM中的属性Rname的数据类型改为长度为40。
4、创建表的索引,取消表的索引为ROOM表创建按Rno降序排列的索引创建PERSON表按Pname升序排列的唯一性索引取消PERSON表Pname升序索引5、删除表ROOM实验过程(1.a)1、数据库的建立使用SQL 语句建立关系数据库schooldemocreate database schooldemoon(name=schooldemo,filename='e:\123\school_data.mdf',size=5mb,maxsize=15mb,filegrowth=10%)log on(name=schooldemo_log,filename='e:\123\schooldemo.ldf',size=5mb,maxsize=15mb,filegrowth=4mb)2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea), 表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT(10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date(DATETIME);(三个表之间有联系)create table person(pno char (8)primary key,pname char (20),page int);create table room(rno char (8) primary key,rname char(20),rarea float(10));create table pr(pno char (8),rno char (8),date datetime,primary key(pno,rno),foreign key(pno) references person(pno),foreign key(rno) references room(rno));3、更改基本表的定义,增加列,删除列,修改列的数据类型。
SQL SERVER 2000实用教程习题及实验参考答案
习题参考答案第一章1、SQL Server 2000有七种不同的可用版本:企业版、企业评估版、标准版、开发版、个人版、Windows CE版和桌面引擎版。
2、Microsoft Windows NT Server 4.0、Microsoft Windows NT Server 4.0 企业版、Windows 2000 Server、Windows 2000 Advanced Server 和Windows 2000 Data Center Server第二章1、C2、A3、Exec sp_addtype New_str,'Varchar(12)', 'Not Null '第三章1.数据文件、事务日志、mdf、ldf。
2.CREATE DATABASE。
3.SP_HELPDB.4.ALTER DATABASE.。
5.DBCC SHRINKFILE、DBCC SHRINKDATABASE。
6.SP_DBOPTION。
7.DROP DATABASE。
8.SP_DETACH。
9.带FOR ATTACH子句的CREATE DATABASE语句。
10.CREATE TABLE。
11.ALTER TABLE。
12.DROP TABLE。
13.INSERT。
14.UPDATE。
15.DELETE。
16.约束定义了关于允许什么数据进入数据库的规则。
约束有五种类型,分别是PRIMARY KEY约束、FOREIGN KEY约束、UNION约束、CHECK约束、DEFAULT约束。
约束的作用是防止列出现非法数据,以保证数据库中数据的一致性和完整性。
17.(1) DELETE E2 FROM E2, E1WHERE E2.编号 IN (SELECT 编号 FROM E1)(2) INSERT INTO E1 SELECT * FROM E218. UPDATE G1 SET G1.数量= G1.数量+ G2.数量FROM G1, G2WHERE G1.编号= G2.编号GOINSERT INTO G1SELECT * FROM G2 WHERE NOT (G2.编号IN (SELECT 编号FROM G1))第四章1. A、B、D2.B、C、D3.(1)程序为:SELECT top 6 * FROM goods(2)程序为:SELECT 商品名称,进货价FROM goods ORDER BY 进货价DESC (3)程序为:SELECT 商品名称,零售价,进货价,剩余数量FROM goods INNER JOIN sell ON goods.商品编号=sell.商品编号(4)程序为:SELECT 商品编号,数量,零售价FROM goodsCOMPUTE A VG(零售价)(5)程序为:SELECT 商品名称,goods.数量,售出时间FROM goods,sellWHERE 售出时间between '2004.1.1'AND '2005.1.1'and goods.商品编号=sell.商品编号(6)程序为:SELECT * FROM employeesWHERE 编号=ANY (SELECT 售货员工编号FROM sell)SELECT 售货员工编号,商品编号,数量FROM sell order by 售货员工编号COMPUTE SUM(数量) BY 售货员工编号(7)程序为:SELECT 商品名称,goods.数量,剩余数量FROM goods,sellWHERE goods.商品编号=sell.商品编号and 商品名称LIKE '%显示器%'(8)程序为:SELECT SUM(sell.数量) as 打印机销售数量FROM sell,goodsWHERE sell.商品编号=goods.商品编号and 商品名称='打印机'第五章1. C2. D3.答:索引是一个单独的,物理的数据库结构。
sqlserver实验答案
sqlserver实验答案【篇一:sqlserver2008实用教程实验参考答案(实验6)】=txt>一、索引当表中数据量很大时,合理建立索引,可以提高查询的效率。
1. 对yggl数据库的employees表中的departmentid列建立索引create index em_d_ind on employees(departmentid)2. 在employees表的name列和address列上建立复合索引create index em_na_ind on employees(name,address)3. 对departments表上的departmentname列建立唯一非聚集索引create unique index de_n_ind ondepartments(departmentname)4. 重建索引alter index all on employees rebuild5. 删除索引drop index em_d_id on employees一次删除多个索引drop index employees.em_d_ind,employees.em_na_ind6. 使用界面方式创建、删除索引二、数据完整性1. 创建一个表employees5,只含有employeeid、name、sex和education列。
将name设为主键,并对employeeid列进行unique约束。
验证主键约束和唯一约束。
create table employees5()employeeid char(6) not null, name char(10) not null primary key, sex bit, education char(4) constraint uk_idunique(employeeid)2. 删除上例中创建的unique约束,删除后再验证唯一约束。
alter table employees5 drop constraint uk_id3. 创建新表,使用复合列作为主键。
sql_server实验指导 课后答案
sql_server实验指导课后答案一、实验题目1. 什么是SQL Server?答:SQL Server是一种关系型数据库管理系统(RDBMS),由微软公司开发,用于存储和管理大量的数据。
它可以处理复杂的数据查询,提供高性能的数据存储和管理,并且可以支持多种编程语言,如T-SQL、C#、Java等。
2. SQL Server的优势有哪些?答:SQL Server的优势有:(1)高性能:SQL Server提供了高性能的数据存储和管理,可以满足大量数据的需求。
(2)安全性:SQL Server提供了多种安全性功能,可以有效保护数据安全。
(3)可扩展性:SQL Server可以根据用户的需求进行扩展,满足不同的业务需求。
(4)可移植性:SQL Server可以跨多种操作系统运行,可以满足不同的环境需求。
(5)可维护性:SQL Server提供了多种维护功能,可以有效管理数据库。
3. SQL Server的组件有哪些?答:SQL Server的组件有:(1)SQL Server数据库引擎:用于存储和管理数据库中的数据。
(2)SQL Server数据库安全:用于保护数据库中的数据安全。
(3)SQL Server数据库管理工具:用于管理数据库中的数据。
(4)SQL Server数据库开发工具:用于开发数据库应用程序。
(5)SQL Server数据库报表服务:用于创建和管理报表。
(6)SQL Server数据库集成服务:用于数据集成和数据交换。
(7)SQL Server数据库分析服务:用于分析数据库中的数据。
(8)SQL Server数据库服务器:用于管理数据库服务器。
SQL Server上机课堂实践与习题及答案(完整)
任务1 SQL Server系统软硬件安装配置课堂实践11.上网查询目前主流的关系型数据库系统及各自的特点?答:目前主流的关系型数据库系统有:桌面关系型数据库系统和网络关系型数据库系统。
桌面:优点:操作灵活,转移方便,运行环境简单,对小型网站的数据库处理能力还不错。
网络:优点:适合大容量数据和大容量网站的应用,在性能、安全、功能管理、可扩展性上要比桌面型数据库强很多,两者并非同级别的数据库,有些功能桌面型数据库甚至无法做到。
简单说,桌面关系数据库指单机版的DMBS,比如Access,FoxFro等。
网络型关系数据库和桌面型关系数据库相对,可以在多台机器上同时对数据库进行操作,包括查询,添加,修改,删除,网络关系型数据库的代表有SQL和Orade等。
2.上网查询并写报告:数据库系统的发展。
在应用需求的推动下,在计算机硬件、软件发展的基础上,数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。
1.1.1. 人工管理阶段20世纪50年代中期以前,计算机主要用于科学计算。
当时的硬件状况是:外存只有纸带、卡片、磁带,没有磁盘等直接存取的存储设备;软件的状况是:没有操作系统,没有管理数据的软件;数据处理方式是批处理。
人工管理数据的特点如下:数据不保存应用程序管理数据数据不共享数据不具有独立性数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改,这会进一步加重程序员的负担。
在人工管理数据阶段,程序与数据之间的一一对应关系可用图 1.1表示图 1.1. 人工管理阶段应用程序与数据之间的对应关系1.1.2. 文件系统阶段20世纪50年代后期到60年代中期,这是硬件方面已有了磁盘、磁鼓等直接存取存储设备;软件方面,操作系统中已经有了专门的数据管理软件,一般称为文件系统;处理方式上,不仅有了批处理,而且能够联机实时处理。
用文件系统管理数据具有如下特点:数据可以长期保存由文件系统管理数据数据共享性差,冗余度大数据独立性差文件系统仍然是一个不具有弹性的无结构的数据集合,即文件之间是孤立的。
sqlserver实验(答案)
实验1 Sql Server数据库的安装1.实验目的(1)通过安装来了解,感受SQL Server2005(2)了解SQL Server2005所支持的多种形式的管理架构,并确定此次安装的管理架构形式(3)熟悉安装SQL Server2005的各种版本所需的软、硬件要求,确定要安装的版本(4)熟悉SQL Server2005支持的身份验证种类(5)掌握SQL Server服务的几种启动方法(6)正确配置客户端和服务器端网络连接的方法(7)掌握SQL Server Management Studio的常规使用2.实验准备(1)了解SQL Server2005的各种版本及所需的软、硬件要求(2)了解SQL Server2005支持的验证种类(3)了解SQL Server2005各组件的主要功能(4)掌握在查询分析器中执行SQL语句的方法3.实验内容(1)安装SQL Server2005,并在安装时将登录身份验证模式设置为“SQL Server”和“Windows”验证,其他选择默认,并记住Sa的密码。
(2)利用SQL Server Configuration Manager配置SQL Server2005服务器(3)利用SQL Server2005创建的默认帐户,通过注册服务器向导首次注册服务器(4)试着创建一些由SQL Server2005验证的用户,删除第一次注册的服务器后用新建的帐户来注册服务器。
(5)为某一个数据库服务器指定服务器别名,后通过服务器别名注册该数据库服务器(6)熟悉和学习使用SQL Server2005的SQL Server Management Studio实验2 创建数据库和表1.实验目的(1)了解SQL Server数据库的逻辑结构和物理结构(2)了解表的结构和特点(3)了解SQL Server的基本数据类型(4)掌握在SQL Server Management Studio中创建数据库和表的方法(5)掌握使用T-SQL语句创建数据库和表的方法2.实验准备(1)要明确能够创建数据库的用户必须是系统管理员或被授权使用Create database的用户(2)创建数据库必须要确定数据库名、所有者、数据库大小(最初大小、最大大小、是否允许增长和增长的方式)和存储数据的文件(3)确定数据库包含哪些表及包含的表结构,还要了解掌握在SQL Server Management 的常用数据类型,以创建数据库的表(4)了解常用的创建数据库和表的方法3.实验内容(1)数据库分析①创建用于学生选课管理的数据库,数据库名为“student”,初始大小20M,最大50M,数据库自动增长,增长方式是按15%;日志文件大小5M,最大25M,按5M增长。
SQL Server SQL实验与练习题参考答案
/zh-cn/library/ms177503.aspx实验1 数据库操作1.创建数据库:操作1.1:创建一个test数据库,其主数据文件逻辑名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸为无限大,增长速度1MB;数据库日志文件逻辑名称为test_log,物理文件名为test_log.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为10%。
参考答案:create database TestON primary(name = test_data,filename = 'd:\test\test_data.mdf',size = 5MB,maxsize = unlimited,filegrowth = 1MB)LOG ON(name = test_log,filename = 'd:\test\test_log.ldf',size = 1MB,maxsize = 5MB,filegrowth = 10%)GO2.查看数据库属性:操作1.2:使用T-SQL语句查看数据库test属性参考答案:EXEC sp_helpdb testEXEC 执行存储过程sp_helpdb 报告有关指定数据库或所有数据库的信息。
3.删除数据库:操作1.3:使用T-SQL语句删除数据库test参考答案:drop database Test实验2 表操作1.创建表:操作2.1:创建学生表:表名:student 说明:学生基本信息表参考答案:USE testGOCREATE TABLE student(st_id nVarChar(9) primary key NOT NULL ,st_nm nVarChar(8) NOT NULL ,st_sex nVarChar(2) NULL ,st_birth datetime NULL ,st_score int NULL ,st_date datetime NULL ,st_ from nVarChar(20) NULL ,st_dpid nVarChar(2) NULL ,st_ mnt tinyint NULL)GO操作2.2:创建课程信息表:表名:couse 说明:课程信息表参考答案:USE testGOCREATE TABLE couse(cs_id nVarChar(4) primary key NOT NULL ,cs_nm nVarChar(20) NOT NULL ,cs_tm int NULL ,cs_sc int NULL)GO操作2.3:创建选课表:表名:slt_couse 说明:选课表参考答案:USE testGOCREATE TABLE couse(cs_id nVarChar(4) NOT NULL ,st_id nVarChar(9) NOT NULL ,score int NULL ,sltdate datetime NULL)GO操作2.4:创建院系信息表:表名:dept 说明:院系信息表USE testGOCREATE TABLE dept(dp_id nVarChar(2) NOT NULL ,dp_nm nVarChar(20) NOT NULL ,dp_drt nVarChar(8) NULL ,dp_tel nVarChar(12) NULL)GO2.修改表结构:(1)向表中添加列:操作2.5:为“dept”表添加“dp_count”列(数据类型为nvarchar,长度为3,允许为空)参考答案:ALTER TABLE dept ADD dp_count nvarchar(3) NULL (2)修改列数据类型:操作2.6:修改“dept”表的“dp_count”列数据类型为int参考答案:ALTER TABLE dept ALTER COLUMN dp_count int NULL (3)删除表中指定列:操作2.7:删除“dept”表的“dp_count”列参考答案:ALTER TABLE dept DROP COLUMN dp_count3.删除表操作2.8:删除“dept”表参考答案:DROP TABLE student4.向表中输入数据记录操作2.9:分别向“student”表、“couse”表、“slt_couse”表、“dept”表中输入数据记录实验3 数据完整性1.空值约束( NULL )操作3.1:将student表中的st_sex列属性更改为NOT NULL参考答案:ALTER TABLE student ALTER COLUME st_nm nVarChar(8) NOT NULL2.默认值约束( DEFAULT )操作3.2:将student表中的st_from列默认值设置为“陕西省”参考答案:ALTER TABLE student ADD DEFAULT '陕西省' FOR st_from3.默认值对象操作3.3:创建默认值对象df_today为当前日期,并将其绑定到slt_couse表中的sltdate列,然后取消绑定,最后删除默认值对象df_today。
sql实验习题答案
sql实验习题答案SQL实验习题答案在学习SQL(Structured Query Language)时,习题是一种非常有效的学习方式。
通过实践操作,我们可以更好地理解SQL语言的各种概念和用法。
下面是一些常见的SQL实验习题及其答案,希望对大家的学习有所帮助。
1. 查询某个表的所有数据答案:SELECT * FROM 表名;2. 查询某个表的前n行数据答案:SELECT * FROM 表名 LIMIT n;3. 查询某个表中满足某个条件的数据答案:SELECT * FROM 表名 WHERE 条件;4. 查询某个表中某个字段的最大值答案:SELECT MAX(字段名) FROM 表名;5. 查询某个表中某个字段的最小值答案:SELECT MIN(字段名) FROM 表名;6. 查询某个表中某个字段的总和答案:SELECT SUM(字段名) FROM 表名;7. 查询某个表中某个字段的平均值答案:SELECT AVG(字段名) FROM 表名;8. 查询某个表中某个字段的记录数答案:SELECT COUNT(字段名) FROM 表名;9. 查询某个表中某个字段的记录数,并按照字段值进行分组答案:SELECT 字段名, COUNT(字段名) FROM 表名 GROUP BY 字段名;10. 查询某个表中满足多个条件的数据答案:SELECT * FROM 表名 WHERE 条件1 AND 条件2;11. 查询某个表中满足多个条件中的任意一个条件的数据答案:SELECT * FROM 表名 WHERE 条件1 OR 条件2;12. 查询某个表中满足某个条件,并按照某个字段进行排序的数据答案:SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名;13. 查询某个表中满足某个条件,并限制结果的行数答案:SELECT * FROM 表名 WHERE 条件 LIMIT n;14. 查询某个表中满足某个条件,并跳过前n行的数据答案:SELECT * FROM 表名 WHERE 条件 OFFSET n;15. 查询某个表中满足某个条件,并按照某个字段进行分页显示答案:SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名 LIMIT n OFFSET m;这些习题涵盖了SQL语言的基本操作和常用函数。
SQL Server 课后习题参考答案(详解)
答:实例就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。一个SQL Server服务器就是一个实例,一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是一个实例。
答:实体是客观存在并且可以相互区别的事物,实体可以是具体的事物,也可以是抽象的事物。不同的事物是用不同的特征决定的,用来描述实体的特性称为实体的属性。表中每条记录对应一个实体,而每个字段保存着对应实体的属性值。
2、说明主键、惟一键和外键的作用。说明它们在保证数据完整性中的应用方法。
答:主键是唯一识别一个表的每一记录,作用是将记录和存放在其他表中的数据进行关联,并与外键构成参照完整性约束。惟一键用于指明创建惟一约束的列上的取值必须惟一。外键用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。外键约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。
7、SQL Server 2005中有哪些类型数据?
答:参见教材表4-1。
9、数据完整性包括哪些?如何实现?
答:数据完整性包括实体完整性,域完整性,引用完整性,用户定义完整性,通过在表中,列中,表与表之间设置主键、惟一键、外键、CHECK约束等可以实现。
16、说明使用标识列的优缺点。
答:优点:方便可以让计算机为表中的记录按照要求自动地生成标识字段的值。
8、通过视图修改数据要注意哪些限制?
答:对视图进行的修改操作ห้องสมุดไป่ตู้以下限制:
70-00_SQLServer00课后实训参考答案
70-00_SQLServer00课后实训参考答案课后实训参考答案单元1(SQL Server概述)1、使⽤SQL语句。
在Sale数据库中创建名为MyDataType的⽤户定义数据类型,数据类型为NV ARCHAR,长度为20,该列允许为NULL。
USE SaleGOEXEC sp_addtype MyDataType,'NVARCHAR(20)','NULL' GO单元2(单表数据)使⽤查询窗⼝或sqlcmd实施查询。
本实训使⽤Xk数据库。
--1.查看系部编号为“03”的系部名称。
USE XkGOSELECT DepartNameFROM DepartmentWHERE DepartNo='03'GO--2.查看系部名称中包含有“⼯程”两个字的系的全名。
USE XkGOSELECT DepartNameFROM DepartmentWHERE DepartName LIKE'%⼯程%' GO--3.显⽰共有多少个系部。
USE XKGOSELECT'系部总数'=COUNT(*)FROM DepartmentGO--4.显⽰“01”年级共有多少个班级。
USE XKGOSELECT'01 级班级数'=COUNT(*)FROM ClassWHERE ClassNo LIKE'2001%'GOSELECT'01 级班级数'=COUNT(*)FROM ClassWHERE ClassName LIKE'01%'GOSELECT'01 级班级数'=COUNT(*)FROM StudentWHERE ClassNo LIKE'2001%'GO--5.查看在“周⼆晚”上课的课程名称和教师。
USE XKGOSELECT'课程名称'=CouName,'任课教师'=TeacherFROM CourseWHERE SchoolTime='周⼆晚'GO--6.查看姓“张”、“陈”、“黄”同学的基本信息,要求按照姓名降序排序查询结果。
SQL实验及部分答案
SQL实验及部分答案实验⼀使⽤SQL语句创建和删除数据库⼀. 实验⽬的:1、了解SQL Server 2005数据库的逻辑结构和物理结构。
2、掌握使⽤SQL 语句创建和删除数据库。
⼆. 实验准备1.明确能够创建数据库的⽤户必须是系统管理员,或是被授权使⽤CREATE DATABASE语句的⽤户。
2.了解⽤SQL语句创建和删除数据库的基本语法。
三. 实验要求3、熟练使⽤查询分析器进⾏数据库的创建和删除操作4、完成⽤sql语句建⽴和删除数据库的实验报告四. 实验内容1.以下是创建数据库userdb1的SQL语句,以下是创建数据库userdb1的SQL语句,CREATE DATABASE userdb1 --创建名为userdb1的数据库on( NAME='userdb2',--数据⽂件的逻辑名称为userdb2FILENAME= 'd:\test\userdb1.mdf', ----物理路径为d:\testSIZE=5mb,----数据初始长度为5MMAXSIZE=10mb, --最⼤长度为10MFILEGROWTH=1mb --数据⽂件每次增长1M)运⾏上诉语句建⽴数据库userdb1.2.⽤SQL语句删除步骤⼀建⽴的数据库userdb1。
drop database userdb1 --删除数据库userdb1实验⼆分别⽤向导和SQL语句创建和删除表⼀.⽤SQL语句创建表在SQL Server 2005 的查询分析器中,⽤sql语句创建student表。
表2.1 student表(学⽣信息表)CREATE TABLE student(sno char(8)not null primary key,--学号(主键)sname char(8)not null,--姓名sex char(2)null,--性别native char(20)null,--籍贯birthday datetime null,--出⽣⽇期dno char(6)null,--所在院系spno char(8)null,--专业代码classno char(4)null,--班级号entime datetime null,--⼊校时间home varchar(40)null,--家庭住址tel varchar(40)null,--联系电话)表2.2 course表(课程信息表)CREATE TABLE course(cno char(10)not null primary key, spno char(8)null,cname char(20)not null,ctno tinyint null,experiment tinyint null,lecture tinyint null,semester tinyint null,credit tinyint null)实验三修改数据库基本表的定义⼀.实验⽬的1.了解表的结构特点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1 数据库操作1.创建数据库:操作1.1:创建一个test数据库,其主数据文件逻辑名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸为无限大,增长速度1MB;数据库日志文件逻辑名称为test_log,物理文件名为test_log.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为10%。
参考答案:create database TestON primary(name = test_data,filename = 'd:\test\test_data.mdf',size = 5MB,maxsize = unlimited,filegrowth = 1MB)LOG ON(name = test_log,filename = 'd:\test\test_log.ldf',size = 1MB,maxsize = 5MB,filegrowth = 10%)GO2.查看数据库属性:操作1.2:使用T-SQL语句查看数据库test属性参考答案:EXEC sp_helpdb test3.删除数据库:操作1.3:使用T-SQL语句删除数据库test参考答案:drop database Test实验2 表操作1.创建表:操作2.1:创建学生表:表名:student 说明:学生基本信息表参考答案:USE testGOCREATE TABLE student(st_id nVarChar(9) primary key NOT NULL ,st_nm nVarChar(8) NOT NULL ,st_sex nVarChar(2) NULL ,st_birth datetime NULL ,st_score int NULL ,st_date datetime NULL ,st_ from nVarChar(20) NULL ,st_dpid nVarChar(2) NULL ,st_ mnt tinyint NULL)GO操作2.2:创建课程信息表:表名:couse 说明:课程信息表参考答案:USE testGOCREATE TABLE couse(cs_id nVarChar(4) primary key NOT NULL ,cs_nm nVarChar(20) NOT NULL ,cs_tm int NULL ,cs_sc int NULL)GO操作2.3:创建选课表:表名:slt_couse 说明:选课表参考答案:USE testGOCREATE TABLE couse(cs_id nVarChar(4) NOT NULL ,st_id nVarChar(9) NOT NULL ,score int NULL ,sltdate datetime NULL)GO操作2.4:创建院系信息表:表名:dept 说明:院系信息表参考答案:USE testGOCREATE TABLE dept(dp_id nVarChar(2) NOT NULL ,dp_nm nVarChar(20) NOT NULL ,dp_drt nVarChar(8) NULL ,dp_tel nVarChar(12) NULL)GO2.修改表结构:(1)向表中添加列:操作2.5:为“dept”表添加“dp_count”列(数据类型为nvarchar,长度为3,允许为空)参考答案:ALTER TABLE dept ADD dp_count nvarchar(3) NULL (2)修改列数据类型:操作2.6:修改“dept”表的“dp_count”列数据类型为int参考答案:ALTER TABLE dept ALTER COLUMN dp_count int NULL (3)删除表中指定列:操作2.7:删除“dept”表的“dp_count”列参考答案:ALTER TABLE dept DROP COLUMN dp_count3.删除表操作2.8:删除“dept”表参考答案:DROP TABLE student4.向表中输入数据记录操作2.9:分别向“student”表、“couse”表、“slt_couse”表、“dept”表中输入数据记录实验3 数据完整性1.空值约束( NULL )操作3.1:将student表中的st_sex列属性更改为NOT NULL参考答案:ALTER TABLE student ALTER COLUME st_nm nVarChar(8) NOT NULL2.默认值约束( DEFAULT )操作3.2:将student表中的st_from列默认值设置为“陕西省”参考答案:ALTER TABLE student ADD DEFAULT '陕西省' FOR st_from3.默认值对象操作3.3:创建默认值对象df_today为当前日期,并将其绑定到slt_couse表中的sltdate列,然后取消绑定,最后删除默认值对象df_today。
参考答案:CREATE DEFAULT df_today AS Getdate( )GOEXEC sp_bindefault df_today, 'slt_couse.sltdate'GOEXEC sp_unbindefault 'slt_couse.sltdate'GODROP DEFAULT df_todayGO4.检查约束( CHECK )操作3.4:将slt_couse表中的score列的检查约束设置为>=0且<=100参考答案:ALTER TABLE slt_couse ADD CHECK (score>=0 AND score<=100)5.规则约束对象操作3.5:创建规则约束对象rl_sex,用于检查性别的取值仅限于“男”和“女”,并将其绑定到student 表中的st_sex列,然后取消绑定,最后删除规则约束对象rl_sex。
参考答案:CREATE RULE rl_sex AS @chksex ’男’ OR @chksex=’女’或CREATE RULE rl_sex AS @chksex IN (’男’, ’女’)GOEXEC sp_bindrule rl_sex, 'student.st_sex'GOEXEC sp_unbindrule 'student.st_sex'GODROP RULE rl_sexGO6.主键操作3.6:将dept表中的dp_id列设置为主键参考答案:ALTER TABLE dept ADD PRIMARY KEY (dp_id)7.唯一性约束( UNIQUE )操作3.7:将dept表中的dp_nm列设置为唯一性约束参考答案:ALTER TABLE dept ADD UNIQUE (dp_nm)8.标识列操作3.8:向slt_couse表中添加标识列id,第1行默认值为1,相邻两个标识列间的增量为1参考答案:ALTER TABLE slt_couse ADD id INT IDENTITY(1,1) NOT NULL9.外键( FOREIGN KEY )操作3.9:被参照表为dept,参照表为student参考答案:ALTER TABLE studentADD FOREIGN KEY (st_dpid) REFERENCES dept(dp_id)实验4 数据更新1.表中插入数据操作4.1:向dept表插入一条记录,系号11,系名自动控制系,系主任为李其余,电话81234567 INSERT INTO dept VALUES('11', '自动控制系', '李其余', '81234567') 操作4.2:向student表插入一条记录,学号070201001,姓名为王小五,性别为男,出生日期为1990年9月9日,系号为11,其余字段为NULL或默认值INSERT INTO student(st_id, st_nm, st_sex, st_birth, st_dpid)VALUES ('070201001', '王小五', '男', '1990.9.9', '11' )操作4.3:向couse表插入一条记录,课程号1234,课程名为操作系统,其余字段为NULL或默认值INSERT INTO couse(cs_id, cs_nm) VALUES ('1234', '操作系统') 操作4.4:向slt_couse表插入一条记录,课程号1234,学名070201001,其余字段为NULL或默认值INSERT INTO slt_couse(cs_id, st_id) VALUES ('1234', '070201001')2.修改表中数据操作4.5:修改student表记录,将王小五的入学成绩改为88UPDATE student SET st_score=88 WHERE st_nm='王小五'操作4.6:修改couse表记录,将所有记录的学分改为4,学时改为64UPDATE couse SET cs_tm=64, cs_sc=4操作4.7:修改slt_couse表记录,将课程号为1234,学名为070201001的记录的成绩改为77 UPDATE slt_couse SET score=77 WHERE cs_id='1234' AND st_id='070201001'3.删除表中数据操作4.8:删除slt_couse表记录,将课程号为1234,学名为070201001的记录删除DELETE FROM slt_couse WHERE cs_id='1234' AND st_id='070201001' 操作4.9:删除couse表记录,将课程号为1234的记录删除DELETE FROM couse WHERE cs_id='1234'实验5 数据查询(1)——简单查询(1)查询表中所有的列操作5.1:查询所有系的信息SELECT * FROM dept(2)查询表中指定列的信息操作5.2:查询所有的课程号与课程名称SELECT cs_id, cs_nm FROM couse(3)在查询列表中使用列表达式操作5.3:在查询student表时使用列表达式:入学成绩+400SELECT st_id, st_nm, st_score, st_score+400 AS new_scoreFROM student(4)重新命名查询结果操作5.4:使用AS关键字为dept表中属性指定列名:系号、系名、系主任、联系电话SELECT dp_id AS 系号, dp_nm AS 系名, dp_drt AS 系主任, dp_tel AS联系电话FROM dept操作5.5:使用"="号为couse表中属性指定列名:课程号、课程名、学时(=cs_sc*16)、学分SELECT 课程号=cs_id, 课程名=cs_nm, 学分=cs_sc, 学时=cs_sc*16FROM couse(5)增加说明列操作5.6:查询dept表的系号、系名和系主任,向查询结果中插入说明列:系号、系名和系主任SELECT '系号:', st_id, '系名:', st_nm, '系主任:', st_drtFROM dept(6)查询列表中使用系统函数操作5.7:显示所有学生的学号、姓名、性别和入学年份SELECT st_id, st_nm, st_sex, DATEPART(yy,st_birth) AS 入学年份FROM student操作5.8:显示所有学生学号、姓名、性别和班级(学号前6位)SELECT st_id, st_nm, st_sex, LEFT(st_id, 6) AS 班级FROM student(7)消除查询结果中的重复项操作5.9:显示所有学生班级SELECT DISTINCT LEFT(st_id,6) AS 班级 FROM student(8)取得查询结果的部分行集操作5.10:显示前5条学生记录信息SELECT TOP 5 * FROM student操作5.11:显示前25%条学生记录信息SELECT TOP 25 PERCENT * FROM student操作5.12:显示前n条学生记录信息,n为局部变量DECLARE @n INTSET @n = 4SELECT TOP @n * FROM student实验6 数据查询(2)——条件查询1.使用关系表达式表示查询条件操作6.1:查询dept表中系号为11的院系信息SELECT * FROM dept WHERE dp_id = '11'操作6.2:查询student表中11系的学生学号、姓名、性别和所在系编号SELECT st_id, st_nm, st_sex, st_dpid FROM studentWHERE st_dpid = '11'操作6.3:查询student表中2008年及以后入学的学生信息SELECT * FROM studentWHERE DATEPART( yy, st_date )>= 2008操作6.4:在查询student表080808班学生的学号、姓名、性别和入学成绩SELECT st_id, st_nm, st_sex, st_score FROM studentWHERE Left(st_id,6)='080808'2.使用逻辑表达式表示查询条件操作6.5:查询student表中非11系的学生信息SELECT * FROM student WHERE NOT (st_dpid = '11')操作6.6:查询选修了1002号课程且成绩在60以下的学生学号SELECT st_id FROM slt_couseWHERE (cs_id='1002') AND (score<60)操作6.7:查询2007年入学的11系所有男生信息SELECT * FROM studentWHERE DATEPART(yy,st_date)=2007 AND st_dpid='11' AND st_sex='男' 操作6.8:查询11系和12系的学生信息SELECT * FROM studentWHERE st_dpid='11' OR st_dpid='12'操作6.9:查询11系和12系所有2007年入学的学生信息SELECT * FROM studentWHERE (st_dpid='11' OR st_dpid='12') AND DATEPART(yy,st_date)=2007 3.使用LIKE关键字进行模糊查询操作6.10:查询所有“计算机”开头的课程信息SELECT * FROM couse WHERE cs_nm LIKE '计算机%'操作6.11:查询所有由三个字组成的“王”姓学生信息SELECT * FROM student WHERE st_nm LIKE '王__'操作6.12:查询所有课程名中包含“信息”的课程信息SELECT * FROM couse WHERE cs_nm LIKE '%信息%'操作6.13:查询学生姓名介于王姓到张姓的信息SELECT * FROM studentWHERE st_nm LIKE '[王-张]%'4.使用Between…And关键字进行查询操作6.14:查询在1989.7.1到1990.6.30之间出生的学生信息SELECT st_id, st_nm, st_sex, st_birth FROM studentWHERE st_birth BETWEEN '1981.7.1' AND '1999.6.30'操作6.15:查询选修了1001号课程且成绩在60到80之间的学生选课信息SELECT * FROM slt_couseWHERE cs_id='1001' AND (score BETWEEN 60 AND 80)5.使用IN关键字进行查询操作6.16:查询11系、12系、13系的学生信息SELECT * FROM student WHERE st_dpid IN ('11', '12','13') 操作6.17:查询所有张,王,李,赵姓的学生的学号、姓名、性别SELECT st_id, st_nm, st_sex FROM studentWHERE Left(st_nm,1) IN ('张','王','李','赵')6.使用[NOT] NULL关键字进行查询操作6.18:查询所有生源为非空的学生信息SELECT * FROM student WHERE st_from IS NOT NULL操作6.19:查询选修了1001号课程且成绩为空的学生选课信息SELECT * FROM slt_couseWHERE cs_id='1001' AND score IS NULL实验7 数据查询(3)——查询排序与查询结果存储操作7.1:查询课程信息,按课程名称降序排序SELECT * FROM couse ORDER BY cs_nm DESC操作7.2:查询选修了1001号课程成绩非空的学生学号和成绩,并按成绩降序排序SELECT st_id, score FROM slt_corseWHERE cs_id='1001' AND score IS NOT NULLORDER BY score DESC操作7.3:查询11系学生学号、姓名和年龄,按年龄升序排序SELECT st_id,st_nm,DATEPART(yy,GETDATE( ))-DATEPART(yy,st_birth) AS age FROM studentORDER BY age ASC操作7.4:查询学生信息,按姓名升序排序,再按系号降序排序SELECT * FROM student ORDER BY st_nm, st_dpid DESC操作7.5:创建学生表副本student01,仅保留学生学号、姓名和性别SELECT st_id, st_nm, st_sex INTO student01 FROM student 操作7.6:查询陕西籍学生,将结果保存在新表st_shanxiSELECT * INTO st_shanxiFROM studentWHERE st_from='陕西省'操作7.7:查询选修了1001号课程学生的选课信息,按学号升序排序,将结果保存在新表slt1001 SELECT * INTO slt1001 FROM slt_corseWHERE cs_id='1001' ORDER BY st_id操作7.8:用局部变量@stage保存学生张三的年龄DECLARE @stage intSELECT @stage = DATEPART(yy,GETDATE())-DATEPART(yy,st_birth)FROM studentWHERE st_nm='张三'操作7.9:用局部变量@name和@stscore保存070101班按学号排序后最后一个学生的姓名和入学成绩DECLARE @name nVarChar(8), @stscore intSELECT @name = st_nm, @stscore = st_scoreFROM studentWHERE LEFT(st_id,6)='070101'ORDER BY st_id实验8 数据查询(4)——查询统计与汇总操作8.1:查询课程总数SELECT COUNT( * ) FROM couse操作8.2:查询选修1001号课程的学生人数SELECT COUNT(st_id)FROM slt_couseWhere cs_id = '1001'操作8.3:查询被选修课程的数量SELECT COUNT( DISTINCT cs_id ) FROM slt_couse操作8.4:查询选修070101班学生的平均入学成绩SELECT AVG(st_score)FROM studentWHERE LEFT(st_id,6)='070101'操作8.5:查询070101001号学生选修课程的数量、总分以及平均分SELECT COUNT(cs_id) AS 课程数量,SUM(score) AS 总分,AVG(score) AS 平均分FROM slt_couseWHERE st_id='070101001'操作8.6:查询选修1001号课程的学生人数、最高分、最低分和平均分SELECT COUNT(*) AS 学生人数, MAX(score) AS 最高分,MIN(score) AS 最低分, AVG (score) AS 平均分FROM slt_couseWHERE cs_id='1001'操作8.7:求各个课程号和相应的选课人数SELECT cs_id, COUNT(st_id)FROM slt_couse GROUP BY cs_id操作8.8:统计各班人数SELECT LEFT(st_id,6) AS 班级, COUNT(st_id) AS 人数FROM studentGROUP BY LEFT(st_id,6)操作8.9:依次按班级、系号对学生进行分类统计人数、入学平均分SELECT st_dpid AS 系号, LEFT(st_id,6) AS 班级,COUNT(st_nm) AS 人数, AVG(st_score) AS 均分FROM studentGROUP BY LEFT(st_id,6), st_dpid操作8.10:查询选修了均分在75以上的课程号及均分SELECT cs_id AS 课程编号, AVG(score) AS 均分FROM slt_couseGROUP BY cs_id HAVING AVG(score)>75操作8.11:查询选修了2门以上课程的学生学号SELECT st_id FROM slt_couseGROUP BY st_id HAVING COUNT(*)>2操作8.12:明细汇总年龄<20的学生,并汇总学生数量、平均年龄SELECT st_nm,DATEPART(yy,GETDATE( ))-DATEPART(yy,st_birth) AS 年龄FROM studentWHERE DATEPART(yy,GETDATE())-DATEPART(yy,st_birth)<20COMPUTE COUNT(st_nm),AVG(DATEPART(yy,GETDATE())-DATEPART(yy,st_birth)) 操作8.13:按班级明细汇总成绩<85分的学生,汇总学生数、均分SELECT st_nm, LEFT(st_id,6) AS 班级, st_scoreFROM studentWHERE st_score<85ORDER BY 班级COMPUTE COUNT(st_nm), AVG(st_score) BY 班级实验9 数据查询(5)——连接查询操作9.1:用SQL Server形式连接查询学生学号、姓名、性别及其所选课程编号SELECT a.st_id, st_nm, st_sex, cs_idFROM student a, slt_couse bWHERE a.st_id = b.st_idORDER BY a.st_id操作9.2:用ANSI形式连接查询学生学号、姓名、性别及其所选课程编号SELECT a.st_id, st_nm, st_sex, cs_idFROM student a INNER JOIN slt_couse bON a.st_id = b.st_idORDER BY a.st_id操作9.3:用SQL Server形式连接查询学生学号、姓名及其所选课程名称及成绩SELECT a.st_id, st_nm, cs_nm, scoreFROM student a, slt_couse b, couse cWHERE a.st_id = b.st_id AND b.cs_id = c.cs_idORDER BY a.st_id操作9.4:用ANSI形式连接查询学生学号、姓名及其所选课程名称及成绩SELECT a.st_id, st_nm, cs_nm, scoreFROM slt_couse a INNER JOIN student b ON a.st_id = b.st_idINNER JOIN couse c ON a.cs_id = c.cs_idORDER BY b.st_id操作9.5:查询选修了1002课程的学生学号、姓名及1001课程成绩SELECT a.st_id, st_nm, scoreFROM student a,slt_couse bWHERE a.st_id = b.st_id AND b.cs_id = '1002'ORDER BY b.st_id操作9.6:查询选修了“数据结构”课程的学生学号、姓名及课程成绩SELECT a.st_id, st_nm, scoreFROM student a, slt_couse b, couse cWHERE a.st_id=b.st_id AND b.cs_id=c.cs_id AND c.cs_nm='数据结构' ORDER BY a.st_id操作9.7:用左外连接查询没有选修任何课程的学生学号、姓名SELECT a.st_id, st_nm, scoreFROM student a LEFT OUTER JOIN slt_couse b ON a.st_id = b.st_id WHERE b.cs_id IS NULLORDER BY b.st_id操作9.8:用右外连接查询选修各个课程的学生学号SELECT b.cs_id, a.st_idFROM slt_couse a Right OUTER JOIN couse b ON a.cs_id = b.cs_id ORDER BY b.cs_id实验10 数据查询(6)——子查询操作10.1:用子查询对各班人数进行查询(新增列)SELECT DISTINCT LEFT(a.st_id,6) AS 班级, 人数 =( SELECT COUNT(st_id) FROM student bWHERE LEFT(a.st_id,6) = LEFT(b.st_id,6))FROM student a ORDER BY LEFT(a.st_id,6) ASC操作10.2:用子查询对各课程的选课人数进行查询(新增列)SELECT DISTINCT a.cs_id, 人数 =( SELECT COUNT(st_id) FROM slt_couse bWHERE a.cs_id = b.cs_id)FROM slt_couse a ORDER BY a.cs_id ASC操作10.3:查询选修了1002课程成绩不及格的学生的学号、姓名和性别,并按姓名升序排序通过子查询实现:——使用IN关键字SELECT st_id, st_nm, st_sex FROM studentWHERE st_id IN( SELECT st_id FROM slt_couseWHERE cs_id='1002' AND score < 60 )ORDER BY st_nm通过子查询实现:——使用比较运算符SELECT st_id, st_nm, st_sexFROM student aWHERE( SELECT score FROM slt_couse bWHERE a.st_id = b.st_id AND cs_id = '1002' ) < 60ORDER BY st_nm操作10.4:查询“东方红”同学所在班的学生信息,并按姓名降序排序通过子查询实现:——IN运算符SELECT st_id, st_nm, st_sex FROM studentWHERE LEFT(st_dpid,6) IN( SELECT Left(st_dpid,6) FROM student WHERE st_nm='东方红' ) ORDER BY st_nm DESC通过自连接查询实现:——JOINSELECT s1.st_id, s1.st_nm, s1.st_sexFROM student s1 JOIN student s2ON LEFT(s1.st_dpid,6) = LEFT(s2.st_dpid,6)WHERE s2.st_nm='东方红'ORDER BY s2.st_nm操作10.5:查询其它班比070511班某一学生的1002号课程成绩高的学生信息(ANY/ALL)SELECT * FROM slt_couseWHERE score > ANY( SELECT score FROM slt_couseWHERE cs_id = '1002' AND LEFT(st_id,6)='070511' ) AND LEFT(st_id,6) <> '070511' AND cs_id = '1002'操作10.6:查询其它班比070511班任一学生的1002号课程成绩高的学生信息(ANY/ALL)SELECT * FROM slt_couseWHERE score > ALL( SELECT score FROM slt_couseWHERE cs_id = '1002' AND LEFT(st_id,6)='070511' ) AND LEFT(st_id,6) <> '070511' AND cs_id = '1002'操作10.7:查询大于等于60分且且比1003课程平均成绩低的学生课程信息(Between…And)SELECT * FROM slt_couse aWHERE a.score BETWEEN 60 AND( SELECT AVG(b.score) FROM slt_couse bWHERE b.cs_id='1003' )操作10.8:查询系主任为“赵虎”的系的所有学生信息通过子查询实现:——IN运算符SELECT * FROM studentWHERE EXISTS( SELECT * FROM deptWHERE st_dpid = dp_id AND dp_drt='赵虎' )通过子查询实现:——=运算符SELECT * FROM studentWHERE st_dpid =( SELECT dp_id FROM dept WHERE dp_drt='赵虎' )实验11 数据查询(7)——数据更新与子查询操作11.1:将070511班所有学生信息插入到表student01(st_id,st_nm,st_sex) INSERT INTO student01SELECT st_id,st_nm,st_sex FROM studentWHERE LEFT(st_id,6)='070511'操作11.2:生成1002号课程的成绩单student02(st_id,st_nm, score)INSERT INTO student02SELECT a.st_id,st_nm,score FROM student a, slt_couse bWHERE a.st_id=b.st_id AND cs_id='1002'操作11.3:将有不及格成绩的学生的st_mnt值更改为3UPDATE student SET st_mnt=3WHERE st_id IN( SELECT DISTINCT st_id FROM slt_couse WHERE score < 60 ) 操作11.4:将没有被选修的课程的学分更改为0UPDATE couse SET cs_sc=0WHERE cs_id NOT IN( SELECT DISTINCT cs_id FROM slt_couse )操作11.5:删除5系学生的选课信息DELETE FROM slt_couseWHERE st_id IN( SELECT st_id FROM student WHERE st_dpid = 5 )操作11.6:删除学分为0的选课信息DELETE FROM slt_couseWHERE cs_id IN( SELECT DISTINCT cs_id FROM slt_couse WHERE cs_id=0 )实验12 事务和锁实验13 索引实验14 视图实验15 游标实验16 存储过程实验17 自定义函数实验18 触发器。