文档库 最新最全的文档下载
当前位置:文档库 › SQLSERVER2008实用教程实验参考答案(实验4)

SQLSERVER2008实用教程实验参考答案(实验4)

SQLSERVER2008实用教程实验参考答案(实验4)
SQLSERVER2008实用教程实验参考答案(实验4)

实验4 数据库的查询和视图

一、SELECT语句的基本使用

1. 查询Employees表中所有数据

2. 查询Employees表中指定字段数据

3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行

4. 使用WHERE子句查询表中指定的数据

查询编号为’000001’的雇员的地址和电话

查询月收入高于2000元的员工号码

查询1970年以后出生的员工的姓名和住址

5. 使用AS子句为表中字段指定别名

查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话

查询Employees表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期

6. 使用使用CASE子句

查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。

7. 使用SELECT语句进行简单计算

计算每个雇员的实际收入

8. 使用内置函数

获得员工总数

计算Salary表中员工月收入的平均数

获得Employees表中最大的员工号码

计算Salary表中所有员工的总支出

查询财务部雇员的最高和最低实际收入

9. 模糊查询

找出所有姓王的雇员的部门号

找出所有地址中含有“中山”的雇员的号码及部门号

找出员工号码中倒数第二个数字为0的员工的姓名、地址和学历

10. Between…And…和Or的使用

找出收入在2000~3000元之间的雇员编号

找出部门为“1”或“2”的雇员的编号

11. 使用INTO子句,由源表创建新表

由表Salary创建“SalaryNew”表,要求包括编号和收入,选择收入在1500元以上的雇员由表Employees创建“EmployeesNew”表,要求包括编号和姓名,选择所有男员工

二、子查询的使用

1. 查找在财务部工作的雇员情况

2. 用子查询的方法查找所有收入在2500以下的雇员的情况

3. 查找财务部年龄不低于研发部雇员年龄的雇员姓名

4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名

5. 查找比所有财务部的雇员收入都高的雇员的姓名

6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名

三、连接查询的使用

1. 查询每个雇员的情况及薪水的情况

2. 查询每个雇员的情况及其工作部门的情况

3. 使用内连接的方法查询名字为“王林”的雇员所在的部门

4. 使用内连接的方法查找出不在财务部工作的所有雇员信息

5. 使用外连接方法查找出所有员工的月收入

6. 查找财务部收入在2000元以上的雇员姓名及其薪水详情

7. 查询研发部在1976年以前出生的雇员姓名及其薪水详请

四、聚合函数的使用

1. 求财务部雇员的平均收入

2. 查询财务部雇员的最高和最低收入

3. 求财务部雇员的平均实际收入

4. 查询财务部雇员的最高和最低实际收入

5. 求财务部雇员的总人数

6. 统计财务部收入在2500元以上的雇员人数

五、GROUP BY、ORDER BY子句的使用

1. 查找Employees表中男性和女性的人数

2. 按部门列出在该部门工作的员工的人数

3. 按员工的学历分组,排列出本科、大专、硕士的人数

4. 查找员工数超过2的部门名称和雇员数量

5. 按员工的工作年份分组,统计各个工作年份的人数,例如工作1年的多少人,工作2年的多少人

6. 将雇员的情况按收入由低到高排列

7. 将员工信息按出生时间从小到大排列

8. 在ORDER BY 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列

六、视图的使用

1. 创建视图

(1)在数据库YGGL上创建视图Departments_View,视图包含Department表的全部列(2)创建视图Employees_Departments_View,视图包含员工号码、姓名、所在部门名称(3)创建视图Employees_Salary_View,视图包含员工号码、姓名和实际收入三列

2. 查询视图

从视图Employees_Salary_View中查询出姓名为“王林”的员工的实际收入

3. 更新视图

(1)向视图Departments_View中添加一条记录(‘6’,‘广告部’,‘广告业务’)

执行完命令后,分别查看Departments_View和Department表中发生的变化

(2)尝试向Employees_Departments_View中添加一条记录,看看会发生什么情况

(3)尝试向Employees_Salary_View中添加一条记录,看看会发生什么情况

(4)将视图Departments_View中,部门号为‘6’的部门名称修改为‘生产车间’

(5)删除视图Departments_View中最新增加的的一条记录

4. 删除视图Employees_Departments_View

5. 在界面工具中操作视图

一、SELECT语句的基本使用

1. 查询Employees表中所有数据

SELECT*FROM Employees;

2. 查询Employees表中指定字段数据

SELECT EmployeeID,Name,DepartmentID FROM Employees;

3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行

SELECT Distinct DepartmentID,Sex FROM Employees;

4. 使用WHERE子句查询表中指定的数据

查询编号为’000001’的雇员的地址和电话

Select Address,PhoneNumber FROM Employees WHERE EmployeeID='000001';查询月收入高于2000元的员工号码

SELECT EmployeeID FROM Salary WHERE InCome>2000;

查询1970年以后出生的员工的姓名和住址

SELECT Name,Address FROM Employees WHERE YEAR(Birthday)>'1970'; SELECT Name,Address FROM Employees WHERE Birthday>'1970';

5. 使用AS子句为表中字段指定别名

查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话

SELECT Address AS地址,PhoneNumber AS电话FROM Employees;

查询Employees表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期SELECT Name AS姓名,Birthday AS出生日期FROM Employees WHERE Sex=1;

6. 使用使用CASE子句

查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”SELECT Name AS姓名,

CASE

WHEN Sex=1 THEN'男'

WHEN Sex=0 THEN'女'

END

AS性别

FROM Employees;

查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。

SELECT

https://www.wendangku.net/doc/b813015188.html, AS姓名,a.Address as住址,

CASE

WHEN b.InCome<2000 THEN'低收入'

WHEN b.InCome BETWEEN 2000 AND 3000 THEN'中等收入'

WHEN b.InCome>3000 THEN'高收入'

END

AS收入水平

FROM Employees a,Salary b

WHERE a.EmployeeID=b.EmployeeID;

7. 使用SELECT语句进行简单计算

在Salary表中,计算每个雇员的实际收入,并显示雇员编号和实际收入

