数据库实验二
SQL实验二:数据库查询实验报告

实验二数据库的查询实验实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。
(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
实验内容和原理在实验一定义的“学生成绩数据库”中,使用T-SQL 语句完成以下查询:(1 )求计算机系学生的学号和姓名。
(2)求选修了数学的学生学号、姓名和成绩。
(3)求选修01 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查找选修课程的平均成绩位于前三名的学生的学号。
(5)查询计算机系的姓刘且单名的学生的信息。
(6)查询至少选修两门课程的学生学号。
(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。
(8)查询选修“数据库”课程,且成绩在80 分以上的学生的学号和成绩。
(9)查询所有姓“王”的同学没有选修的课程名。
(请分别用exists和in完成该查询) (10)查询选修了全部课程的学生的姓名。
(请至少写出两种查询语句)(11)求选修了学生“ 95001”所选修的全部课程的学生学号和姓名。
(12)查询每一门课的间接先修课。
(13)列出所有学生所有可能的选课情况。
(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。
(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。
(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。
(17)对被两名以上学生所选修的课程统计每门课的选课人数。
要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。
(18)列出选修课程超过 3 门的学生姓名及选修门数。
(19)检索至少选修课程号为01 和03 的学生姓名。
(20)检索至少选修课程“数学”和“操作系统”的学生学号。
(21 )查询‘操作系统'课程的最高分的学生的姓名、性别、所在系(22)查询数据结构的成绩低于操作系统的成绩的学生姓名及该生的这两门课的成绩(23)所有成绩都在70 分以上的学生姓名及所在系。
VF实验二关联、查询和数据库

实验二关联、查询和数据库实验2-1 多表关联与查询实验目的:〔1〕理解关联的概念,掌握在数据工作期窗口中建立关联的方法。
〔2〕掌握SELECT-SQL查询命令。
〔3〕掌握用查询设计器建立查询的方法。
实验要求:〔1〕在数据工作期窗口上建立以“订单〞为父表,“订单明细〞为子表的一多关系;再建立以“订单明细〞为父表,“货物〞为子表的多一关系的二级关联。
然后查看关联后的效果。
〔2〕用SELECT-SQL命令对上述5个表作多表查询练习。
①查询联系“东南实业〞公司的员工**及联系。
②查询订购麻油的订单份数。
〔3〕用查询设计器查询公司订货情况。
实验步骤:〔1〕为“关联〞建立索引:为订单表的订单号字段建立索引,再为货物表的货号字段建立索引。
1)翻开“订单明细表〞在命令窗口里输入命令:INDE* ON 订单号 TAG ddh,执行命令就为该表建立了索引,翻开表生成器查看如下:图中显示了索引,默认是升序的。
2〕同样的方法,翻开“订单明细表〞在命令窗口里输入命令:INDE* ON 货号 TAG hh,执行命令就为该表建立了索引,〔2〕建立关联:过程方法:1〕翻开数据工作期窗口→分别用“翻开〞按钮翻开订单表、订单明细表和货物表→在“别名〞列表框中选定“订单〞,单击“关系〞按钮→在“别名〞列表框中选定“订单明细〞→随即弹出“设置南索引顺序〞对话框,其列表框中显示“订单明细.订单号〞。
选定“确定〞按钮→随即弹出“表达式生成器〞对话框,其SET RELATION框中显示“订单号〞。
选定“确定〞按钮,多一关系建立完成→选定“一对多〞按钮→在随即弹出的“创立一对多关系〞对话框中→选定“确定〞按钮,一多关系建立完成。
显示的表达式生成器如下:2)在“别名〞列表框中选定“订单明细〞→为确定以订单明细表为父表建立下一级关联,在“关系〞列表框中也选定“订单明细〞→单击“关系〞按钮→在“别名〞列表框中选定“货物〞→在随即弹出的“设置索引顺序〞对话框中选定“确定〞按钮→在“表达式生成器〞对话中选定“确定〞按钮,多一关系建立完成,如图下列图所示:〔3〕查看关联效果:分别“订单〞、“订单明细〞和“货物〞浏览窗口,并按左中右顺序排列→选定“订单〞表的*个记录,“订单明细〞和“货物〞浏览窗口的内容即会关联变化,如下列图所示。
数据库实验报告

实验(一): 熟练掌握SQL语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。
实验内容:具体包括如下三部分。
一、熟悉上机环境。
客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。
具体包括:1.了解SQL Server 环境。
鼠标点击开始,进入“Microsoft SQL Server→企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。
点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。
因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。
2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输入用户名和口令,进入SQL查询分析器。
如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。
3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。
二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。
1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的关系模式CREA TE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));CREA TE TABLE Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno) );CREA TE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) );4在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。
数据库原理实验2数据查询

