数据库上机作业2

合集下载

mysql数据库实验上机作业

mysql数据库实验上机作业

以下是一个MySQL数据库实验上机作业的示例:1. 创建一个名为“students”的数据库,并选择该数据库。

```sqlCREATE DATABASE students;USE students;```2. 创建一个名为“students_table”的表,包含以下列:id(主键,自动递增),name(文本),age(整数),gender(文本),major (文本)。

```sqlCREATE TABLE students_table (id INT AUTO_INCREMENT PRIMARY KEY,name V ARCHAR(100),age INT,gender V ARCHAR(10),major V ARCHAR(100));```3. 向“students_table”表中插入一些数据。

```sqlINSERT INTO students_table (name, age, gender, major) V ALUES ('John', 20, 'Male', 'Computer Science'),('Jane', 22, 'Female', 'Mathematics'),('Bob', 21, 'Male', 'Physics');```4. 查询所有学生的信息。

```sqlSELECT * FROM students_table;```5. 查询所有年龄大于等于20岁的学生信息。

```sqlSELECT * FROM students_table WHERE age >= 20;```6. 查询所有计算机科学专业的女学生信息。

```sqlSELECT * FROM students_table WHERE major = 'Computer Science' AND gender = 'Female';```7. 更新表中某个学生的信息。

Access数据库程序设计上机操作练习题2

Access数据库程序设计上机操作练习题2

Access数据库程序设计上机操作练习题第一套全真模拟试题一、基本操作题1(1)在考生文件夹下,"sample1.mdb"数据库文件中建立表"tTeacher",表结构如下:(3)设置"性别"字段的默认值为:“男”;(4)在" tTeacher "表中输入以下2条记录:二、简单应用题考生文件夹下存在一个数据库文件“samp2.mdb”,里面已经设计好四个表对象“tEmp”、“tBmp”、“tTmp”和“tGrp”。

试按以下要求完成设计:(1)以表“tEmp”为数据源创建一个选择查询,查找并显示年龄大于等于40的职工的“编号”、“姓名”、“性别”、“年龄”和“职务”五个字段内容,所建查询命名为“qT1”。

(2)以表“tEmp”和“tGrp”为数据源创建一个参数查询,按照部门名称查找职工信息,显示职工的“编号”、“姓名”及“聘用时间”三个字段内容,要求参数提示信息为“请输入职工所属部门名称”,所建查询命名为“qT2”。

(3)创建一个更新查询,将表“tBmp”中“编号”字段值均在前面增加“05”两个字符,所建查询命名为“qT3”;(4)创建一个删除查询,删除表对象“tTmp”里所有姓名含有“红”字的记录,所建查询命名为“qT4”。

三、综合应用题请在“答题”菜单下选择相应命令,并按照题目要求完成下面的操作,具体要求如下:考生文件夹下存在一个数据库文件“samp3.mdb”,里面已经设计了表对象“tEmp”、窗体对象“femp”、报表对象“rEmp”和宏对象“mEmp”。

试在此基础上按照以下要求补充设计:(1)、设置表对象“tEmp”中“姓名”字段为“必填字段”,同时设置其为“有重复索引”。

将考生文件夹下图像文件"zs.bmp"作为表对象"tEmp"中编号为"000002"、姓名为张三的女职工的照片数据。

数据库上机作业

数据库上机作业
5.有选课成绩但学分不到6分的学生的学号及学分总数。
6.建表co,插入课程学分平均分在5分以上的系的系号和平均分。
答案:
/*1 select sum(grade),avg(grade)
from sc
where cno='e001'*/
/*2 select dno,count(*)
from class
8.将系表中的“数信”系删除。
/* selecBiblioteka * from dept delete from dept
where dname= 'ma'*/
9.建立一个新表,存放成绩在86分以上的学生的学号,课程号和成绩。
/*create table abc(Sno char(10),Cno char(10), grade int)
/*7 select sname,avg(grade) from sc,student
where grade>60 and sc.sno=student.sno
group by sname */
where clnum>2*/
/*5 select sno,sum(ccre)
from sc,couse
where o=o and grade>=0 or ccre<6
group by sno*/
/*6 create table co(cno char(10),avge int)
3.将学分统一降低1分。
/* select * from couse
update couse
set ccre=ccre-1*/
4.为每个班级增加5名同学。

数据库上机作业(学生学籍管理)

数据库上机作业(学生学籍管理)

上机实验-1Access2003基本操作一、实验目的1.掌握Access2003数据库的构成;2.熟悉Access2003的用户界面。

二、实验内容在Access2003中打开罗斯文示例数据库,结合该数据库来了解Access 数据库的构成,并熟悉Access2003的用户界面。

1.单击“开始”按钮,指向“程序”,然后单击“Microsoft Access”,启动Access2003。

2.在启动对话框中,单击“打开已有文件”下的“罗斯文示例数据库”。

罗斯文示例数据库通常位于“Program Files\Microsoft Office\Office\Samples”文件夹中,文件名为“Northwind.mdb”。