SELECT EmployeeID AS雇员编号,InCome-OutCome AS实际收入FROM Salary;

8. 使用聚合函数

获得员工总数

SELECT COUNT(*)FROM Employees;

计算Salary表中员工月收入的平均数

SELECT AVG(InCome)AS平均收入FROM Salary;

获得Employees表中最大的员工号码

SELECT MAX(EmployeeID)AS雇员编号FROM Employees;

计算Salary表中所有员工的总支出

SELECT SUM(OutCome)AS总支出FROM Salary;

查询财务部雇员的最高和最低实际收入

SELECT MAX(InCome-OutCome)AS最高收入,MIN(InCome-OutCome)AS最低收入FROM Salary;

9. 模糊查询

找出所有姓王的雇员的部门号

SELECT DepartmentID AS部门号FROM Employees WHERE Name like'王%';

找出所有地址中含有“中山”的雇员的编号及部门号

SELECT EmployeeID AS雇员编号,DepartmentID AS部门号FROM Employees WHERE Address like'%中山%'

找出雇员编号中倒数第二个数字为0雇员的编号的姓名、地址和学历

SELECT EmployeeID AS雇员编号,Name AS姓名,Address AS地址,Education AS学历FROM Employees WHERE SUBSTRING(EmployeeID,5,1)='0';

10. Between…And…和Or的使用

找出收入在2000~3000元之间的雇员编号

SELECT EmployeeID,InCome FROM Salary WHERE InCome BETWEEN2000 AND3000;找出部门为“1”或“2”的雇员的编号

SELECT EmployeeID,DepartmentID FROM Employees WHERE DepartmentID='1'OR DepartmentID='2';

11. 使用INTO子句,由源表创建新表

由表Salary创建“SalaryNew”表,要求包括编号和收入,选择收入在1500元以上的雇员SELECT EmployeeID,InCome

INTO SalaryNew

FROM Salary

WHERE InCome>1500;

由表Employees创建“EmployeesNew”表,要求包括编号和姓名,选择所有男员工SELECT EmployeeID,Name

INTO EmployeesNew

FROM Employees

WHERE Sex=1;

二、子查询的使用

1. 查找在财务部工作的雇员情况

--分析:雇员表和部门表通过DepartmentID进行关联

--1)在Departments表中查找财务部的编号

--2)在Employees表中查找部门的雇员情况

SELECT*FROM Employees WHERE DepartmentID=(

SELECT DepartmentID FROM Departments WHERE DepartmentName='财务部'); 2. 用子查询的方法查找所有收入在2500以下的雇员的情况

--分析:员工表和收入表通过EmployeeID进行关联

SELECT*FROM Employees WHERE EmployeeID IN(

SELECT EmployeeID FROM Salary WHERE InCome<2500);

3. 查找财务部年龄不低于研发部雇员年龄的雇员姓名

--分析:雇员表和部门表通过DepartmentID进行关联

--1)先找到研发部的部门编号

--2)再通过部门编号找到研发部的雇员年龄

--3)再找到财务部的部门编号,并通过部门编号查找雇员姓名,条件是年龄不低于所有研发部

雇员年龄

SELECT Name FROM Employees WHERE DepartmentID in(

SELECT DepartmentID FROM Departments WHERE DepartmentName='财务部') AND Birthday!>ALL(

SELECT Birthday FROM Employees WHERE DepartmentID in(

SELECT DepartmentID FROM Departments WHERE DepartmentName='研发部')); 4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名

--1)查找财务部雇员的收入

--2)查找研发部雇员的编号,条件是收入比所有财务部雇员收入都高

--3)通过编号找到雇员姓名

SELECT Name FROM Employees WHERE EmployeeID IN(

SELECT EmployeeID FROM Salary WHERE EmployeeID IN(

SELECT EmployeeID FROM Employees WHERE DepartmentID=(

SELECT DepartmentID FROM Departments WHERE DepartmentName='研发部')) AND InCome>ALL(

SELECT InCome FROM Salary WHERE EmployeeID IN(

SELECT EmployeeID FROM Employees WHERE DepartmentID=(

SELECT DepartmentID FROM Departments WHERE DepartmentName='财务部'))));

5. 查找比所有财务部的雇员收入都高的雇员的姓名

--分析:1)查找所有财务部的雇员收入

--2)查找其他雇员编号,条件是收入比所有财务部的雇员收入都高

--3)通过编号找到姓名

SELECT Name FROM Employees WHERE EmployeeID IN(

SELECT EmployeeID FROM Salary WHERE InCome>ALL(

SELECT InCome FROM Salary Where EmployeeID IN(

SELECT EmployeeID FROM Employees Where DepartmentID=(

SELECT DepartmentID FROM Departments WHERE DepartmentName='财务部'))));

6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名

--分析:年龄都大等价于生日都小

--1)找到所有研发部雇员的生日

--2)找到其他部门雇员的姓名,条件是生日比研发部的所有雇员的生日都小

SELECT Name FROM Employees WHERE Birthday

SELECT Birthday FROM Employees WHERE DepartmentID IN(

SELECT DepartmentID FROM Departments WHERE DepartmentName='研发部'));

三、连接查询的使用

1. 查询每个雇员的情况及薪水的情况

SELECT a.*,b.*

FROM Employees a,Salary b

WHERE a.EmployeeID=b.EmployeeID;

2. 查询每个雇员的情况及其工作部门的情况

SELECT a.*,b.*

FROM Employees a,Departments b

WHERE a.DepartmentID=b.DepartmentID;

3. 使用内连接的方法查询名字为“王林”的雇员所在的部门

SELECT b.DepartmentName FROM Departments b

INNER JOIN Employees a

ON a.DepartmentID=b.DepartmentID

Where https://www.wendangku.net/doc/b813015188.html,='王林';

4. 使用内连接的方法查找出不在财务部工作的所有雇员信息

SELECT a.*FROM Employees a

INNER JOIN Departments b

ON a.DepartmentID=b.DepartmentID

WHERE b.DepartmentName!='财务部';

5. 使用外连接方法查找出所有员工的月收入

SELECT*FROM Employees a

