数据库上机测试
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. 更新表中某个学生的信息。
数据库上机实验4、5

实验四:一、实习目的:掌握SELECT的基本使用格式,能使用SQL Server对表作简单的查询。
二、准备:1.复习3.4节中SELECT的基本使用格式;2.复习SQL中五种集函数:AVG、SUM、MAX、MIN、COUNT;3.完成习题3第12题中各项操作的SQL语句。
三、实习内容:1.验证习题3第12题中各项操作的SQL语句。
2.验证以下语句是否正确:SELECT eno,basepay,serviceFROM salaryWHERE basepay<AVG(basepay);四、实验报告:1.1)找出所有被学生选修了的课程号:select distinct Cno 课程号from Grade2)找出01311班女生的个人信息:select * from Studentwhere Clno='01311' and Ssex='女'3)找出01311班和01312班的学生姓名性别出生年份select sname 学生姓名,ssex 性别,2016-sage 出生年份from Studentwhere Clno='01311' or Clno='01312'4)找出所有姓李的学生的个人信息select * from Studentwhere Sname like '李%'5)找出李勇所在班级的学生人数select COUNT(*) from Studentwhere Clno in(select Clno from Studentwhere Sname='李勇')6)找出课程名为操作系统的平均成绩最高分最低分select AVG(Gmark) 平均成绩,MAX(Gmark) 最高分,MIN(Gmark) 最低分from Gradewhere Cno in(select Cno from Coursewhere Cname='操作系统')7)选修了课程的学生人数;select COUNT(distinct sno) 学生人数fromGrade8)选修了操作系统的学生人数:select COUNT(distinct sno) 学生人数from Gradewhere Cno in(select Cno from Coursewhere Cname='操作系统')9)找出2000级计算机软件班的成绩为空的学生姓名:2.错误。
重庆工商大学计算机专业数据库上机实验考试题

学号____________ 姓名_____________数据库原理实验考试题1写出创建名为bankDB数据库的SQL脚本,要求:(1)主要数据文件逻辑名称为bankdb,物理文件名为bankdb.mdf,初始大小为3MB,增量为10%,不限制增长。
(2)事务日志文件逻辑名称为bankdb_log,物理文件名为bankdb_log.ldf,初始大小为1MB,增量为1MB,最大为5MB.(3)所有文件放在“D: \练习”。
2 写SQL,要求在以上数据库中建立数据表两个:储户账户表t_account和存取款流水账表bank_Flow_water。
同时建立主键和外键(1)储户账户表t_account包含字段有:accountId varchar(50) (账户号),password varchar(20)(账户密码), Balance Numeric(20,2) (余额)和branchId int (分支网点编号),建账日期 builddate。
(2)存取款流水账表bank_Flow_water包含字段有:flowwaterID /*自动增加的流水号,初始号为500000000,以后每次加1*/,accountId /*储户账号 */saving_typ char(8) , /*储蓄种类*/Income numeric(15, 2), /*存款金额*/Expenditure numeric(15, 2), /*取款金额 */Interest Numeric(11,2), /*利息支出*/Balance Numeric(20,2), /*账户余额*/operator int, /*操作员号*/operat_date /*操作日期时间*/3.写SQL, 建立银行存款的存储过程bank_incom,要求该过程能够将储户的账号、存款种类(活期存款,一年期定期存款,两年期定期存款等)和存款金额等各种相关信息记录到存取款流水账表中,并且计算该账户的余额Balance,同时更新该账户的储户账户表t_account中的账户余额Balance。
数据库上机考试试题及答案