课程名称数据库原理实验序号 2实验项目数据查询实验地点实验学时实验类型验证性指导教师实验员专业班级学号姓名年月日成绩:A教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。
四、实验过程(实验步骤、记录、数据、分析)实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。
一、简单的选择与投影查询1、无条件查询1.1查询全体学生的详细记录。
这是一个无条件的选择查询,其命令为:其命令为:select * from students运行结果如右图,显示整张表的内容。
1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(dno)。
这是一个无条件的投影查询,其命令为:select sname,ssexfrom students运行结果如右图,显示了表中的三列。
1.3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
其命令为:select sno,sname,2017-sage as birth from students运行结果如右图,显示了三列内容。
1.4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
其命令为:select sname,'birth:' title,YEAR(GETDATE())-sagebirthyear,LOWER(sno) lsnofrom students运行结果如右图,显示了四列内容。
1.5查询选修了课程的学生学号。
其命令为:select distinct snofrom reports运行结果如右图,distinct短语是为了消去查询结果中的重复值。
2、条件查询(1)比较条件1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。
其命令为:select sno,snamefrom studentswhere dno='d03'运行结果如右图,显示了d03系的全体学生姓名与学号。
数据库实验答案实验二Sql

(1) 查找有销售记录的客户编号、名称和订单总额。
命令:SELECT a.CustomerNo,CustomerName, sum(quantity*price) orderSumFROM OrderMaster a,OrderDetail b,Customer cWHERE b.orderNo=a.orderNo AND c.CustomerNo=a.CustomerNoGROUP BY a.CustomerNo,CustomerNameORDER BY a.CustomerNo,orderSum DESC(2) 在订单明细表中查询订单金额最高的订单。
命令:SELECT top 1 orderNo,sum(quantity*price)订单金额FROM OrderDetailGROUP BY orderNoORDER BY 订单金额DESC(3) 查询没有订购商品的客户编号和客户名称。
命令:SELECT CustomerNo,CustomerNameFROM CustomerWHERE CustomerNo NOT IN (SELECT CustomerNo FROM OrderMaster)(4) 找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。
命令:SELECT a.productNo,orderNo,quantity,(quantity*price) moneyFROM OrderDetail a,(SELECT productNoFROM OrderDetailGROUP BY productNoHA VING COUNT(*)>=3) bWHERE a.productNo =b.productNoORDER BY a.productNo,quantity DESC被订购三件以上的……SELECT b.ProductNo,orderNo,quantity,orderSum=quantity*priceFROM OrderDetail b,(SELECT ProductNo FROM(SELECT ProductNo,sum(quantity)SQfrom OrderDetail GROUP BY ProductNo)aWHERE a.SQ>3)cWHERE b.ProductNo=c.ProductNoORDER BY b.quantity DESC(5) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
2-Expriment 2数据库实验