LEFT OUTER JOIN Salary b ON

a.EmployeeID=

b.EmployeeID;

6. 查找财务部收入在2000元以上的雇员姓名及其薪水详情

SELECT a.*,b.InCome FROM Employees a

INNER JOIN Salary b

ON a.EmployeeID=b.EmployeeID

INNER JOIN Departments c

ON a.DepartmentID=c.DepartmentID

WHERE b.InCome>2000 AND c.DepartmentName='财务部';

7. 查询研发部在1976年以前出生的雇员姓名及其薪水详请

SELECT a.*,b.InCome FROM Employees a

INNER JOIN Salary b

ON a.EmployeeID=b.EmployeeID

INNER JOIN Departments c

ON a.DepartmentID=c.DepartmentID

WHERE c.DepartmentName='研发部'AND a.Birthday>'1976'

四、聚合函数的使用

1. 求财务部雇员的平均收入

SELECT AVG(a.InCome)FROM Salary a

INNER JOIN Employees b

ON a.EmployeeID=b.EmployeeID

INNER JOIN Departments c

ON c.DepartmentID=b.DepartmentID

WHERE c.DepartmentName='财务部';

2. 查询财务部雇员的最高和最低收入

SELECT MIN(a.InCome),MAX(a.InCome)FROM Salary a

INNER JOIN Employees b

ON a.EmployeeID=b.EmployeeID

INNER JOIN Departments c

ON c.DepartmentID=b.DepartmentID

WHERE c.DepartmentName='财务部';

3. 求财务部雇员的平均实际收入

SELECT AVG(a.InCome-a.OutCome)FROM Salary a

INNER JOIN Employees b

ON a.EmployeeID=b.EmployeeID

INNER JOIN Departments c

ON c.DepartmentID=b.DepartmentID

WHERE c.DepartmentName='财务部';

4. 查询财务部雇员的最高和最低实际收入

SELECT MIN(a.InCome-a.OutCome),MAX(a.InCome-a.OutCome)FROM Salary a INNER JOIN Employees b

ON a.EmployeeID=b.EmployeeID

INNER JOIN Departments c

ON c.DepartmentID=b.DepartmentID

WHERE c.DepartmentName='财务部';

5. 求财务部雇员的总人数

SELECT COUNT(a.EmployeeID)FROM Employees a

INNER JOIN Departments b

ON a.DepartmentID=b.DepartmentID

WHERE b.DepartmentName='财务部';

6. 统计财务部收入在2500元以上的雇员人数

SELECT COUNT(a.EmployeeID)FROM Employees a

INNER JOIN Departments b

ON a.DepartmentID=b.DepartmentID

INNER JOIN Salary c

ON c.EmployeeID=A.EmployeeID

WHERE c.InCome>2500 AND b.DepartmentName='财务部';

五、GROUP BY、ORDER BY子句的使用

1. 查找Employees表中男性和女性的人数

SELECT Sex,COUNT(Sex)FROM Employees GROUP BY Sex;

2. 按部门列出在该部门工作的员工的人数

--使用内连接的方法

SELECT b.DepartmentName,COUNT(a.EmployeeID)FROM Employees a

INNER JOIN Departments b

ON a.DepartmentID=b.DepartmentID

GROUP BY b.DepartmentName;

--使用多表查询方法,GROUP BY后面的字段,必须出现在SELECT语句要查询的字段中。SELECT b.DepartmentName,COUNT(a.EmployeeID)FROM Employees

a,Departments b

WHERE a.DepartmentID=b.DepartmentID

GROUP BY b.DepartmentName;

3. 按员工的学历分组,排列出本科、大专、硕士的人数

SELECT https://www.wendangku.net/doc/b813015188.html,cation,COUNT(a.EmployeeID)FROM Employees a

GROUP BY https://www.wendangku.net/doc/b813015188.html,cation;

4. 查找员工数超过2的部门名称和雇员数量

SELECT b.DepartmentName,COUNT(a.EmployeeID)FROM Employees

a,Departments b

WHERE a.DepartmentID=b.DepartmentID

GROUP BY b.DepartmentName

HAVING COUNT(a.EmployeeID)>2;

5. 按员工的工作年份分组,统计各个工作年份的人数,例如工作1年的多少人,工作2年的多少人

SELECT a.WorkYear,COUNT(a.EmployeeID)FROM Employees a

GROUP BY a.WorkYear;

6. 将雇员的情况按收入由低到高排列

SELECT a.*,b.InCome FROM Employees a,Salary b

WHERE a.EmployeeID=b.EmployeeID

ORDER BY b.InCome ASC;

7. 将员工信息按出生时间从小到大排列

SELECT*FROM Employees ORDER BY Birthday;

8. 在ORDER BY 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列

SELECT https://www.wendangku.net/doc/b813015188.html,,a.Sex,a.WorkYear,b.InCome-b.OutCome FROM Employees

a,Salary b

WHERE a.EmployeeID=b.EmployeeID

ORDER BY b.InCome-b.OutCome DESC;

六、视图的使用

1. 创建视图

(1)在数据库YGGL上创建视图Departments_View,视图包含Department表的全部列USE YGGL

GO

CREATE VIEW Departments_View

AS SELECT*FROM Departments;

(2)创建视图Employees_Departments_View,视图包含员工号码、姓名、所在部门名称

USE YGGL

GO

CREATE VIEW Employees_Departments_View

AS SELECT a.EmployeeID,https://www.wendangku.net/doc/b813015188.html,,b.DepartmentName FROM Employees a, Departments b

WHERE a.DepartmentID=b.DepartmentID;

(3)创建视图Employees_Salary_View,视图包含员工号码、姓名和实际收入三列

USE YGGL

GO

CREATE VIEW Employees_Salary_View(EmployeeID,Name,RealInCome) AS SELECT a.EmployeeID,https://www.wendangku.net/doc/b813015188.html,,b.InCome-b.OutCome FROM Employees a, Salary b

WHERE a.EmployeeID=b.EmployeeID;

2. 查询视图

从视图Employees_Salary_View中查询出姓名为“王林”的员工的实际收入