1下列说法中正确的是:( D )A 、 SQL 中局部变量可以不声明就使用B 、 SQL 中全局变量必须先声明再使用C 、 SQL 中所有变量都必须先声明后使用D 、 SQL 中只有局部变量先声明后使用;全局变量是由系统提供的用户不能自己建立。
2.哪个关键字用于测试跟随的子查询中的行是否存在( B )。
A.MOV B.EXISTSC.UNION D.HAVING3 .下列哪些语句用于创建存储过程( A )?A、CREATE PROCEDUREB、CREATE TABLEC、DROP PROCEDURED、其他5.在SQL中,SELECT语句的“SELECT DISTINCT”表示查询结果中 ( C )。
A.属性名都不相同B.去掉了重复的列C.行都不相同D.属性值都不相同语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句INSERT、DELETE、UPDATA实现下列哪类功___A_____。
A. 数据查询B. 数据操纵C. 数据定义D. 数据控制Server 2000 采用的身份验证模式有( D )。
(A)仅Windows身份验证模式(B)仅SQL Server身份验证模式(C)仅混合模式(D)Windows身份验证模式和混合模式Server 2000 企业版可以安装在操作系统上。
( C )(A)Microsoft Windows 98(B)Microsoft Windows 2000 Professional(C)Microsoft Windows 2000 Server(D)Microsoft Windows XPServer是一个( C )的数据库系统。
(A)网状型(B)层次型(C)关系型(D)以上都不是语言中,删除一个视图的命令是( B )。
A. DELETEB. DROPC. CLEARD. REMOVE语言中,删除记录的命令是( A )。
A. DELETEB. DROPC. CLEARD. REMOVE14.以下触发器是当对[employee表]进行( D )操作时触发。
数据库上机实验报告

数据库实验(第三次)题目1 实验内容:1. 检索上海产的零件的工程名称;2. 检索供应工程J1零件P1的供应商号SNO;3. 检索供应工程J1零件为红色的供应商号SNO;4. 检索没有使用天津生产的红色零件的工程号JNO;5. 检索至少用了供应商S1所供应的全部零件的工程号JNO;6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数量QTY降序排列。
1select jnamefrom jwhere jno in(select jnofrom spjwhere sno in(select snofrom swhere city ='上海'));2select snofrom spjwhere jno ='j1'and pno ='p1'3selectdistinct snofrom spjwhere pno in(select pnofrom pwhere color='红'and pno in (select pnofrom spjwhere jno ='j1'));4selectdistinct jnofrom spjwhere pno notin(select pnofrom pwhere color ='红'and pno in (select pnofrom spjwhere sno in(select snofrom swhere city ='天津')))5select jnofrom spjwhere sno ='s1'6select jno,qtyfrom spjwhere pno ='p1'orderby qty desc四﹑思考题1. 如何提高数据查询和连接速度。
建立视图2. 试比较连接查询和嵌套查询有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比嵌套查询高出很多当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。
数据库上机实验

实验一数据表的建立一、实验目的:熟悉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所示。
计算机三级数据库技术(上机操作)机试模拟试卷36(题后含答案及解析)

计算机三级数据库技术(上机操作)机试模拟试卷36(题后含答案及解析)全部题型 2. 程序设计题程序设计题1.已知数据文件in.dat中存有300个四位数,并已调用读函数readl)at( )把这些数存入数组a中,请编写函数jsValue( ),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,冉把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。
最后nmin( )函数调用写函数writeDat( )把数组b中的数输出到文件out.dat中。
例如:7153,7+1=5+3,则该数满足条件存人数组b中,且个数cnt=cht+1。
8129,8+11=2+9,则该数不满足条件.忽略。
【试题程序】#include<stdio.h> int at3003.br3001,cnt=0;void readDat( );void writeDat( );jsValue( ) { } main( ) { int i;readDat( );jsValue( );writeDat( );printf(“cnt=%d\n”,cnt);for(i=0;i<ent;i++) printf(“b[%d]=%d\n”.i’b[i]);} void readDat( ) { FILE*fp; int i;fp=fopen(“in.dat”,“r”); for(i=0;i<300;i++) fscanf(fp,“%d,”,&a[i]);felose(fp); } void writeDat( ){FILE*fp;int i;fp=fopen(“out.dat”,“W”);fprintf(fp,“%d\n”,cnt); for(i=0;i<cnt;i++) fprintf(fp.”%d\n”,b[i]);fclose(fp);} 正确答案:jsValue( ){ int i,j;/*定义变量*/int a1,a2,a3,a4; int temp;for(i=0;i<300;i++) {a1=a[i]%10;/*数位分解*/a2=a[i]%100/10; a3=a[i]%1000/100;a4=a[i]/1000;if(a4+a3==a2+a1) /*判断条件*/b[cnt++]=a[i];} for(i=0;i<cnt 一1;i++) /*选择法排序*/for(j=i+1;j<cnt;j++) if(b[i]<b[j]) {temp=b[i]; b[i]=brj]; b[j]=temp; }}。
数据库上机实验题目和答案