Experiment 2. Expressions and GROUP BY clause1. Search conditions1.1 Select rows within a certain range. (Using BETWEEN…AND…)a. Find all the employees who earn between $1200 and $1400.b. Find all the employees who do not earn between $1200 and $1400.1.2 Select rows that match a value in a list. (Using IN(…) operator)a. Find the employees who are clerks, analysts or salesmen.b. Find the employees who are not clerks, analysts or salesmen.1.3 Select rows that match a character string pattern. (Using LIKE operator)a. Find all the employees whose names begin with the letter “M”.b. Find all the employees whose names contain the letter “N”.c. Find all the employees whose names are not 5 characters long.2. Ordering rows in a query result2.1 List the employees in department 30 ordered by their salaries in ascending order.2.2 List the employees in department 30 ordered by their salaries in descending order.2.3 Order all employees by job. For those with the same job, put them in descending salary order.3. Expressions3.1 The ISNULL() function.Syntax: ISNULL ( check_expression , replacement_value )Description: Check whether check_expression is a null value. If it is, replace it with replacement_value in the expression.Example: Calculate the average price of all books. Consider the books without price data as $20.SELECT AVG(ISNULL(Price, 20)) FROM Books;3.2 List the name, salary, commission, and sum of salary plus commission of all salesmen.3.3 List the name, salary and commission of employees whose commissions are greater than 25% of their salaries.3.4 Calculate the total annual earnings of all salesmen based on their monthly salaries and their monthly commissions.4. Aggregate Functions4.1 Find the average salary for clerks.4.2 Find the total salary and total commission for salesmen.4.3 Compute the average annual salary plus commission for all salesmen.4.4 Find the highest and lowest paid employee salaries and the difference between them.4.5 Count the number of employees who receive a commission.4.6 Count the number of different jobs held by employees in department 30.4.7 Count the number of employees in department 30.5. GROUP BY clause5.1 List the department number and average salary of each department.5.2 F ind each department’s average annual salary for all its employees except the managers and the president.5.3 Divide all employees into groups by department, and by jobs within department. Count the employees in each group and compute each group’s average annual salary.5.4 List the average annual salary for all job groups having more than 2 employees in the group.5.5 List all the departments that have at least two clerks.5.6 Find all departments with an average commission greater than 25% of average salary.。
数据库实验报告全