SELECT*FROM Employees_Salary_View

WHERE Name='王林';

3. 更新视图

(1)向视图Departments_View中添加一条记录(‘6’,‘广告部’,‘广告业务’)

执行完命令后,分别查看Departments_View和Department表中发生的变化

INSERT INTO Departments_View VALUES('6','广告部','广告业务');

(2)尝试向Employees_Departments_View中添加一条记录,看看会发生什么情况

INSERT INTO Employees_Departments_View VALUES('777777','小林','综合业务部');

--视图或函数'Employees_Departments_View' 不可更新,因为修改会影响多个基表。

--DepartmentID分别为Employees表中的外键和Departments表中的主键,并且均不为空,

--这条INSERT语句相当于给为表Employees和表Departments添加一条DepartmentID为空的记录,显然是非法的.

(3)尝试向Employees_Salary_View中添加一条记录,看看会发生什么情况

INSERT INTO Employees_Salary_View VALUES('777777','小林',3000);

--对视图或函数'Employees_Salary_View' 的更新或插入失败,因其包含派生域或常量域。--RealInCome就是派生域,它是由InCome-OutCome获得的.

(4)将视图Departments_View中,部门号为‘6’的部门名称修改为‘生产车间’UPDATE Departments_View SET DepartmentName='生产车间'WHERE DepartmentID='6';

(5)删除视图Departments_View中最新增加的的一条记录

DELETE FROM Departments_View WHERE DepartmentID='6';

总结:一般不建议直接对视图进行增加、修改、删除的操作。

4. 删除视图Employees_Departments_View

DROP VIEW Employees_Departments_View;

--删除视图的操作并不会删除基表.

5. 在界面工具中操作视图演示新建视图和查询视图

数字信号实验第四章答案(DOC)

数字信号处理实验报告4 线性时不变离散时间系统频域分析 一、实验目的 通过使用matlab做实验来加强对传输函数的类型和频率响应 和稳定性测试来强化理解概念。 4.1 传输函数分析 回答: Q4.1 修改程序P3_1去不同的M值,当0

title('Phase Spectrum arg[H(e^{j\omega})]') xlabel('\omega /\pi'); ylabel('Phase in radians'); 所得结果如图示: M=2 M=7

数据库实验四作业及答案

实验4数据查询 一、实验目的 1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。 2.掌握使用SELECT语句进行条件查询的方法。 3.掌握嵌套查询的方法。 4.掌握多表查询的方法。 5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。 6.掌握联合查询的操作方法。 7.掌握数据更新语句INSERT INTO、UPDATE、DELETE的使用方法。 二、实验准备 1.了解SELECT语句的基本语法格式和执行方法。 2.了解嵌套查询的表示方法。 3.了解UNION运算符的用法。 4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。 5.了解IN、JOIN等子查询的格式。 6.了解INSERT INTO、UPDATE、DELETE的格式与作用。 三、实验内容及步骤 0. 创建studentsdb数据库及其相应表,并录入数据。 启动查询分析器,运行下面链接的代码即可。 创建数据库代码 1.在studentsdb数据库中,使用下列SQL语句将输出什么? (1)SELECT COUNT(*) FROM grade (2)SELECT SUBSTRING(姓名,1,2) FROM student_info (3)SELECT UPPER('kelly')

(4)SELECT Replicate('kelly',3) (5)SELECT SQRT(分数) FROM grade WHERE 分数>=85 (6)SELECT 2,3,POWER(2,3) (7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()) 2.在studentsdb数据库中使用SELECT语句进行基本查询。 (1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。 SELECT*FROM student_info (2)查询学号为0002的学生的姓名和家庭住址。 SELECT姓名,家庭住址FROM student_info WHERE学号=0002 (3)找出所有男同学的学号和姓名。 SELECT学号,姓名FROM student_info

实验4 循环控制 答案

实验4 循环控制 班级:学号: 姓名:日期: 一、实验目的 (1)熟悉掌握用while语句、do—while语句和for语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)进一步学习调试程序。 二、实验内容 1.while语句 while 语句的一般形式为: while(表达式)语句; while 语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。 编程:求1-100的奇数和。 提示:循环变量的步长值为2。 #include void main() { int i=1,sum=0; while(i<=100) { sum=sum+i; i=i+2; } printf("sum=%d\n",sum); } 2.do-while语句 do-while 语句的一般形式为: do { 语句; }while(表达式);

do-while 语句的语义是:先执行循环体语句一次,再判别表达式的值,若为真(非0)则继续循环,否则终止循环。 编程:求1—100的偶数和。 #include void main() { int i=0,sum=0; do { i=i+2; sum=sum+i; }while(i<100); printf("sum=%d\n",sum); } 3.for语句 其一般形式为: for(表达式1;表达式2;表达3) 语句; for 语句的语义是: ⑴首先计算表达式1 的值。 ⑵再计算表达式2 的值,若值为真(非0)则执行循环体一次,否则结束循环。 ⑶执行循环体后再计算表达式3 的值,转回第2 步重复执行。 下列程序用于输出fibnocci 数列的前20 项,每行输出5 个。请填空。 说明:fibnocci 数列的前两项均为1,以后各项等于其前两项之和。 #include void main( ) { int i,f1,f2,f3,n; f1=1;f2=1; printf("\n%d %d ",f1,f2); n=2; for(i=1; i<=18 ;i++) { if (n % 5==0 ) printf("\n"); f3=f1+f2 ; printf("%d ",f3); n++;` f1=f2;f2=f3; } }

SQLSERVER2008实用教程实验参考答案(实验4)