数据库上机实验题目和答案试用SQL的查询语句表达下列查询:1.检索王丽同学所学课程的课程号和课程名。
select Cno ,Cname from c where Cno in(select cno from sc where sno in (select sno from s where sname='王丽' ))2.检索年龄大于23岁的男学生的学号和姓名。
select sno,sname from swhere sex='男' and age>233.检索‘c01’课程中一门课程的女学生姓名select sname from swhere sex='女' and sno in(select sno from sc where cno='c01')4.检索s01同学不学的课程的课程号。
select cno from cwhere cno not in (select cno from sc where sno ='s01')5.检索至少选修两门课程的学生学号。
select sc.sno from s,scwhere s.sno=sc.snogroup by sc.snohaving count(/doc/1411529677.html,o)>=26.每个学生选修的课程门数。
解法一:select so.sno sno,/doc/1411529677.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno ) so,swhere s.sno=so.sno解法二:select sc.sno sno,s.sname,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno,sname7.求选修C4课程的学生的平均分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、用Transact-SQL语句表示下列操作.在学生-课程库中实现其数据查询操作:1、向student表中增加记录:(200515026,王婧婧,女,21,cs);insert into student values('200515026','王婧婧',21,'女','cs');select*from student;2、删除数据表student中无系别的学生记录;delete from student where sdept is null;select*from student;3、显示选修课程数大于3的各个学生的选修课程数;select sno,count(*)as'选修课程数'from sc group by sno having count(*)>3;4、显示选修各科课程的及格人数;select cno,count(*)from sc where crade >=60 group by cno;5、查询‘C1’课程的成绩高于70的学生姓名;select sname from sc join student on sc.sno = student.sno where cno='c1'and crade > 70;6、为student表创建一个基于sname(姓名)的降序排列的聚簇索引stusname;create index stusname on student(sname desc);7、为学生—课程数据库中的student,course和sc三个表建立索引。
其中student按学号升序建唯一索引,course按课程号升序建唯一索引,sc按学号和课程号降序建唯一索引,索引名称分别为stusno,coucno,scno;create unique index stusno on student(sno asc);create unique index couccno on course(cno asc);create unique index scno on sc(sno asc,cno desc);8、删除student表中的stusname索引;drop index student.stusname;9、创建信息系男学生信息视图stu-is,包括学生的学号、姓名及年龄,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。
create view stu_is asselect sno,sname,sage from student WITH CHECK OPTION;10、向视图stu-is中插入一个新的学生记录,学号为200515027,姓名为王唔,成绩为60;insert into stu_is values('200515027','王唔',20);--delete from stu_is where sname='王唔';select*from stu_is;11、将视图stu-is中学号为200515027的学生成绩改为25.update stu_is set sage=25 where sno='200515027';select*from stu_is;二、创建教师授课管理数据库JSSK,并完成以下内容:在数据库JSSK中创建下列三张表:create database JSSKon(name='DB_JSSK_Data',filename='F:\SqlService Database\DB_JSSK_Data.mdf' )log on(name='DB_JSSK_Log',filename='F:\SqlService Database\DB_JSSK_Log.lDF' )gouse JSSKgocreate table teachers (Tno char(7)primary key,Tname char(10)not null,Tsex char(2)check(Tsex in('男','女'))default'男',Birthday datetime,Dept char(20),Sid char(18))gocreate table lessons (Cno char(10)primary key,Cname char(20)not null,Credit int,property char(10))gocreate table shouke (Tno char(7),Cno char(10),Hours int,primary key(Tno,Cno),foreign key(Tno)references teachers(Tno),foreign key(Cno)references lessons(Cno))Go本小测的代码/*一、用Transact-SQL语句表示下列操作.在学生-课程库中实现其数据查询操作:1、向student表中增加记录:(,王婧婧,女,,cs);2、删除数据表student中无系别的学生记录;3、显示选修课程数大于的各个学生的选修课程数;4、显示选修各科课程的及格人数;5、查询‘C1’课程的成绩高于的学生姓名;6、为student表创建一个基于sname(姓名)的降序排列的聚簇索引stusname;7、为学生—课程数据库中的student,course和sc三个表建立索引。
其中student按学号升序建唯一索引,course按课程号升序建唯一索引,sc按学号和课程号降序建唯一索引,索引名称分别为stusno,coucno,scno;8、删除student表中的stusname索引;9、创建信息系男学生信息视图stu-is,包括学生的学号、姓名及年龄,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。
10、向视图stu-is中插入一个新的学生记录,学号为,姓名为王唔,成绩为;11、将视图stu-is中学号为的学生成绩改为.二、创建教师授课管理数据库JSSK,并完成以下内容:在数据库JSSK中创建下列三张表:*/use DB_BookAndReadergo--1、向student表中增加记录:(,王婧婧,女,,cs);insert into student values('200515027','王婧婧',21,'女',cs);select*from student;--2、删除数据表student中无系别的学生记录;delete from student where sdept is null;select*from student;--3、显示选修课程数大于的各个学生的选修课程数;select*from course;select*from sc;select sno,count(*)as'选修课程数'from sc group by sno having count(*)>3;--4、显示选修各科课程的及格人数;select cno,count(*)from sc where crade >=60 group by cno;--5、查询‘C1’课程的成绩高于的学生姓名;select sname from sc join student on sc.sno = student.sno where cno='c1'and crade > 70;--6、为student表创建一个基于sname(姓名)的降序排列的聚簇索引stusname;create index stusname on student(sname desc);--drop index stusname;--7、为学生—课程数据库中的student,course和sc三个表建立索引。
其中student按学号升序建唯一索引,--course按课程号升序建唯一索引,sc按学号和课程号降序建唯一索引,索引名称分别为stusno,coucno,scno;create unique index stusno on student(sno asc);create unique index couccno on course(cno asc);create unique index scno on sc(sno asc,cno desc);--8、删除student表中的stusname索引;drop index student.stusname;--9、创建信息系男学生信息视图stu-is,包括学生的学号、姓名及年龄,--并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。
create view stu_is asselect sno,sname,sage from student WITH CHECK OPTION;--10、向视图stu-is中插入一个新的学生记录,学号为,姓名为王唔,成绩为;insert into stu_is values('200515027','王唔',20);--delete from stu_is where sname='王唔';select*from stu_is;--11、将视图stu-is中学号为的学生成绩改为.update stu_is set sage=25 where sno='200515027';select*from stu_is;/*二、创建教师授课管理数据库JSSK,并完成以下内容:在数据库JSSK中创建下列三张表:*/create database JSSKon(name='DB_JSSK_Data',filename='F:\SqlService Database\DB_JSSK_Data.mdf' )log on(name='DB_JSSK_Log',filename='F:\SqlService Database\DB_JSSK_Log.lDF'- )gouse JSSKgocreate table teachers (Tno char(7)primary key,Tname char(10)not null,Tsex char(2)check(Tsex in('男','女'))default'男',Birthday datetime,Dept char(20),Sid char(18))gocreate table lessons (Cno char(10)primary key,Cname char(20)not null,Credit int,property char(10))gocreate table shouke (Tno char(7),Cno char(10),Hours int,primary key(Tno,Cno),foreign key(Tno)references teachers(Tno),foreign key(Cno)references lessons(Cno) )go。