3.在“数据库”窗口中,单击“对象”栏下的“表”,单击“产品”表对象,然后单击“数据库”窗口的工具栏上的“打开”按钮,在“数据表”视图中查看表中的数据记录。

4.从“视图”菜单中选择“设计视图”命令,以切换到设计视图下,查看表中各个字段的定义,例如字段名、数据类型、字段大小等,然后关闭设计视图窗口。

5.在“数据库”窗口中单击“对象”栏下的“查询”,单击“各类产品”查询对象,然后单击“数据库”窗口工具栏上的“打开”按钮,在“数据表”视图下查看运行查询所返回的记录集合。

6.从“视图”菜单中选择“设计视图”命令,以查看创建和修改查询时的用户界面。

7.从“视图”菜单中选择“SQL视图”命令,以查看创建查询时所生成的SQL语句,然后关闭SQL视图窗口。

8.在“数据库”窗口中单击“对象”栏下的“窗体”,单击“产品”窗体对象,然后单击“数据库”窗口工具栏上的“打开”按钮,在窗体视图下查看窗体的运行结果,并单击窗体下方的箭头按钮,在不同记录之间移动。

9.从“视图”菜单中选择“设计视图”命令,以查看设计窗体时的用户界面。

10.从“视图”菜单中选择“数据表视图”命令,以查看存储在基础表中的数据记录,然后关闭数据表视图窗口。

数据库上机实验

数据库上机实验

实验一数据表的建立一、实验目的:熟悉Access 2000的操作环境,并了解关系数据库中关系在Access 2000中的表示——数据表,同时掌握数据表建立的不同方法。

二、实验要求:1.掌握Access 2000的启动和退出;2.了解Access 2000的特性;3.熟悉Access 2000的操作界面、窗口组成各元素;4.掌握Access 2000中建立、保存数据库的方法;5.掌握Access 2000中打开数据库的方法;6.掌握在Access 2000数据库中建立数据表的方法;7.掌握数据表中字段属性的设置和修改;8.掌握数据表中数据的输入、修改、添加、删除;9.掌握在Access 2000数据表的两种视图。

三、实验内容:1、启动Access 2000;2、打开已有的数据库文件(如“罗斯文示例数据库”);3、熟悉Access的操作环境,了解其窗口组成各元素;4、通过帮助了解Access 2000的功能和新特性;5、在Access 2000中新建一个SPJ数据库,并在其中用三种不同的方法(数据表视图、表向导、设计视图)新建S、P、J、SPJ四个数据表,各表结构及内容见下页;6、根据表中数据设置各字段的类型及大小,并设置S、P、J表的主键分别为SNO、PNO、JNO,SPJ表的主键为SNO+PNO+JNO,这些字段不能取空值、而且各记录的值互不相同;7、为S表的CITY字段设置有效性规则,限定其输入的城市只能为“天津”、“北京”、“上海”之一;为SPJ表的QTY字段设置有效性规则,限定其输入的数量在100~900之间;8、按表格所示内容输入各表数据;9、练习表中记录的浏览、修改、插入、删除;10、退出Access。

四、实验步骤:1、启动Access 2000在Windows中单击“开始/程序/Microsoft Access”命令即可启动Access,如图1-1所示。

启动Access后,即可看到一个初始对话框出现,如图1-2所示。

《数据库实验》实验二 数据操作实验

《数据库实验》实验二 数据操作实验

院系:计算机学院实验课程:数据库实验实验项目:数据操作实验指导老师:XXX开课时间:XXXX ~ XXXX年度第 2学期专业:XXXX班级:XXXX级本X班学生:XXX学号:XXXXXXXX实验二数据操作实验一、实验任务及目的1. 实验任务:上机完成实验内容,主要是编写、运行和分析SQL,请预先自行判断SQL 的运行结果(例如:查询结果包含哪些数据;更新后关系数据如何变化),然后与实际的运行结果比较,以此发现和修正SQL编写中的错误。

2. 实验目的:能够熟练使用MS SQL Server的Query Analyzer工具,联机运行SQL并观察分析SQL的执行结果。

掌握SQL的数据定义、数据查询和数据修改功能,能独立用SQL表述问题,解决较复杂的应用需求。

二、实验的主要硬件软件环境MS SQL Server、计算机磁盘三、实验主要数据结构线性表四、实验的主要算法1.至少向北京或天津的工程提供了零件的供应商名,供应的零件名、工程名和供应数量。