实验 4 数据库的查询和视图 一、SELECT语句的基本使用 1. 查询Employees 表中所有数据 2. 查询Employees 表中指定字段数据 3. 查询Employees 表中的部门号和性别,要求使用Distinct 消除重复行 4. 使用WHERE子句查询表中指定的数据查询编号为 '000001 '的雇员的地址和电话查询月收入高于2000 元的员工号码查询1970 年以后出生的员工的姓名和住址 5. 使用AS 子句为表中字段指定别名 查询Employees 表中女雇员的地址和电话,并将列标题显示为地址和电话 查询Employees 表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期 6. 使用使用CASE子句 查询Employees 表中员工的姓名和性别,要求Sex值为 1 时显示“男” ,为0 时显示“女” 查询Employees 表中员工的姓名、住址和收入水平,2000 元以下显示为低收入,2000~3000 地显示为中等收入,3000 元以上显示为高收入。 7. 使用SELECT语句进行简单计算计算每个雇员的实际收入 8. 使用内置函数 获得员工总数 计算Salary 表中员工月收入的平均数获得Employees 表中最大的员工号码计算Salary 表中所有员工的总支出查询财务部雇员的最高和最低实际收入 9. 模糊查询 找出所有姓王的雇员的部门号找出所有地址中含有“中山”的雇员的号码及部门号找出员工号码中倒数第二个数字为0 的员工的姓名、地址和学历 10. Between ?And?和Or 的使用找出收入在2000~3000 元之间的雇员编号找出部门为“ 1”或“ 2”的雇员的编号 11. 使用INTO 子句,由源表创建新表 由表Salary 创建“ SalaryNew”表,要求包括编号和收入,选择收入在1500 元以上的雇员 由表Employees 创建“ EmployeesNew ”表,要求包括编号和姓名,选择所有男员工 二、子查询的使用 1. 查找在财务部工作的雇员情况 2. 用子查询的方法查找所有收入在2500 以下的雇员的情况 3. 查找财务部年龄不低于研发部雇员年龄的雇员姓名 4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名 5. 查找比所有财务部的雇员收入都高的雇员的姓名 6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名 三、连接查询的使用 1. 查询每个雇员的情况及薪水的情况 2. 查询每个雇员的情况及其工作部门的情况 3. 使用内连接的方法查询名字为“王林”的雇员所在的部门 4. 使用内连接的方法查找出不在财务部工作的所有雇员信息 5. 使用外连接方法查找出所有员工的月收入 6. 查找财务部收入在2000 元以上的雇员姓名及其薪水详情 7. 查询研发部在1976 年以前出生的雇员姓名及其薪水详请

数据库实验四(含答案)

实验四使用SQL语句创建和删除数据库、表 一. 实验目的: 1、了解SQL Server 2005数据库的逻辑结构和物理结构。 2、掌握使用SQL 语句创建和删除数据库。 3、学会使用T-SQL语句创建表。 二. 实验准备 1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建和删除数据库的基本语法。 3.是用查询分析器,完成用SQL语句创建和删除基本表。 三. 实验要求 1、熟练使用查询分析器进行数据库的创建和删除操作。 2、用查询分析器,完成用SQL语句创建和删除基本表。 3、完成实验报告。 四. 实验内容 一、数据库 1.以下是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 , filegrowth=1) 运行上诉语句建立数据库userdb1

句,并建立“学生信息”数据库.(.mdf的名字可以修改) 3.数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。 alter database 数据库名 add file() 注括号内格式同下: ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 ,

数据库实验题目和答案

按照如下方式重新定义四张表: 定义新的books表,其所拥有的属性与属性类型与原有的books表一致 以列级完整性的方式定义属性bookId为主码,同时在定义的时候必须提供约束名 定义属性category为”非空” ,同时在定义的时候必须提供约束名 create table Books( bookId number(9,0) constraint BooksKey primary key, title varchar(80), author varchar(40), year integer, category varchar(15) constraint B1 not null ); commit; 定义新的customers表,其所拥有的属性与属性类型与原有的customers表一致 以表级完整性的方式定义属性cid为主码 以列级完整性的方式定义属性cname为”唯一”,同时在定义的时候必须提供约束名 create table Customers ( cid number(9,0), cname char(40) constraint C1 unique, age integer, primary key(cid) ); commit; 定义新的purchases表,其所拥有的属性与属性类型与原有的purchases表一致 定义属性cid与bookId为主码,同时在定义的时候必须提供约束名 以列级完整性的方式定义属性bookId为外码,它参照Books表的主码,同时在定义的时候必须提供约束名。当删除Books表中的某一本书时,级联删 除与它相关的购买记录 以表级完整性的方式定义属性cid为外码,它参照customers表,同时在定义的时候必须提供约束名。当删除customers表中的某个顾客时,如果存在 与该客户相关的购买记录,拒绝删除。 create table Purchases( cid number(9,0), bookId number(9,0)

实验4 数组答案

实验四数组 实验课程名: 高级语言程序设计4 数组 专业班级:学号:姓名: 实验时间:2016年4月27日实验地点:K4 指导教师: 一、实验目的及要求 1.掌握一维数组与二维数组的定义、赋值与输入输出的方法; 2.掌握字符数组与字符串函数的使用; 3.掌握与数组有关的算法(特别就是排序算法)。 二、实验任务: (一)(1)程序代码:#include #define N 10 void main( ) { int i,a[N]; float av=0; for(i=0;i

(3)结果分析:当i能被3整除时,就换一次行。 (二)实验任务2 (1)程序代码:#include void main( ) { int i,a[5],sum=0; for(i=0;i<=4;i++) scanf("%d",&a[i]); for(i=0;i<=4;i++) sum+=a[i]; printf("sum=%d\n",sum); } (2)程序运行结果: (3)程序分析:使用for循环依次输入5个数,并使5个数相加。 (三)实验任务3 (1)程序代码:#include int main( ) { int i,j,row=0,colum=0,max; int a[3][4] = {{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}}; max=a[0][0]; for(i=0;i<=2;i++) for (j=0;j<=3;j++) if(a[i][j]>max) {max=a[i][j]; row=i; colum=j; } printf(" Max=%d, Row=%d, Colum=%d\n", max, row, colum); return 0; }

实验四答案2

数据库技术与应用实验 1.定义基本表和结构 按照下图分别使用SQL Server 管理控制台和T-SQL语句来创建四张表:系部表、专业表、班级表、学生表; 修改学生表,增加一个家庭住址列; alter table 学生表add 家庭住址char(10) null Go 更改列的数据类型:把学生表中的姓名列加宽到10位字符宽度; alter table 学生表 alter column 姓名char(10) go 删除学生表中的专业代码的约束; 重命名列:将班级表的备注更改为其它; alter table 班级表drop column 备注 alter table 班级表add 班主任姓名char(10) go 创建主键约束; 创建外建约束 2.数据的添加.删除.修改 在上面四张表中分别插入6条记录;(自拟) 设置条件修改表中的各项记录; 为学生表添加年龄项,分别输入各位学生的年龄; 修改年龄为18岁的学生年龄为20; update 学生表 set 年龄=20 where 年龄=18 go 修改所有学生的入学时间、班级代码等; update 学生表 set 入学时间='2002-9-1' where 入学时间='2001-9-1' go update 学生表 set 班级代码='01' go 设置条件删除表中的无用记录; 3.数据的简单查询 1)查询学生的全部信息。 select *