数据库实验报告全实验⼀实验⽬的1.熟悉SQL Server Management Studio(SSMS)的⼯作环境2.掌握使⽤和命令建⽴数据库的⽅法3.熟练掌握使⽤SSMS和T-SQL语句创建、修改和删除表。
4.熟练掌握使⽤SSMS和T-SQL语句插⼊、修改和删除表数据。
实验内容1.采⽤SQL Server Management Studio 、T-SQL语句两种⽅式创建产品销售数据库,要求:1)使⽤SSMS创建数据库CPXS_bak,数据⽂件初始⼤⼩为5MB,最⼤⼤⼩50MB,按5MB增长;⽇志⽂件初始为2MB,最⼤可增长到10MB,按2MB增长;其余参数取默认值。
2)⽤T-SQL语句创建数据库CPXS,数据⽂件的增长⽅式改为增长⽅式按10%⽐例增长,其余与CPXS_bak。
3)⽤T-SQL语句删除数据库CPXS_bak。
2.CPXS数据库包含如下三个表:1)产品(产品编号,产品名称,价格,库存量)2)客户(客户编号,客户名称,地区,负责⼈,电话)3)销售(产品编号,客户编号,销售⽇期,数量,销售额)三个表结构如资料中图3.1~图3.3所⽰,请写出创建以上三个表的T-SQL语句并在查询分析器中运⾏。
3.在SSMS中输⼊如资料中图3.4~图3.6的商品表、客户表和销售表的样本数据。
6.将CP表中每种商品的价格打8折。
7.将CP表中价格打9折后⼩于1500的商品删除。
⼆.实验步骤与结果(说明:要写出相关步骤和SQL语句,实验结果可以是运⾏画⾯的抓屏,抓屏图⽚要尽可能的⼩。
)1.1)使⽤SSMS创建数据库CPXS_bak效果图为2)⽤T-SQL语句创建数据库CPXS:CREATE DATABASE CPXSON PRIMARY(NAME='CPXS_DATA',FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\CPXS_DATA.MDF', SIZE=5MB,MAXSIZE=50MB,FILEGROWTH=10%)LOG ON(NAME='CPXS_LOG',FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\CPXS_LOG.LDF', SIZE=2MB,MAXSIZE=10MB,FILEGROWTH=2MB)3) DROP DATABASE CPXS_bak刷新数据库会看到CPXS_bak不存在2.1) USE CPXSGOCREATE TABLE产品(产品编号char(6)PRIMARY KEY,产品名称char(30)NOT NULL,价格float(8),库存量int,)2) USE CPXSGOCREATE TABLE客户(客户编号char(6)PRIMARY KEY,客户名称char(30)NOT NULL,地区char(10),负责⼈char(8),电话char(12))3)USE CPXSGOCREATE TABLE销售(产品编号char(6),客户编号char(6),销售⽇期datetime,数量int NOT NULL,销售额float(8)NOT NULL,CONSTRAINT pk_js PRIMARY KEY(产品编号,客户编号,销售⽇期))/*pk_js为约束名*/ 执⾏完上⾯的操作就能看见表已经添加进数据库中,如图所⽰:3. 打开表:在其中添加数据:4.1)USE CPXSINSERT INTO产品(产品编号,产品名称,价格,库存量) VALUES('200001','柜式空调','3000','200')2)USE CPXSINSERT INTO产品(产品编号,产品名称,价格,库存量) VALUES('200002','微波炉','1000','100')3)USE CPXSINSERT INTO产品(产品编号,产品名称,价格,库存量) VALUES('200003','抽油烟机','1200','50')可以看见图中的产品表增加了如下内容:5.USE CPXSALTER TABLE产品Add产品简列varchar(50)6. USE CPXSUPDATE产品set价格=价格*0.87. USE CPXSDELETE产品WHERE价格*0.9<1500三.实验中的问题及⼼得(说明:此处应写明此次实验遇到的问题有哪些,如何解决的,不能够空。
数据库原理及应用实验指导书答案

数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(DBMS)是一种软件,用于管理和组织数据库。
它允许用户创建,读取,更新和删除数据库中的数据。
常见的数据库管理系统有MySQL,Oracle,SQL Server等。
问题二在实验室环境中,我们将使用MySQL作为我们的数据库管理系统。
以下是MySQL的一些常见特点: - 开源免费 - 跨平台支持 - 可扩展性强 - 有大型的用户社区和丰富的资源支持问题三MySQL的安装步骤如下: 1. 下载MySQL安装文件,可以从MySQL官方网站或者其他可信的下载源获取。
2. 运行安装程序,按照向导的指示进行安装。
3. 选择是否要安装MySQL 服务器和MySQL工具。
4. 设置密码以保护数据库的安全。
5. 完成安装程序并启动MySQL服务。
数据库是一个组织和存储数据的容器。
在关系型数据库中,数据以表的形式存储,每个表包含多个行和列。
每行代表一个记录,每列代表一个字段。
问题五关系型数据库管理系统(RDBMS)是一种DBMS,它使用结构化查询语言(SQL)来操作和处理数据。
常见的关系型数据库管理系统有MySQL,Oracle,SQL Server等。
问题六开放数据库连接(ODBC)是一种标准的数据库访问方法,它允许不同的应用程序通过统一的接口访问不同的数据库管理系统。
ODBC驱动程序充当应用程序和数据库之间的翻译器。
问题七在Windows系统中,ODBC数据源可以通过控制面板的“管理工具”来配置。
在数据源配置对话框中,可以添加,编辑和删除ODBC数据源。
在Windows系统中,可以使用ODBC接口库和ODBC驱动程序来连接和操作数据库。
具体步骤如下: 1. 加载ODBC接口库。
2. 初始化ODBC环境。
3. 建立数据库连接。
4. 执行SQL语句。
5. 关闭数据库连接。
6. 释放ODBC环境。
问题九ODBC接口库是一组API函数,用于连接和操作数据库。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库实验二集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)实验报告册2014 / 2015 学年第2 学期系别计算机科学与技术系实验课程数据库原理专业计算机科学与技术班级姓名学号指导教师实验二——SQL语句一、实验目的1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询和统计查询,能理解空值的处理;2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操作;3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图;4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作;二、实验预习内容在认真阅读教材及实验指导书【实验1.2 数据查询】、【实验1.3 数据更新】、【实验1.4 视图】和【实验1.6 空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。
1.使用SCHOOL数据库,在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下操作。
请在空白处填写相应的SQL命令。
1)查询年级为2001的所有学生的名称,按编号顺序排列;2)查询所有课程名称中含有data的课程编号;3)统计所有老师的平均工资;4)查询至少选了3门课的学生编号;5)6)查询没有学生选的课程编号;7)查询既选了C++又选了Java课程的学生编号;8)查询选了C++但没选Java课程的学生编号;9)向STUDENTS表中插入“LiMing”的个人信息);10)将“LiMing”的年级改为2002;11)删除所有选了Java课程的学生选课记录;12)求出每门课的课程号、选课人数,结果存入数据库表T1中。
13)查询所有选课记录的成绩并换算为五分制(注意NULL的情况);14)查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值(注意查询结果中NULL的情况);15)按成绩顺序排序显示CHOICES表中所有记录。
(使用ORDER BY排序,注意NULL的情况);16)创建视图V1,显示学生姓名、所选课名称、任课教师名;17)取消V1视图;2.使用STC数据库,在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下操作。
请在空白处填写相应的SQL命令或其它内容。
1)创建视图V2,显示计算机(CS)系学生信息;(结合下面的b)小题,V2视图创建2次,分别使用/不使用WITH CHECK OPTION选项)2)插入元组(99999,张三,20岁,男,PH)到V2中,运行结果如何?(观察WITH CHECK OPTION对结果的影响);3)在V2基础上,查询所有计算机系女生信息;select * from V2where ssex=’女’3.结束本次实验三、实验课后训练1.掌握SQL SERVER中流控制语句及其它常用编程语句;1)使用查询分析器,编写代码,输出乘法口诀表。
2.自行练习实验指导书P24【实验1.2 数据查询】1.2.5自我实践部分;3.自行练习实验指导书P30【实验1.3 数据更新】1.3.5自我实践部分;4.自行练习实验指导书P36【实验1.4 视图】1.4.5自我实践部分;5.自行练习实验指导书P49【实验1.6 空值和空集的处理】1.6.5自我实践部分;四、实验报告1.SQL SERVER中变量声明的命令是什么?输出命令是什么?变量声明:局部变量需要声明,declare @变量名,空格,数据类型(声明变量)。
全局变量不需要声明。
输出命令:select (查询命令)2.SQL SERVER中实现分支和循环的语句分别是什么?分支:用case 测试表达式when 测试值1 then 结果表达式1when 测试值2 then 结果表达式2[else 结果表达式n+1]end循环:用while 布尔表达式begin 语句序列1[break] 语句序列2[continue] 语句序列3end3.在SQL SERVER里使用ORDER BY排序时,NULL值如何处理?使用GROUP BY分组时,NULL值又如何处理的?null 默认为最大值(即:asc 升序<小-->大>,null值排在最后;desc 降序<大-->小>,null值排在最前面4.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)有些较为复杂的嵌套查询,刚开始不知道如何写,然后问同学,理清了思路,并完成了编程。
在这次实验中,有好多因为中英字符问题而出现的命令错误,进行更改后就可以正常执行命令了实验三——数据库完整性与安全性一、实验目的1.理解实体完整性、参照完整性、用户自定义完整性的概念,学习三类完整性的实现,了解违反完整性的结果;2.掌握MS SQL SERVER中的有关用户登录认证及管理方法,熟练使用自主存取控制进行权限管理;二、实验预习内容在认真阅读教材及实验指导书【2.1 实体完整性】、【2.2 参照完整性】、【2.3 用户自定义完整性】、【2.4 触发器】、【2.5 综合案例】和【3.1 用户标识与鉴别】、【3.2 自主存取控制】、【3.3 视图机制在自主存取控制上的应用】、【3.4 Public角色在安全性中的应用】、【3.8 综合案例】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。
1.使用SCHOOL数据库1)创建一张新表CLASS,包括Class_id(varchar(4)),Name(varchar (10)),Department(varchar(20))三个属性列,其中Class_id为主码;2)执行两次相同的插入操作(’0001’,’01csc’,’cs’),结果如何;2.使用SQL命令创建一张学生互助表,要求:包括学生编号、学生姓名、学生帮助对象的编号,每个学生有且仅有一个帮助对象,帮助的对象必须是已存在的学生。
3.使用STC数据库,修改设置,完成以下2种不同的要求,请写出对应的语句或简述操作过程:1)当更新、删除STU表中记录时,若SC表中有此学生的记录,则拒绝;2)当更新、删除STU表中记录时,若SC表中有此学生的记录,则自动更新或删除;4.使用SQL命令完成以下任务:1)创建Worker表(表结构见指导书P73)2)定义约束U1、U2,其中U1规定Name字段取值唯一,U2规定sage字段上限是28;3)插入一条合法记录;4)插入一条违反U2约束的记录,简述观察到的结果如何?并分析原因;5)去除U1约束;6)修改约束U2,令sage的值大于等于0;7)创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段;8)插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。
5.使用查询分析器创建触发器并测试,请写出相应的语句:1)为Worker表创建触发器T1,当插入或更新表中数据时,保证所操作记录的sage大于0;2)为Worker表创建触发器T2,禁止删除编号为00001的记录;3)为Worker表创建触发器T3,要求更新一个记录时,表中记录的sage要比老记录的sage的值大。
6.分别用企业管理器和查询分析器实现用户的标识并测试,请写出相应的操作过程或对应的语句:1)设置SQL SERVER的安全认证模式;2)建立名为“LiYong”的登录用户、数据库用户,默认访问SCHOOL数据库,密码为“abcd”;3)取消“LiYong”用户;7.先以sa帐号登录,要实现如下表的权限管理,请按先后顺序写出相应的SQL语句(假设所有用户尚未定义,其密码均为123),并加以必要的说明。
8.创建在SCHOOL数据库中choices上的视图CS_View,授权给计算机系讲授课程号为’10010’的数据库用户“LiYong”,让其具有视图上的SELECT权限;9.对视图CS_View上的score属性列的UPDATE权限授予用户“LiYong”,可以修改学生成绩,但不能修改其它属性列的值;10.假设SCHOOL数据库中,每个学生的登录名都为自己在STUDENTS表中的sid,实现每个学生只能查询自己选课信息,不能查询别人的成绩,也不能修改自己的成绩。
11.结束本次实验三、实验课后训练1.自行练习实验指导书P81【实验2.5 综合案例】综合案例1;2.自行练习实验指导书P122【实验3.8 综合案例】综合案例;四、实验报告1.授权给public与授权给指定用户有什么区别?实际应用中,哪个更安全些?2.SQL SERVER中的角色有什么作用?3.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)实验四——数据库编程一、实验目的1.掌握ODBC的配置;2.能编写简单的存储过程和函数,并调用;二、实验预习内容上机前请预习以下内容,并在空白处填写相应的步骤或命令。
1.配置ODBC,使用VFP中的表单,查询SCHOOL数据库中STUDENTS表中所有记录。
2.编写存储过程并调用,请写出相应命令;1)在查询分析器中,编写存储过程usp_get_stuinfo ,使用一个名为@xm能够传送进存储过程的参数。
允许以学生的姓名查询该生的基本信息;2)在查询分析器中调用存储过程查询“赵飞”同学的基本信息的语句;3.编写函数并调用,请写出相应命令;1)在查询分析器中,定义内联表值函数Fun,用于返回各职称的教师基本信息;2)在查询分析器中,使用Fun进行选择以获得“教授”职称的教师基本信息;3)在查询分析器中,编写标量函数Func,用于返回两个整数中的最大值;4)在查询分析器中,调用此函数,输出两个数中的最大值;5)在SQL SERVER中定义函数FUNS,返回指定参数的平方,配置好ODBC后,在VFP 中调用FUNS并输出结果;4.结束本次实验三、实验课后训练1.自行学习实验指导书P130【实验4.1 SQL SERVER事务的定义】;2.自行学习实验指导书P137【实验4.2 SQL SERVER 2005事务与锁】;3.自行练习实验指导书P165【实验4.6 游标及游标并发】;(P167 4.6.3 实验内容要完成)四、实验报告1.什么是ODBC2.内联表值函数、标量函数、存储过程有什么区别?3.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)。