SELECT PNAME,JNAME,SNAME,QTYFROM S,P,J,SPJWHERE SPJ.SNO=S.SNOAND SPJ.JNO=J.JNOAND SPJ.PNO=P.PNOAND (J.CITY=’上海’ OR J.CITY=’天津’)2.供应红色零件给工程J1的供应商名SELECT SNAMEFROM S,P,SPJWHERE SPJ.JNO=’J1’AND SPJ.SNO=S.SNOAND SPJ.PNO=P.PNOAND COLOR=’红’3. 没有使用天津产的零件的工程号SELECT JNOFROM JWHERE JNO NOT IN(SELECT JNOFROM SPJ,SWHERE SPJ.SNO=S.SNOAND CITY=’天津’)4.没有向位于相同城市的工程供应零件的供应商名SELECT SNAMEFROM SWHERE SNAME NOT IN( SELECT SNAMEFROM S,J,SPJWHERE SPJ.JNO=J.JNOAND SPJ.SNO=S.SNOAND S.CITY=J.CITY)5. 和工程J3位于同一城市且使用过至少一种相同零件的其它工程名SELECT DISTINCT(JNAME)FROM J,SPJWHERE SPJ.JNO=J.JNOAND CITY IN(SELECT CITYFROM JWHERE J.JNO=’J3’)AND JNAME NOT IN(SELECT JNAMEFROM JWHERE J.JNO=’J3’)6. 每种颜色零件的总重量SELECT COLOR,SUM(WEIGHT)FROM PGROUP BY (COLOR)7.红色零件的平均重量SELECT AVG(WEIGHT)FROM PWHERE COLOR=’红’8.供应商最集中的城市(意即,哪个城市的供应商最多?)SELECT S.CITYFROM SGROUP BY (CITY)HAVING COUNT(CITY)>=ALL(SELECT COUNT(CITY)FROM SGROUP BY (CITY))9.对上海和天津,统计该城市的供应商一共供应了多少数量的零件。

11291247_裴丛仙子_数据库第二次上机

11291247_裴丛仙子_数据库第二次上机

其中仓库、职工表分别如下:上机完成以下任务,并完成上机记录。