from 学生表 go 2)查询全体学生的学号、姓名和年龄。 Select 学号,姓名,年龄 From 学生表 go 3)查询系部代码为“01”的学生号、姓名、年龄。 Select 学号,姓名,年龄 From 学生表 Where 系部代码=’01’ go 4)查询年龄高于18的学生的学号、姓名和性别。 Select 学号,姓名,性别 From 学生表 Where 年龄>18 go 5)查询选修C1或C2课程且分数大于等于85分学生的的学号、课程号和成绩。(需先为 创建选课成绩表,并添加学号,课程号和成绩) Select 学号,课程号,成绩 From 选课成绩 Where 课程号=’c1’ and 课程号=’c2’ and 成绩>=85 go 6)查询选修C1课程并且成绩在80至90之间的学生的学号、姓名及年龄。 Select 学生表.学号,姓名,年龄 From 学生表,选课成绩 Where 学生表.学号=选课成绩.学号and 成绩between 80 and 90 and 课程号=’c1’ go 7)查询选修C1或C2的学生的学号、课程号和成绩。 select 学号,课程号,成绩 from 选课成绩 where课程号=’c1’ or 课程号=’c2’ go 8)查询没有选修C1,也没有选修C2的学生的学号、课程号和成绩。 select 学号,课程号,成绩 from 选课成绩选课成绩1 where not exists(select 学号,课程号,成绩 from 选课成绩选课成绩2 where 选课成绩1.学号=选课成绩2.学号and 选课成绩2.课程号='c1' and 选课成绩2.课程号='c2')

数据库实验上机答案整理-中国石油大学-龚安

实验四SQL练习2 一、实验目的 1.掌握索引的建立、删除及使用; 2.掌握单表查询、连接查询、嵌套查询和集合查询; 3.掌握插入数据、修改数据和删除数据语句的非常用形式。二、实验学时 2学时 三、实验内容 1.利用Query Analyzer完成以下操作: ⑴在预算日期、结算日期和入账日期上分别建立索引,并在查询操作中体会索引的作用。 ⑵在完成第2题的查询操作后,删除预算日期、结算日期和入账日期上的索引。 2.利用Query Analyzer完成以下操作: ⑴采油一矿二队2016-5-1到2016-5-28有哪些项目完成了预算,列出相应明细。 ⑵采油一矿二队2016-5-1到2016-5-28有哪些项目完成了结算,列出相应明细。 ⑶采油一矿二队2016-5-1到2016-5-28有哪些项目完成了结算,列出相应的材料费消耗明细。 ⑷采油一矿二队2016-5-1到2016-5-28有哪些项目完成了入账,列出相应明细。

⑸列出采油一矿二队2016-5-1到2016-5-28总的预算金额。 ⑹列出采油一矿二队2016-5-1到2016-5-28总的结算金额。 ⑺列出采油一矿二队2016-5-1到2016-5-28总的入账金额。 ⑻列出采油一矿2016-5-1到2016-5-28总的入账金额。 ⑼有哪些人员参与了入账操作。 ⑽列出2016-5-1到2016-5-28进行了结算但未入账的项目。 ⑾列出采油一矿二队的所有项目,按入账金额从高到低排列。 ⑿列出有哪些施工单位实施了项目,并计算各单位所有项目结算金额总和。 ⒀找出消耗了材料三且消耗超过了2000元的项目,列出相应消耗明细(利用子查询)。 ⒁作业公司二队参与了哪些项目。 ⒂作业公司一队和二队参与了哪些项目(利用union)。 ⒃采油一矿的油井是哪些作业队参与施工的。 3.利用Query Analyzer完成以下操作: ⑴建立数据表(包含3个属性列:★施工单位、★年月、◆结算金额)保存各个施工单位每月的结算金额总和。 ⑵用子查询将各个施工单位每月的结算金额总和插入到所建立的数据表中。 ⑶用带子查询的修改语句将采油一矿油井作业项目的结算人改为“李兵”。 ⑷用带子查询的删除语句删除采油一矿油井作业项目。

matlab实验四及其答案

实验四GUI 设计专业 学号姓名成绩电气工程及其自 动化201409140305 杨诚1.创建GUI 绘制方程c bx ax y ++=2图形,需要显示绘图结果的坐标系窗口,还能够输入 a , b , c 的值和x 取值范围(最大值和最小值)。 回调函数的编写: a=str2num(get(handles.edit1,'String'));b=str2num(get(handles.edit2,'String'));c=str2num(get(handles.edit3,'String'));xmin=str2num(get(handles.edit4,'String'));xmax=str2num(get(handles.edit5,'String'));x=xmin:0.1:xmax;y=a*x.^2+b*x+c;plot(x,y); 设计的运行界面截图:

2.设计一个GUI,完成画出y=sin(x)、y=cos(x)和y=x 3.的波形图。回调函数的编写: x=-5:0.1:5 plot(x,sin(x)) x=-5:0.1:5 plot(x,cos(x))

x=-5:0.1:5 y=x.^3 plot(x,y)

设计的运行界面截图: 3.创建一个GUI,含有下拉菜单,下拉菜单中有背景颜色选择。回调函数的编写: yanse=get(handles.popupmenu1,'value'); switch yanse case1 set(gcf,'color','r'); case2 set(gcf,'color','y'); case3 set(gcf,'color','g'); end 设计的运行界面截图:

数据库实验四(含答案)

实验四使用SQL语句创建与删除数据库、表 一、实验目的: 1、了解SQL Server 2005数据库的逻辑结构与物理结构。 2、掌握使用SQL 语句创建与删除数据库。 3、学会使用T-SQL语句创建表。 二、实验准备 1.明确能够创建数据库的用户必须就是系统管理员,或就是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建与删除数据库的基本语法。 3.就是用查询分析器,完成用SQL语句创建与删除基本表。 三、实验要求 1、熟练使用查询分析器进行数据库的创建与删除操作。 2、用查询分析器,完成用SQL语句创建与删除基本表。 3、完成实验报告。 四、实验内容 一、数据库 1.以下就是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 'g:\xygl\userdb4、mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M )--数据文件每次增长1M log on ( name=userdb4_log, 'g:\xygl\userdb4、ldf ' , size=2 , maxsize=5 , ) 运行上诉语句建立数据库userdb1

2.根据步骤1的sql语句,写出创建实验二中“学生信息”数据库的sql语句,并建立“学生信息”数据库、(、mdf的名字可以修改) 3、数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。 alter database 数据库名 add file() 注括号内格式同下: ( name=userdb4_log, 'g:\xygl\userdb4、ldf ' , size=2 , maxsize=5 ,

数据库试验答案

计算机与信息学院 数据库实验报告 专业班级 学生姓名及学号 课程教学班号 任课教师 实验指导教师 实验地点 2012 ~2013 学年第二学期

实验1 使用向导创建和删除数据库 一、实验目的 1.熟悉SQL Server 中SQL Server Management Studio的环境 2.了解SQL Server 数据库的逻辑结构和物理结构 3.掌握使用向导创建和删除数据库的方法 二、实验要求 1.熟练使用SSMS进行数据库的创建和删除操作。 2.完成实验报告。 三、实验内容 设有一学籍管理系统,其数据库名为“EDUC”。 初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长; 日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”。 日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。 四、实验步骤

1.使用SQL Server Management Studio(简称SSMS)创建数据库。 (1)启动SSMS 在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。 (2)建立数据库 在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。

数据库原理实验报告四(有答案)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验四查询设计实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。 (2)掌握数据排序和数据联接查询的方法。 (3)掌握SQL Server查询分析器的使用方法。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询 操作,并将将调试成功的T-SQL命令,填入实验报告中。 a)查询所有课程的详细情况。 b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。 c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。 d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降 序排列,如果成绩相同则按学号升序排列。 e)查询所有学生的学号、姓名和年龄。 f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并 将成绩乘以0.7输出。 g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院 (DEPT_ID为09)姓张的学生的信息。。 h)查询所有核心课程(课程名中带*的)的情况。 i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。 (2)在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作: a)查询每个学生的情况以及他(她)所选修的课程。 b)查询学生的学号、姓名、选修的课程名及成绩。 c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。 d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。 e)分别用等值联接和内联接查询有授课记录的老师的姓名。 f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院 系、担任的课程号和授课的学期,结果按院系和职称升序排列。如果该 老师没有授课历史,在课程号和授课的学期中显示空值 (3)在SQL Server Management Studio中新建查询,完成以上查询命令的同时,熟悉SQL编 辑器工具栏中各快捷按钮的作用。 (4)按要求完成实验报告。

实验四 循环结构程序设计(答案)

实验四循环结构程序设计(解答) 1.改错题 (1)下列程序的功能为:求1~100之和(和值为5050)并输出。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_1.c存盘。 #include main() { int i,sum=0; i=1; while(i<100) sum=sum+i; i++; printf(“The sum from 1 to 100 is %d\n”,sum); } 改正后的程序: #include main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("The sum from 1 to 100 is %d\n",sum); } (2)下列程序的功能为:倒序打印26个英文字母。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_2.c存盘。 #include main() { char x; x='z'; while(x!='a') { printf("%3d",x); x++; } }

改正后的程序: #include main() { char x; x='z'; while(x!='a'-1) 或while(x>='a') 或while(x!=96) { printf("%3c",x); x- -; } } (3)下列程序的功能为:输出如下的图形,要求顶端的*定位在第21字符位置,请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_3.c存盘。 * *** ***** ******* #include void main() { int i,j; for (i=0;i<4;i++) { for (j=0;j<=20;j++) printf("\n"); for (j=0;j<2*i+1;j++) printf("*"); } } 改正后的程序: #include void main() { int i,j; for (i=0;i<4;i++) { for (j=0;j<=20-i;j++) printf(" "); for (j=0;j<2*i+1;j++) printf("*"); printf("\n"); } } 2.程序填空 (1)下列程序的功能为:用辗转相除法求两个正整数的最大公约数;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_4.c存盘。 提示:

实验四答案

实验四SQL多表查询

编写SQL完成下列功能。 (1)查询未归还图书的读者编号、姓名和性别。 SELECT 借阅.读者编号,姓名,性别,是否归还 from 借阅,读者 where 借阅.读者编号=读者.读者编号and 是否归还=false (2)查询读者“马永强”所借图书的编号、图书名称、借书日期和归还日期 SELECT 借阅.图书编号,图书名称,借阅日期,归还日期,姓名 from 借阅,读者,图书 where 借阅.读者编号= 借阅.读者编号and 图书.图书编号=借阅.图书编号and 姓名= "马

永强" (3)查询文学类图书的基本信息 SELECT * from 图书 where 分类号in( select 分类号 from 图书分类 where 分类名称="文学类") (4)查询“江西财经大学国际学院”没有归还图书的读者的编号、姓名、图书名称、借书日期SELECT 读者.读者编号,读者.姓名,图书.图书名称,借阅.借阅日期 from 图书,读者,借阅 where 读者.读者编号=借阅.读者编号 and 借阅.图书编号=图书.图书编号