1、 用CREATE创建表: 职工(职工号,仓库号,工资)仓库(仓库号,城市,面积)CREATE TABLE 仓库(仓库号 CHAR(5) PRIMARY KEY ,城市 CHAR(10)面积 CHAR(5)CREATE TABLE 仓库(仓库号 CHAR(5) PRIMARY KEY ,城市 CHAR(10)面积 CHAR(5)2、 2.用INSERT 在表中插入所有的记录外键3、检索哪些仓库有工资多于1210元的职工;SELECT仓库号FROM职工WHERE工资>12104.给出在北京工作,并且工资大于1210元的职工号;SELECT职工号FROM职工,仓库WHERE工资>1210 AND(职工.仓库号=仓库.仓库号)AND(城市='北京')4、 5.检索出工资在1220元到1240元范围内的职工信息;SELECT*FROM职工WHERE工资BETWEEN 1220 AND 12405、 6.检索出全部职工的信息,按工资从高到低排序;SELECT*FROM职工ORDER BY工资DESC6、7.找出工资高于1230元的职工及他们工作的城市;SELECT职工号,城市FROM职工,仓库WHERE(工资>1230)AND(职工.仓库号=仓库.仓库号)8.求在“上海”仓库工作的职工的最高工资值、平均值SELECT MAX(工资),AVG(工资)FROM职工,仓库WHERE(职工.仓库号=仓库.仓库号)AND(城市='上海')7、9.给“北京”仓库的职工提高10%的工资UPDATE职工SET工资=工资*1.10FROM仓库WHERE(职工.仓库号=仓库.仓库号)AND(城市='北京')8、10.检索哪些仓库中还没有职工的仓库的信息SELECT仓库号FROM仓库WHERE仓库号NOT IN(SELECT仓库号FROM职工)9、11.列出职工全部记录并计算各仓库的平均工资和工资小计,最后给出全体职工的平均工资和工资总和SELECT仓库号,职工号,工资FROM职工ORDER BY仓库号COMPUTE AVG(工资),SUM(工资)BY仓库号COMPUTE AVG(工资),SUM(工资)。

二级ACCESS上机题库2-计算机二级考试ACCESS试卷与试题

二级ACCESS上机题库2-计算机二级考试ACCESS试卷与试题

二级ACCESS上机题库2试卷总分:150答题时间:120分钟一、第6套:参考答案:关闭表"tStud",选择"文件"菜单下的"获取外部数据"中的"导入",或者右击鼠标,在弹出的下拉菜单中选择"导入",然后在"导入"对话框中选择考生文件夹下的"tStud.txt"(注意选择文件类型),点击"导入"后再点击"下一步",选中"第一行包含字段名"的复选框,点击"下一步",选中现有的表tStud,点击"下一步"、"完成"即可。

参考答案:以表"tTeacher1"为数据源创建一个选择查询,查找并显示教师的"编号"、"姓名"和"工龄"三个字段内容。

其中,标题为"工龄"的显示字段为计算字段,所建查询命名为"qT3";先选择"编号"和"姓名"字段,然后在第三个字段中输入"工龄: Year(Date())-Year([工作时间])",最后以"qT3"保存查询。

基本操作:在考生文件夹下,"samp1.mdb"数据库文件中已建立表对象"tStud"。

试按以下操作要求,完成表的编辑修改:(1)将"编号"字段改名为"学号",并设置为主键;(2)设置"入校时间"字段的有效性规则为2005年之前的时间(不含2005年);(3)删除表结构中的"照片"字段;(4)删除表中学号为"000003"和"000011"的两条记录;(5)设置"年龄"字段的默认值为23;(6)完成上述操作后,将考生文件夹下文本文件tStud.txt中的数据导入并追加保存在表"tStud"中。

数据库上机实验报告 总结

数据库上机实验报告 总结

数据库上机实验报告总结
本次数据库上机实验主要是学习和练习 SQL 语句的应用,以及实现数据的增删改查等操作。

通过实验,我深刻理解到数据库在现代信息系统中的重要性,同时也加深了对SQL 语言的认识和理解。

实验一:建立数据库和数据表
在此实验中,我们学会了如何使用 SQL 创建数据库和数据表,并加深了对 SQL 语言的理解。

此外还学会了如何定义主键、外键、约束和索引等。

实验二:数据查询操作
在此实验中,我们学会了如何使用基本的 SELECT 语句实现数据查询的功能,如使用WHERE 子句和 ORDER BY 子句来筛选和排序数据。

综上所述,通过本次上机实验,我深刻认识到数据库在现代信息系统中的重要性,并加深了对 SQL 语言的理解和应用。

此外,还学会了如何使用事务来保障数据的完整性和一致性,这对我今后的工作和学习都是非常有帮助的。

同时,通过实践,我也掌握了实际应用中的操作技巧和实现方法,这对我今后的实际工作也会有所帮助。

数据库上机报告

数据库上机报告

数据库实验报告实验二交互式 SQL 语言1实验报告实验三数据控制(安全性部分)实验四数据控制(完整性部分)关系模型的实体完整性在CREATE TABE 中庸PRIMARY KEY定义。

定义主码方法分为定义为列级约束条件和定义为表级约束条件两种。

CREATE TRIGGER TRIBEFORE UPDATE OR INSERT ON TABFOR EACH ROWAS BEGINIF new.col>100 AND new.col<1000 THENnew.col:=50;END IF;IF new.col>1000 THENRAISE EXCEPTION 'New values can not be more than 1000';END IF;END; 替换为:CREATE TRIGGER TRION TABFOR UPDATE,INSERTASDECLARE @col INTIF (SELECT col FROM inserted)>1000BEGINPRINT 'New values can not be more than 1000'BEGIN实验九查询优化实验内容完成情况:(注明源程序的名字)单表查询:(1)查询Student表中20岁以上学生的信息SEL ECT * FROM STUDENT WHERE Sage>20表查询(1)查询选修了2号课程的学生姓名(2)查询没有选修1号课程的学生姓名CREATE TABLE Course(CNO CHAR(7) PRIMARY KEY,CNAME VARCHAR(50),CREDIT INT)GOCREATE TABLE Student(SNO CHAR(8) PRIMARY KEY,SNAME CHAR(8),SSEX CHAR(2),SAGE INT,SDEPT VARCHAR(50))GO出现的问题:多表查询【例5】嵌套查询(表元组数少)[例5-1]查询选修了2 号课程的学生姓名。

数据库上机题

数据库上机题

(1)统计每个同学的平均分,按平均分的降序排列。
select Sno,AVG(Grade) from SC group by Sno order by Grade Desc;
(2)查询总分最高的学生的学号。
select Sno from SC GROUP BY Sno having SUM(Grade)>=ALL (
( 3)查询选修了 1 号课程并且选修了以 1 号课程为先行课的课程的学生学号。
select Sno from SC where Cno='1' and Sno in (select Sno from SC where Cno in (Select Cno from Course where Cpno='1'));
select Cno,Cname from Course where Cpno='6' and Ccredit='4';
( 2)查询选修了 1 号课程的学生学号与选修成绩不及格的学生学号的差集。
select Sno from SC where Cno='1' and Grade>=60;
认值等列级数据约束;③实现相关约束:借阅表与图书表之间、借阅表与读者表之间的外码
约束;读者性别只能是“男”或“女”的约束(通过帮助自学)。
create table Book(
Bno varchar(20) primary key,
Bclass varchar(20) unique,
Rno varchar(20),
Lentdate date not null,
primary key (Bno,Rno),

access上机试题及答案2

access上机试题及答案2

access上机试题及答案2 ACCESS上机试题及答案2一、选择题(每题2分,共10分)1. 在ACCESS数据库中,用于存储数据的基本对象是()。

A. 表B. 查询C. 报表D. 宏答案:A2. 以下哪项不是ACCESS数据库中的数据类型?()A. 日期/时间B. 文本C. 图片D. 程序答案:D3. 在ACCESS中,创建查询时,可以使用()来设置查询条件。

A. 排序和分组B. 聚合函数C. 表达式D. 所有上述选项答案:D4. 如果需要在ACCESS数据库中创建一个自动增长的主键,应该选择()数据类型。

A. 自动编号B. 长整型C. 文本D. 日期/时间答案:A5. 在ACCESS中,用于快速排序和筛选数据的工具是()。

A. 查询B. 表单C. 报表D. 排序和筛选组答案:D二、填空题(每题2分,共10分)1. 在ACCESS中,使用“表设计视图”可以定义表的______,包括字段名、数据类型和属性。

答案:结构2. 创建表之间的关系时,用于连接两个表的字段被称为______。

答案:关联字段3. 在ACCESS中,使用“交叉表查询”可以生成基于特定条件的______报表。

答案:汇总4. 为了确保数据的一致性和减少数据冗余,ACCESS数据库中应该使用______来建立数据的层次结构。

答案:表5. 表达式=IIF((字段名)="", "未知", (字段名))的作用是当字段名为______时,显示“未知”。

答案:空三、简答题(共20分)1. 请简述在ACCESS中创建表的基本步骤。

(10分)答案:在ACCESS中创建表的基本步骤如下:- 打开ACCESS数据库。

- 选择“创建”选项卡。

- 点击“表”按钮,可以选择使用“表模板”或“自定义表”。

- 如果选择自定义表,将进入“表设计视图”。

- 在“字段名称”行输入字段名,选择相应的“数据类型”。

- 可以设置字段的其他属性,如主键、索引、默认值等。

mysql上机练习题

mysql上机练习题

mysql上机练习题MySQL是一种常用的关系型数据库管理系统,广泛应用于开发和管理各种数据库。

本文将为大家提供一些MySQL上机练习题,以帮助读者巩固和提升自己的MySQL技能。

题目一:创建数据库和数据表在MySQL中创建一个名为"student"的数据库,并在该数据库中创建一个名为"score"的数据表。

数据表包括以下字段:字段名数据类型备注id int 学号name varchar 姓名chinese int 语文成绩math int 数学成绩english int 英语成绩题目二:插入数据向上述的"score"数据表中插入以下数据:学号姓名语文成绩数学成绩英语成绩1 小明 90 85 922 小红 78 92 883 小亮 85 90 95题目三:查询数据从"score"数据表中查询所有学生的姓名和数学成绩。

题目四:更新数据将学号为2的学生英语成绩修改为90。

题目五:删除数据从"score"数据表中删除学号为3的学生。

题目六:查询统计数据查询"score"数据表中语文成绩大于等于90分的学生数量。

题目七:排序数据按照数学成绩从高到低的顺序,查询"score"数据表中的所有学生信息。

题目八:连接查询创建一个名为"course"的数据表,包括以下字段:字段名数据类型备注id int 课程编号name varchar 课程名称将下列数据插入到"course"数据表中:课程编号课程名称1 语文2 数学3 英语通过连接查询,查询"score"数据表中各个学生的姓名、课程名称和成绩。

题目九:使用函数查询"score"数据表中各个学生的总成绩,按照总成绩从高到低排序。

题目十:使用子查询查询"score"数据表中成绩最高的学生姓名和各科成绩。

计算机二级access上机原题及答案

计算机二级access上机原题及答案

计算机二级考试上级原题第1题一、(1)在考生文件夹下,"Access1.mdb"数据库文件中建立表"学生",表结构如下:(2)设置"编号"字段为主键;(3)设置"年龄"字段的有效性规则为:年龄大于20并且小于35;(4)在"学生"表中输入以下2条记录:二、考生文件夹下存在一个数据库文件"Access2.mdb",里面已经设计好两个表对象"学生"和"课程"。

试按以下要求完成设计:(1)创建一个选择查询,查找并显示"姓名","性别"和"进校日期"三个字段内容,所建查询命名为"查询1"。

(2)使用查询设计视图创建一个选择查询,查找并显示性别为男,年龄大于27的学生的"姓名","年龄"和"出生地"三个字段内容,所建查询命名为"查询2"。

注意:设计此查询准则表达式时,不允许使用特殊运算符Like。

(3)创建一个选择查询,查找并显示"姓名","课程编号"和"成绩"三个字段内容,所建查询命名为"查询3"。

(4)建立"学生"和"课程"两表之间的一对一关系,并实施参照完整性。

三、考生文件夹下存在一个数据库文件"Access3.mdb",里面已经设计好表对象"学生"和查询对象"查询学生",同时还设计出以"查询学生"为数据源的报表对象"报表学生"。

试在此基础上按照以下要求补充报表设计:(1)在报表中的报表页眉节区位置添加一个标签控件,其名称为"bTitle",标题显示为"奖励基本信息表";(2)在报表的主体节区添加一个文本框控件,显示"年龄"字段值。

西安电子科技大学MySQL数据库上机2答案

西安电子科技大学MySQL数据库上机2答案

上机21、基于第一次上机创建的银行数据库,创建一个视图branch_detail,能够显示所有支行的存款客户数量、存款总额、贷款客户数量、贷款总额。

2、在account的account_number属性上建立索引,并在account表里插入大量元组,比较有无索引在查询速度上的区别。

3、创建角色银行经理branch_manager,银行经理具有插入、删除和更新branch表的权限。

4、自由练习第四章中级SQL的其他特性。

创建一个视图branch_detailcreate view branch_detail asselect *from(select branch_name as name1,count(distinct (customer_name)) as count1,sum(balance) from branch023 natural join account023 natural join depositor023group by branch_name)as deposite,(select branch_name as name2,count(distinct (customer_name)) as count2,sum(amount) from loan023 natural join borrower023 natural join branch023group by branch_name)as loanwhere name1=name2;select * from branch_detail;建立索引select * from account023;create index accountnumber_index on account023(account_number);show index from account023;创建角色银行经理branch_managercreate user 'branch_manager' identified by '1234';grant INSERT,UPDATE,DELETE on bank023.branch023 to branch_manager; show grants for branch_manager;创建自定义类型create type dollars as numeric(12,2)final;权限收回revoke insert on branch023 from branch_manager restrict;。

山东大学数据库系统SQL上机实验代码test2——test8(最新版)

山东大学数据库系统SQL上机实验代码test2——test8(最新版)

Test2(1)create table test2_01 as select sid,nameFrom pub.student pwhere not exists (select cid from pub.student_course where sid=p.sid)(2)create table test2_02 as select sid,nameFrom pub.student natural join pub.student_courseWhere cid in (select cid from pub.student_course where sid=’200900130417’)(3)create table test2_03 as select sid,nameFrom pub.student natural join pub.student_courseWhere cid in (select cid from pub.course where fcid=’300002’)(4)create table test2_04 as select sid,nameFrom pub.studentWhere sid in(select sid from pub.course ,pub .student_course where student_course.cid=course.cid and name='操作系统' )Andsid in(select sid from pub.course ,pub .student_course where student_course.cid=course.cid and name='数据结构' )(5)create table test2_05 as select student.sid,name,cast(avg(score) as numeric(5,0)) avg_score, sum (score) sum_scorefrom pub.student_course,pub.studentWhere pub.student_course.sid=pub.student.sid and age='20'group by student.sid,name(6)create table test2_06 as select cid,max(score)max_scoreFrom pub.student_courseGroup by cid(7)create table test2_07 as select sid,nameFrom pub.studentWhere name not in (select name from pub.student where name like (‘张%’) or name like (‘李%’) or name like (‘王%’)(8)create table test2_08 as select substr(name,1,1) second_name,count (*) p_countFrom pub.studentGroup by substr(name,1,1)(9)create table test2_09 as select pub.student.sid,name,scoreFrom pub.student,pub.student_courseWhere pub.student.sid=pub.student_course.sid and cid='300003'(10)create table test2_10 as select sid,cidFrom pub.student_courseWhere score is not nullTest3(1)create table test3_01 as select * from pub.Student_31delete from test3_01 where length(translate(sid,'\0123456789','\'))>0(2(create table test3_02 as select * from pub.Student_31delete from test3_02 where age<>2012-extract(year from birthday)delete from test3_03 where sex not in (select sex from test3_03 where sex='男' or sex='女' or sex=null)(4(create table test3_04 as select * from pub.Student_31delete from test3_04 where dname is null or length(dname)<3 or dname like '% %'(5(create table test3_05 as select * from pub.Student_31delete from test3_05 where length(class)>4(6(create table test3_06 as select * from pub.Student_31delete from test3_06 where length(translate(sid,'\0123456789','\'))<12Delete from test3_06 where age<>2012-extract(year from birthday)Delete from test3_06 where sex not in (select sex from test3_03 where sex='男' or sex='女' or sex=null) Delete from test3_06 where dname is null or length(dname)<3 or dname like '% %'delete from test3_06 where length(class)>4delete from test3_06 where name like '% %' or length(name)<2(7)create table test3_07 as select * from pub.Student_course_32delete from test3_07 where sid not in (select sid from pub.student)(8)create table test3_08 as select * from pub.Student_course_32delete from test3_08 where (cid,tid) not in (select cid,tid from pub.teacher_course)(9)create table test3_09 as select * from pub.Student_course_32delete from test3_09 where score <0 or score >100(10)create table test3_10 as select * from pub.Student_course_32delete from test3_10 where score <0 or score >100delete from test3_10 where sid not in (select sid from pub.student)delete from test3_10 where cid not in (select cid from pub.course)delete from test3_10 where tid not in (select tid from pub.teacher)delete from test3_10 where (cid,tid) not in (select cid,tid from pub.teacher_course)Test 4(1)create table test4_01 as select * from pub.student_41alter table test4_01 add sum_score numberupdate test4_01 set sum_score = (select sum (score) from pub.student_course where test4_01.sid= pub.student_course.sid)(2)create table test4_02 as select * from pub.student_41alter table test4_02 add avg_score numeric(5,1)update test4_02 set avg_score = (select avg (score) from pub.student_course where test4_02.sid= pub.student_course.sid)(3)create table test4_03 as select * from pub.student_41alter table test4_03 add sum_credit intcreate table t4_031 as select * from pub.course natural join pub.student_courseupdate t4_031 set credit=0 where score<60update test4_03 set sum_credit = (select sum(credit) from t4_031 where test4_03.sid=t4_031.sid) (4)create table test4_04 as select * from pub.student_41update test4_04 set dname=(select did from pub.department where pub.department.dname=test4_04.dname)where dname in (select dname from pub.department)alter table test4_05 add sum_score numberalter table test4_05 add avg_score numeric(5,1)alter table test4_05 add sum_credit intalter table test4_05 add did varchar(2)update test4_05 set sum_score =(select sum (score) from pub.student_course where test4_05.sid= pub.student_course.sid)update test4_05 set avg_score = (select avg (score) from pub.student_course where test4_05.sid= pub.student_course.sid)update test4_05 set sum_credit = (select sum(credit) from t4_031 where test4_05.sid=t4_031.sid) create table a1 as select * from pub.departmentinsert into a1 select * from pub.department_41 where dname not in (select distinct dname from pub.department )(6)create table test4_06 as select * from pub.student_42update test4_06 set name =replace(name,' ','')(7)create table test4_07 as select * from pub.student_42update test4_07 set sex =replace(sex,'性','')update test4_07 set sex =replace(sex,' ','')(8)create table test4_08 as select * from pub.student_42update test4_08 set class=replace(class,'级','')update test4_08 set class=replace(class,' ','')(9)create table test4_09 as select * from pub.student_42update test4_09 set age=2012-extract(year from birthday) where age is null(10)create table test4_10 as select * from pub.student_42update test4_10 set name=replace(name,' ','')update test4_10 set dname=replace(dname,' ','')update test4_10 set sex=replace(sex,'性','')update test4_10 set sex=replace(sex,' ','')update test4_10 set class=replace(class,'级','')update test4_10 set class=replace(class,' ','')update test4_10 set age=2012-extract(year from birthday) where age is nullTest5create table test5_10 (test varchar(20),age numeric (3))insert into test5_10values ('结果1',88),insert into test5_10values ('结果2',90),insert into test5_10values ('结果3',90),insert into test5_10values ('结果4',86),insert into test5_10values ('结果5',90),insert into test5_10values ('结果6',90),insert into test5_10values ('结果7',86),insert into test5_10values ('结果8',86),insert into test5_10values ('结果9',76),insert into test5_10values ('结果10',86)Test6(1) create view test6_01 as select sid,name,dname from pub.student where age<20 and dname='物理学院'order by sid(2)create view test6_02 as select pub.student.sid,name,sum(score)sum_score from pub.student,pub.student_course where pub.student.sid=pub.student_course.sid and class='2009' and dname='软件学院' group by pub.student.sid,(3)create view test6_03 as select pub.student.sid,,pub.student_course.score from pub.student,pub.student_course where pub.student.sid=pub.student_course.sid and class='2010' and dname='计算机科学与技术学院' and pub.student_course.cid=(select cid from pub.course where ='操作系统')(4)create view test6_04 as select pub.student.sid, from pub.student,pub.student_course where pub.student.sid=pub.student_course.sid and score>90 and pub.student_course.cid=(select cid from pub.course where ='数据库系统')(5)create view test6_05 as select pub.student_course.sid,pub.student_course.cid,score, from pub.course,pub.student_course,pub.student where pub.course.cid=pub.student_course.cid and pub.student_course.sid=pub.student.sid and ='李龙'(6)create view test6_06 as select sid,name from pub.student where sid in (select sid from pub.student_course group by sid having count(*) >=(select count(*) from pub.course ))(7)create view test6_07 as select sid,name from pub.student where sid in (select sid from pub.student_course where score>=60 group by sid having count(*) >=(select count(*) from pub.course ))(8)create view test6_08 as select a1.cid, from pub.course a1,pub.course a2 where a1.fcid =a2.cid and a2.credit=2(9)create view test6_09 as select pub.student.sid, ,sum(credit) sum_credit from pub.student, pub.student_course,pub.course where pub.student.sid = pub.student_course.sid and pub.student_course.cid=pub.course.cid and class='2010' and dname='化学与化工学院' and score>=60 group by pub.student.sid, (10)create view test6_10 as select a1.cid, from pub.course a1,pub.course a2 where a1.fcid =a2.cid and a2.fcid is not nullTest7(1)create table a as select (substr(name,2)) first_name from pub.student create table test7_01 as select first_name,(count(*)) frequency from a group by first_name(2)Union和Union All的区别之一在于对重复结果的处理。

上机练习任务-创建与修改数据库

上机练习任务-创建与修改数据库

上机训练任务-创建与修改数据库一、训练任务要求:1.分别使用SSMS和T-SQL语句来创建和管理数据库。

2.请同学们将本次训练任务的所有SQL语句答案写在课堂笔记本上,需要借助SQL Server管理平台来完成的要逐项练习。

3.每个同学单独完成本次的上机任务,通过T-SQL语句的编辑、分析、执行,自行验证是否正确。

二、训练目的:1.通过数据库的创建和管理,来练习SSMS图形界面工具的使用,并能够使用T-SQL来完成数据库的创建和管理,使同学们进一步了解和掌握T-SQL语句。

2.掌握分离数据库的方法。

3.掌握附加数据库的方法。

三、关键语句:CREATE DATABASE 数据库名(请同学们完善此处内容)四、训练任务:(一)课本实践任务复习:训练任务一:使用SSMS完成教材上第51页[例3.2],第52页[例3.5],第56页[例3.9]。

训练任务二:使用T-SQL语句完成教材上第69页[例3.20,例3.21],第71页[例3.22,例3.23,例3.24],。

要求:只看题目要求,自己来写T-SQL语句。

(二)拓展实践任务训练:训练任务一:在SQL Server管理平台中创建数据库。

1.创建班级管理数据库的名称为classmgm。

2.选择classmgm数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”“文件”“文件组”“选项”和“权限”和“扩展属性”等页面。

3.打开classmgm数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改classmgm数据文件的初始大小为4MB,指定“最大文件大小”为30MB。

修改classmgm数据库的日志文件的大小,在每次填满时自动递增10%。

4.存储路径自定。

训练任务二:请使用T-SQL语句完成本任务:在查询编辑器中使用T-SQL 语句ALTER DATABASE修改班级管理数据库classmgm的设置,指定数据文件初始大小为5MB,最大文件大小为500MB,自动递增大小为5MB。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 SQL的数据定义功能
实验目的
通过在MS SQL SERVER 2000上练习创建、删除、修改基本表以及建立、删除索引,理解和学习使用SQL的数据定义功能。

知识点拨:
1.SQL的功能
2.定义功能中定义的对象;
3.数据定义功能的语法格式:
a)基本表的建立、修改与删除:
b)索引的建立与删除:
4.应该注意的问题
实验内容
1.了解SQL SERVER 2000查询分析器的基本框架及用法;
2.学会使用查询分析器创建、删除、修改基本表;
3.学会使用查询分析器建立和删除索引
实验步骤
1.选择自己上次实验创建的数据库:
注意:每次使用查询分析器之前都应先设置当前数据库,在查询分析器中设置当前数据库的两种方法:
①在工具栏的数据库复选框中选中欲设置为当前数据库的数据库名,如:JX;
②使用SQL语句:USE JX
2.基本表的创建、修改和删除,以下内容请使用查询分析器完成;:
a)删除上次创建的SC表,并在查询分析器中使用SQL语句重新创建,主码为
(Sno,Cno,Tno);
1.DROP TABLE SC
2.CREATE TABLE SC
(Sno CHAR(5),Cno CHAR(3),Tno INT,Grade SMALLINT,
PRIMARY KEY (Sno,Cno,Tno) );
b)修改教师信息表Teacher中教工号字段类型为CHAR(4);
ALTER TABLE Teacher ALTER COLUMN Tno CHAR(4);
c)删除学生信息表中的parent字段;
LTER TABLE Student DROP COLUMN parent
d)在学生表中增加总学分(Total)字段,类型为Smallint;
ALTER TABLE Student ADD Total Smallint
3.索引的创建和删除:请使用企业管理器和查询分析器练习。

a)检查以上几张表是否已经建立了索引?如果有,是什么索引?
没有
b)在Course表的Cno字段创建聚集索引Index_Cno,并检查数据的排列顺序;CREATE CLUSTERED Index_Cno ON Course (Cno) 降序
c)在Student表的Sname列上创建降序唯一索引Index_Sname,并检查数据的排列
顺序;
CREATE UNIQUE Index_Sname ON Student (Sname)
d)在Teacher表的“姓名”和“系名”字段上创建一个组合索引Index_TX
CREATE UNIQUE Index_TX ON Teacher ( Tname ,Tdept )
e)在SC表的Grade字段上创建一个降序索引Index_Grade;
CREATE UNIQUE INDEX_Grade ON SC (Gradet )
f)删除创建的索引Index_TX。

DROP INDEX teacher.index_TX
4.使用企业管理器定义JX数据库表的约束:
a)对前三张表建立主键约束。

1)..ALTER TABLE Student
( ......
PRIMARY KEY(Sno)
)
2).ALTER TABLE Teacher
( ....
PRIMARY KEY(Tno)
)
3).ALTER TABLE Course
( ...
PRIMARY KEY(Cno)
)
b)在SC表的Sno字段创建外键约束,引用Student表的Sno字段;在SC表的Cno
字段创建外键约束,引用Course表的Cno字段;在SC表的Tno字段创建外键约束,引用Teacher表的教工号字段。

ALTER TABLE ADD FOREIGN KEY (Sno) REFERNCES Student (Sno)
ALTER TABLE ADD FOREIGN KEY (Cno) REFERNCES Course (Cno)
ALTER TABLE ADD FOREIGN KEY (Tno) REFERNCES Teacher (Tno)
c)在Teacher表上创建Unique约束Unique_TNP,不允许出现姓名和联系电话完
全一样的教师记录。

ALTER TABLE Teacher ADD CONSTRAINT UNIQUE_TNP unique (Tname,Tphone) d)在Student表中创建Default约束Df_Sbirth,当用户插入学生记录的时候,如果
没有提供Sbirth字段的值,那么获取系统当前的日期作为默认值(使用系统函数getdate())。

e)在SC表中创建Check约束Ck_Grade,限制用户在插入或更改成绩时,不能
超过0-100的范围。

ALTER TABLE SC ADD CONSTRAINT CK_Grade CHECK (Grade<100 or Grade>0)。

相关文档
最新文档