and 读者.工作单位= "江西财经大学国际学院" and 借阅.是否归还=false; (5)查询借阅了“清华大学出版社”所出版图书的读者编号、姓名、图书名称、借书日期和归还日期 SELECT 读者.读者编号,读者.姓名, 图书.图书名称,借阅.借阅日期,借阅.归还日期 from 图书,读者,借阅 where 读者.读者编号=借阅.读者编号 and 借阅.图书编号=图书.图书编号 and 图书.出版社名= "清华大学出版社"; (6)查询每种图书的分类名称和入库数量 SELECT 分类名称,sum(库存数量) as 入库数量 from 图书,图书分类 where 图书.分类号=图书分类.分类号 group by 分类名称;

数据库认证实验四答案

--1,创建登陆用户temp1,密码是1234,加入到school数据库中并赋予db_owner数据库角色. Sp_addlogin'temp1','1234','School'; ---添加用户 use School go exec sp_grantdbaccess'temp1'; --- /* CREATE LOGIN tmp1 WITH PASSWORD = '123',default_database=School; -- Creates a database user for the login created above. CREATE USER user1 FOR LOGIN tmp1; */ --查看登录账号的信息 Select*from sys.syslogins where name='temp1'; /* use School go exec sp_addsrvrolemember 'temp1','sysadmin';--添加服务器角色 */ --赋予db_owner数据库角色. use School go exec sp_addrolemember'db_owner','temp1'; --2,创建登陆用户temp2,密码是1234, --加入到school数据库中,并赋予该用户对student表select,insert权限 Sp_addlogin'temp2','1234','School'; ---添加用户 use School go exec sp_grantdbaccess'temp2';

grantselect,insert on student to temp2; --3,对数据库school进行完全数据库备份,写出备份语句 Use School Go Sp_addumpdevice'disk','schoolinfo','e:\data\schoolinfo.bak' Go Backupdatabase school to schoolinfo withinit; --4,将student学生信息表中所有学生信息年龄改为20,进行差异化备份--修改表的数据 use school go update student set sage=20; ---执行差异化的备份 Use School Go Backupdatabase School todisk='e:\data\schoolinfo.bak'; Use school Go Backupdatabase School to schoolinfo withdifferential,init Use school Go select*from student Backupdatabase school to schooldemo withdifferential,init

数据库管理系统实验报告含答案

xxxx大学《数据库管理系统》课程实验报告 班级: _______姓名:实验时间:年月日指导教师:_______ 一、实验目的 1、通过实验,使学生全面了解最新数据库管理系统的基本内容、基本原理。 2、牢固掌握SQL SERVER的功能操作和Transact-SQL语言。 3、紧密联系实际,学会分析,解决实际问题。学生通过小组项目设计,能够运用最新数据库管理系统于管理信息系统、企业资源计划、供应链管理系统、客户关系管理系统、电子商务系统、决策支持系统、智能信息系统中等。 二、实验内容 1.导入实验用示例数据库: f:\教学库.mdf f:\教学库_log.ldf f:\仓库库存.mdf f:\仓库库存_log.ldf 1.1 将数据库导入 在SqlServer 2005 导入已有的数据库(*.mdf)文件,在SQL Server Management Studio 里连接上数据库后,选择新建查询,然后执行语句 EXEC sp_attach_db @dbname = '教学库', @filename1 = 'f:\教学库.mdf', @filename2 = 'f:\教学库_log.ldf' go use [教学库] EXEC sp_changedbowner 'sa' go EXEC sp_attach_db @dbname = '仓库库存', @filename1 = 'f:\仓库库存.mdf',

@filename2 = 'f:\仓库库存_log.ldf' go use [仓库库存] EXEC sp_changedbowner 'sa' go 1.2 可能出现问题 附加数据库出现“无法打开物理文件"X.mdf"。操作系统错误5:"5(拒绝访问。)"。(Microsoft SQL Server,错误: 5120)”。 解决:找到要附加的.mdf文件-->右键-->属性-->安全-->选择当前用户-->编辑-->完全控制。对.log文件进行相同的处理。 2.删除创建的数据库,使用T-SQL语句再次创建该数据库,主文件和日志文件的文件名同上,要求:仓库库存_data最大尺寸为无限大,增长速度为20%,日志文件初始大小为2MB,最大尺寸为5MB,增长速度为1MB。 CREATE DATABASE仓库库存 (NAME = '仓库库存_data', FILENAME = 'F:\仓库库存_data.MDF' , SIZE = 10MB, FILEGROWTH = 20%) LOG ON (NAME ='仓库库存_log', FILENAME = 'F:\仓库库存_log. LDF', SIZE = 2MB, MAXSIZE = 5MB, FILEGROWTH = 1MB) 2.1 在数据库“仓库库存”中完成下列操作。 (1)创建“商品”表,表结构如表1: (2)创建“仓库”表,表结构如表2: 表2 仓库表

数学实验4答案

第四次练习题 1、 编程找出 5,1000+=≤b c c 的所有勾股数,并问:能否利用通项表示 },,{c b a ? >> for b=1: 995 a=sqrt((b+5)^2-b^2); if(a==floor(a)) fprintf('a=%i,b=%i,c=%i\n',a,b,b+5) end end a=15,b=20,c=25 a=25,b=60,c=65 a=35,b=120,c=125 a=45,b=200,c=205 a=55,b=300,c=305 a=65,b=420,c=425 a=75,b=560,c=565 a=85,b=720,c=725 a=95,b=900,c=905 >> for c=6:1000 a=sqrt(c^2-(c-5)^2); if(a==floor(a)) fprintf('a=%i,b=%i,c=%i\n',a,c-5,c) end end a=15,b=20,c=25 a=25,b=60,c=65 a=35,b=120,c=125 a=45,b=200,c=205 a=55,b=300,c=305 a=65,b=420,c=425 a=75,b=560,c=565 a=85,b=720,c=725 a=95,b=900,c=905 {a,b,c}={100*n^2-100*n+25,10*n^2-10*n,10*n^2-10*n+5} 2、编程找出不定方程 )35000(122<-=-y Dy x 的所有正整数解。(学号为单号的取D=2, 学号为双号的取D=5) D=2(学号为单号) >> for y=1:34999 x=sqrt(2*y^2-1); if(x==floor(x)) fprintf('x=%i,y=%i\n',x,y) end

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

相关文档
相关文档 最新文档