文档库 最新最全的文档下载
当前位置:文档库 › mysql数据库实验答案

mysql数据库实验答案

mysql数据库实验答案
mysql数据库实验答案

实验一创建、修改数据库和表结构

1、用create建立教学数据库的五个基本表:

(1)学生表(学号,姓名,性别,年龄),student((Sno,sname,ssex,sage) ;(2)课程表(课程号,课程名,学分),Course (Cno, Cname, credit) ;

(3)选课表(学号,课程号,成绩),SC (Sno,, Cno, grade ) ;

(4) 教师表(教师号,姓名,性别,出生年月,系部,职称,地址),

T(Tno,Tname,ssex,birthday,dept,title,address) ;

(5) 工资表(教师号,基本工资,职务工资,合计),Salary(Tno,jbgz,zwgz,hj);

Create Database Student default character set utf8 default COLLATE utf8_bin;

Use Student;

Create Table Student(

SNo char(20) primary key,

SName char(20) ,

SSex char(4) default '男',

SAge int

) ENGINE=InnoDB;

Create Table Course(

CNo c har(20) primary key,

CName char(20) NOT NULL,

CRedit float

) ENGINE=InnoDB;

Create Table SC(

SNo char(20) NOT NULL,

CNo c har(20) NOT NULL,

Grade float,

Primary Key(SNo, CNo),

Foreign Key(SNo) References Student(SNo) On Delete Cascade,

Foreign Key(CNo) References Course(CNo)

)ENGINE=InnoD B;

Create Table T(

TNo char(20) Primary Key,

TName char(20) NOT NULL,

TSex char(4) default '男',

birthday DateTime,

dept char(20),

title char(20),

address char(20)

)ENGINE=InnoDB;

Create Table Salary(

TNo char(20) NOT NULL,

jbgz float,

zwgz float,

hj float,

Foreign Key(TNo) References T(TNo) On Delete Cascade

)ENGINE=InnoDB;

2、用alter修改基本表

(1)在已存在的学生表student中增加一个sdept(系)的新的属性列;

alter table Student add Dept char(20);

(2)将学生表student中sname属性列的数据类型修改为变长字符串varchar(10)。

alter able Student modify colum sname varchar(10)

3、建立一个临时表,然后将其删除

Create Table temp (

ANo c har(20) NOT NULL,B float, C char(10) )

Drop table temp

实验二建立与删除索引

1、用create index在学生表student的学号sno上建立聚簇索引。

Create Clustered Index SNo_Index On Student(SNo);

2、在学生表student中,为姓名sname建立非聚簇索引。

Create Index SName_Index On Student(SName);

3、在课程表的课程号Cno上建立唯一索引。

Create Unique Index CNo_Index On Course(CNo);

4、在选课表的学号sno、成绩Grade上建立复合索引,要求学号为升序,学号相同时成绩为

降序。

Create Index SCNo_Index On SC(SNo ASC, Grade DESC);

5、用drop删除学生表student的索引。

Drop Index Student.SNo_Index;

6、增加学生表student中姓名唯一约束。

Alter Table Student Add Unique(SName);

7、增加学生表student中性别‘男’、‘女’唯一约束。

Alter Table Student Add Constraint:SSex check(SSex = '男' or SSex = '女');

8、增加学生表student中年龄18~25岁约束。

Alter Table Student Add Constraint:SAge check(SAge >= 18 And SAge <= 25);

9、增加选课表SC中学号sno的外码约束。

Alter Table SC Add Foreign Key(SNo) references Student(SNo);

-

实验三数据的插入、更新及删除操作

1、用insert输入数据。

学生表student的数据

Insert Into Student Values('991201', '张三', '男', 22, '计算机科学与技术系');

Insert Into Student Values('991202', '李四', '男', 21, '信息科学系');

Insert Into Student Values('991101', '王五', '男', 23, '数理系');

Insert Into Student Values('991102', '陈六', '男', 19, '计算机科学与技术系');

Insert Into Student Values('991103', '吴七', '女', 24, '数理系');

Insert Into Student Values('000101', '刘八', '女', 22, '信息科学系');

课程表course的数据

Insert Into Course Values('1', '数学', 5);

Insert Into Course Values('2', '数据结构', 4);

Insert Into Course Values('3', '程序设计', 2);

Insert Into Course Values('4', '数据库原理', 3);

Insert Into Course Values('5', '操作系统', 3);

选课表SC的数据

Insert Into SC Values('991201', '1', 90);

Insert Into SC Values('991201', '5', 80);

Insert Into SC Values('991201', '3', 85);

Insert Into SC Values('991201', '4', 90);

Insert Into SC Values('991102', '1', 85);

Insert Into SC Values('991102', '2', 98);

Insert Into SC Values('000101', '2', 91);

基本表T的数据

Insert Into T Values('0001', '张三', '男', '1968-10-10', '信息科学系', '副教授', '湘潭');

Insert Into T Values('0002', '李四', '女', '1956-11-10', '信息科学系', '教授', '长沙');

Insert Into T Values('1001', '王五', '男', '1973-07-20', '计算机科学与技术系', '讲师', '湘潭');

Insert Into T Values('1008', '陈六', '男', '1970-08-20', '计算机科学与技术系', '副教授', '北京');

基本表Salary的数据

Insert Into Salary Values('0001', 1000, 300, 1300);

Insert Into Salary Values('0002', 1500, 500, 2000);

Insert Into Salary Values('1001', 800, 200, 1000);*/

2、用delete删除数据记录

(1)删除教师表T中教师号为0001的元组。

(2)删除教师表T中的全部数据。

update t set birthday='1961-10-04' where Tno ='0001'

Delete From T;

3、用update更新数据记录

(1)把0001号教师的基本工资加100。

(2)把所有教师的基本工资都加100。

Update Salary Set jbgz = jbgz + 100 Where TNo = '0001'

Update Salary Set jbgz = jbgz + 100

实验四数据的查询

1、简单查询,用select检索

(1)查询所有学生的基本情况。

select * from student;

(2)查询教师每月应交纳的个人所得税。

select hj*0.005 as monthshui from Salary;

(3)查询张三与李四两位同学的基本情况。

select * from student where sname='张三' or sname='李四';

(4)查询9911班学生的基本信息(规定学生学号的前四位是班级号)。

select * from student where sno like '9911%';

(5)查询所有年龄在20岁以下的学生姓名及其年龄。

select sname,sage from student where sage<20;

(6)查询选修了2门以上课程的学生学号。

select sno from SC group by sno

having count(*)>2;

2、多表查询,用select检索

(1)查询教师的收入情况,包括教师号、姓名及月总收入。

select T.Tno,Tname, hj //不能写成select Tno,因为Tno不明确

from T,Salary

where T.Tno=Salary.Tno;

(2)查询每个学生的学号、姓名、选修课程及成绩。

select student.sno,sname,cno,grade

from student,sc where student.sno=sc.sno;

(3)查询每一门课的间接先修课。

select https://www.wendangku.net/doc/9f5600924.html,o AS 课程号,CB.PreCourse AS 间接先修课号

from course CA,course CB

where CA.PreCourse=https://www.wendangku.net/doc/9f5600924.html,o and CB.PreCourse is not null;

(4)查询有相同地址的两位教师的信息。

select *from T Tx

where Tx.address in (select address

from T Ty where Tx.Tname<>Ty.Tname);

select * from T Tx, T Ty where Tx.. address=Ty. Address and Tx.Tname<>Ty.Tname (5)查询选修2号课程且成绩在90分以上的所有学生。

select * from student,SC

where student.sno=SC.sno and https://www.wendangku.net/doc/9f5600924.html,o='2' and SC.grade>90;

(6)查询与王五在同一个系学习的学生。

select *

from student

where sdept=(select sdept

from student where sname='王五');

实验五视图

1、建立男学生的视图,属性包括学号、姓名、选修课程名和成绩。

create view boystudent_view

as select student.sno,sname,cno,grade

from student,SC

where student.ssex=’男’ and student.sno=SC. sno;

2、在男学生视图中查询平均成绩大于80分的学生学号与姓名。

select sno,sname

from boystudent_view

group by sno,sname

having AVG(grade)>80

3、建立信息系选修了1号课程的学生的视图。

create view xinxi_view1

as select student.sno,sname,ssex,sage

from student,SC

where student.sdept='信息' and student.sno=SC.sno and https://www.wendangku.net/doc/9f5600924.html,o='1'

4、建立信息系选修了1号课程且成绩在90分以上的学生的视图。

create view xinxi_view2

as select student.sno,sname,sage,ssex

from student,SC

where student.sdept='信息' and student.sno=SC.sno and https://www.wendangku.net/doc/9f5600924.html,o='1' and SC.grade>90 5、建立计算机系选修了2号课程的学生的视图。

create view jisuanji_view

as select student.sno,sname,sage,ssex

from student,SC

where student.sdept='计算机' and student.sno=SC.sno and https://www.wendangku.net/doc/9f5600924.html,o='2'

6、建立一个学生出生年份的视图。

create view year_view

as select student.sno,sname,2007-sage as birthday

from student

7、建立一个计算机系学生的视图,并要求在进行修改、插入操作时,仍然要确保视图

只有计算机系的学生。

create view jisuanji2_view

as select student.sno,sname,sage,ssex

from student

where sdept='计算机'

with check option

8、向学生视图中插入一条新记录(951101,钱进,男,20)

create view student_view1

as select sno,sname,ssex,sage

from student;

insert into student_view1 values('951101','钱进','男',20)

9、将学生视图中学号为991101的学生姓名改为“刘平平”。

update student_view1

set sname='刘平平'

where sno='991101'

10、删除计算机系视图中学号为991201的记录。

delete

from jisuanji2_view

where sno='991201'

11、删除学生出生年份的视图。

drop view year_view;

实验六集合函数的应用

1、使用select语句查询

(1)9911班学生的人数和平均成绩(规定学生学号的前四位是班级号)

SELECT COUNT(sno) as 总人数,A VG(sc.grade)AS 平均分FROM sc WHERE sno like ‘9912%’

(2)每个学生的学号和相应的平均成绩

SELECT sno, AVG(grade) FROM,sc

GROUP BY student.sno

(3)成绩大于90分的学生学号

SELECT sno,MAX(sc.grade) as maxgrade FROM sc

GROUP BY sno

HAVING MAX(grade)>90

(4)月工资大于平均工资的教师号

SELECT TNo FROM Salary

WHERE hj>=( SELECT A VG(hj)

from Salary )

2、实验完成后,撤消建立的基本表和视图。

实验七创建、执行、修改和删除存储过程

1、建立查询计算机系女学生的存储过程。

Use student;

CREATE PROCEDURE SELECT_WOMAN()

BEGIN

SELECT * FROM student where ssex='女';

end;

call select_wanman();

2、定义一个存储过程不带参数,作用是查询选修了课程学生的学号,并执行这个存储过程。use student;

Create procedure numofsc()

BEGIN

select sno from SC group by sno

having count(*)>0;

End;

call numofsc();

3、定义一个带输出参数的存储过程,作用是查询Student表中的学生个数,并赋值给输出参数, 执行该存储过程,同时通过输出参数来输出学生个数。

?CREATE PROCEDURE proc1(OUT s int)

?BEGIN

SELECT COUNT(*) INTO s FROM student;

END;

执行CALL proc1 ( @p0 );

SELECT @p0 AS `学生人数`;

4、定义一个带输出参数和输出参数的存储过程,执行该存储过程,通过输入参数学号,查到到姓名,同时输入姓名,。

use student;

Create procedure getnamebysno(in xh char (10),out name char(20))

Begin

Select sname into name from student where sno=xh;

End;

执行

set @name=null;

call getnamebysno('000105',@name);

select @name;

5、修改刚建立的存储过程。

ALTER PROCEDURE SELECT_ '

6、删除刚建立的存储过程。

DROP PROCEDURE SELECT_WOMAN

实验八触发器的插入、删除、更新和创建

1、对student表创建delete触发器,当删除某个学生记录时,同时在选课表SC中删除该学

生的选课记录。

mysql 通过

use student;

Insert Into Student Values('000101', '刘八', '女', 22, '信息科学系');

Insert Into SC Values('000101', '2', 91);

select * from student ;

select * from sc ;

create trigger t1 AFTER delete on student

FOR EACH ROW BEGIN

Delete from SC WHERE sno = old.sno;

END;

2、在student表上定义了一个update触发程序,用于检查更新sage时将使用的新值,小于

16时取得16,大于40时取40,并更改值。

use student;

create trigger upd_check before update on student

FOR EACH ROW

begin

if new.sage<16 then

set new.sage=16;

elseif new.sage>60 then

set new.sage=40;

end if;

end;

select * from student;

update student set sage=2 where sno='000105';

select * from student ;

3、在student表上定义了一个insert触发程序,用于检查插入ssex时只能取男和女,输入其

它时取NULL。

use student;

create trigger ins_check before insert on student

FOR EACH ROW

begin

if new.ssex<>'男' and new.ssex<>'女' then

set new.ssex=null;

end if;

end;

select * from student;

Insert Into Student Values('000106', '陈规则', '五', 22, '信息科学系');

select * from student;

4、alter trigger

5、drop trigger <触发名> on 表名;

6、create database trigg;

CREATE TABLE t_a (

id smallint(1) unsigned NOT NULL AUTO_INCREMENT,

username varchar(20) DEFAULT NULL,

groupid mediumint(8) unsigned NOT NULL DEFAULT '0',

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;

CREATE TABLE t_b (

id smallint(1) unsigned NOT NULL AUTO_INCREMENT,

username varchar(20) DEFAULT NULL,

groupid mediumint(8) unsigned NOT NULL DEFAULT '0',

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=57 DEFAULT CHARSET=latin1;

CREATE

TRIGGER tr_a_insert AFTER INSERT ON t_a

FOR EACH ROW BEGIN

INSERT INTO t_b SET username = https://www.wendangku.net/doc/9f5600924.html,ername, groupid=NEW.groupid;

END;

INSERT INTO t_a (username,groupid) V ALUES ('https://www.wendangku.net/doc/9f5600924.html,',123);

SELECT id,username,groupid FROM t_a;

SELECT id,username,groupid FROM t_b;

CREATE TRIGGER `tr_a_delete` AFTER DELETE ON t_a

FOR EACH ROW BEGIN

DELETE FROM `t_b` WHERE username=https://www.wendangku.net/doc/9f5600924.html,ername AND groupid=OLD.groupid;

END;

delete from t_a where groupid=123;

SELECT id,username,groupid FROM t_a;

SELECT id,username,groupid FROM t_b;

CREATE TRIGGER tr_a_update AFTER UPDATE ON t_a

FOR EACH ROW BEGIN

IF new.groupid != old.groupid OR https://www.wendangku.net/doc/9f5600924.html,ername != https://www.wendangku.net/doc/9f5600924.html,ername THEN

UPDATE t_b SET groupid=NEW.groupid,username=https://www.wendangku.net/doc/9f5600924.html,ername

WHERE username = https://www.wendangku.net/doc/9f5600924.html,ername AND groupid = OLD.groupid;

END IF;

end;

实验九MYSQL权限与安全

1、用户的创建

①利用CREATE USER语句创建用户user1、user2、user3,密码均为’123456’。

mysql> create user 'user1'@'localhost' identified by '123456', 'user2'@'localhost' identified by '123456', 'user3'@'localhost' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

②利用INSERT INTO语句向USER表创建用户user4,密码均为’123456’。

mysql> insert into https://www.wendangku.net/doc/9f5600924.html,er(host,user,password,ssl_cipher,x509_issuer,x509_subject) values('localhost','user5',password('123456'),'','','');

Query OK, 1 row affected (0.00 sec)

③利用GRANT语句创建用户user5,密码均为’123456’,且为全局级用户。

mysql> grant select,insert,update on *.* to 'user5'@'localhost' identified by'123456';

Query OK, 0 rows affected (0.00 sec)

2、用户授权(利用GRANT语句)

①授予user1用户为数据库级用户,对数据库StudDB拥有所有权。

mysql> grant all on *.* to 'user1'@'localhost' identified by'123456';

Query OK, 0 rows affected (0.01 sec)

②授予user2用户为表级用户,对StudDB中的student表select,create,drop权限。

mysql> grant select,create,drop on StudDB.student to 'user2'@'localhost' identified by

'123456';

Query OK, 0 rows affected (0.00 sec)

③授予user3用户为列级用户,对StudDB中的student表的sname列用户select和update 权限。

mysql> grant select,update(sname) on StudDB.student to 'user2'@'localhost' identified by'123456';

Query OK, 0 rows affected (0.02 sec)

④授予user4用户为过程级用户,对StudDB.student中的numofstudent存储过程拥有EXECUTE执行的权限。

mysql> grant execute on procedure numofstudent to 'user4'@'localhost' identified by'123456';

Query OK, 0 rows affected (0.00 sec)

利用上述建立的用户连接并登陆MYSQL数据库,对相关权限进行验证。

查看权限

mysql> select * from https://www.wendangku.net/doc/9f5600924.html,er where user='test1';

Empty set (0.00 sec)

mysql> show grants for 'root' @'localhost';

select * from https://www.wendangku.net/doc/9f5600924.html,er where user='root';

mysql> delete from https://www.wendangku.net/doc/9f5600924.html,er where user="root" and host="localhost";

Query OK, 1 row affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

删除权限

mysql> drop user 'user4'@'localhost';

Query OK, 0 rows affected (0.00 sec)

3、权限回收

①收回user3用户对StudDB中的student表的sname列的update权限。

mysql> revoke update on *.* from 'user2'@'localhost';

Query OK, 0 rows affected (0.00 sec)

②收回user4用户对StudDB.student中的numofstudent存储过程拥有EXECUTE执行的权限。

mysql> revoke execute on procedure numofstudent from 'user4'@'localhost';

Query OK, 0 rows affected (0.00 sec)

利用上述建立的用户连接并登陆MYSQL数据库,对相关权限进行验证。

4、用户密码及用户名修改

①利用使用SET password修改和UPDA TE方式修改root用户的密码。

mysql> set password=password("123456");

Query OK, 0 rows affected (0.00 sec)

mysql> update https://www.wendangku.net/doc/9f5600924.html,er set password=password('123') where user="root" and host

="locahst";

Query OK, 0 rows affected (0.00 sec)

Rows matched: 0 Changed: 0 Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.02 sec)②利用SET password for ’用户’@’主机’=password(“新密码”)方法修改user1用户的密码。

5、超级用户ROOT密码丢失的找回

①利用skip-grant-tables配置参数修改配置文件,实现无密码登陆MYSQL服务器,并利

用UPDATE语句修改密码。

实验十:数据的复制与恢复

1、备份所有数据库到D盘,文件名自拟。

2、将表emp的备份文件emp.sql还原到test数据库中。

3、备份数据库test到D盘,文件名自拟。

4、备份数据库mysql中的db,proc,help_keyword三个表到D盘mysql.sql 文件中。

1、删除数据库mysql中的db,proc,help_keyword三个表。

2、将5题中删除的表进行还原。

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的容: 3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

《数据库原理与应用》实验题目及答案

《数据库原理与应用》实验作业布置 实验1 数据库的建立修改与删除 完成以下实验报告: 《数据库原理与应用》实验报告 实验1 数据库的建立修改与删除 二、实验环境 操作系统:Windows XP。 数据库管理系统:MS SQL Server 2000 或MS SQL Server 2008。 三、实验目的 1.熟悉SQL Server 2000上机环境,学会SQL Server 2000“企业管理器”以及“查询分析器”的启动与退出;或熟悉MS SQL Server 2008上机环境,学会SQL Server Management Studio的启动与退出。 2.掌握建立数据库的两种方法。 3.掌握查看和修改数据库的两种方法。 4.掌握删除数据库的两种方法。 四、实验内容 (一) 规定内容 1. 在用户方便的存储空间上建立存放用户数据库的文件夹。本实验在D盘根目录下建立文件夹:D:\SQL2000DB,再建立存放T_SQL源代码的文件夹:D:\SQL2000DB\T_SQL 2.利用企业管理器创建学生课程数据库ST,参数如表1.1所示。 3.利用企业管理器查看ST数据库的属性。 4.使用T-SQL语句建立学生-课程数据库ST,参数如表1.1所示。 5.使用T-SQL 语句建立数据库JXDB,参数如表1.2所示。

6.使用T-SQL语句为数据库JXDB添加文件组JX_Group2,并为此文件组添加1个数据文件JXDB_Data4;添加1个日志文件JXDB_log1。参数由用户自己设定。 7.使用T-SQL语句修改数据库JXDB中次数据文件JXDB_Data4的属性:文件初始大小改为5M,增长方式改为每次按20%增长。删除日志文件JXDB_log1。 8.使用T-SQL语句删除数据库JXDB。 (二) 自定内容 五、出现的问题及解决方法 实验2 表结构的建立修改删除及完整性约束条件定义 完成以下实验报告: 《数据库原理与应用》实验报告 一、实验题目 实验2 表结构的建立修改删除及完整性约束条件定义 二、实验环境 操作系统:Windows XP。 数据库管理系统:MS SQL Server 2000或MS SQL Server 2008。 三、实验目的 1.掌握建立、修改与删除表结构的两种方法。 2.掌握定义完整性约束条件的方法。 3.掌握利用企业管理器和使用T-SQL语句向表中插入记录的方法。 四、实验内容 (一) 规定内容 1.对学生课程数据库ST进行完整性约束条件规划设计。 设计结果如表2.1所示。

数据库实验四作业及答案

实验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

数据库实验题目和答案

按照如下方式重新定义四张表: 定义新的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)

数据库实验四(含答案)

实验四使用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 ,

数据库实验五题目答案

实验五 实验5.1 数据查询 1)要求 以School数据库为例,在该数据库中存在四表格,分别为: ●表STUDENTS(sid, sname, email, grade); ●表TEACHERS(tid, tname, email, salary); ●表COURSES(cid, cname, hour); ●表CHOICES(no, sid, tid, cid, score) 在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。在表CHOICES中保存学生的选课记录。 按以下要求对数据库进行查询操作: (1)查询年级为2001的所有学生的名称并按编号升序排列。 程序:Select sname from students where grade='2001' order by sid asc; (2)查询学生的选课成绩合格的课程成绩。 程序:Select score from choices where score>'59';

(3)查询课时是48或60的课程的名称。 程序:select cname from courses where hour='48'or hour='60'; (4)查询所有课程名称中含有data的课程编号。 程序:select cid from courses where cname like'%data%';

(5)查询所有选课记录的课程号(不重复显示)。 程序:select distinct cid from choices; (6)统计所有教师的平均工资。 程序:select avg(salary) from teachers;

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

实验四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个属性列:★施工单位、★年月、◆结算金额)保存各个施工单位每月的结算金额总和。 ⑵用子查询将各个施工单位每月的结算金额总和插入到所建立的数据表中。 ⑶用带子查询的修改语句将采油一矿油井作业项目的结算人改为“李兵”。 ⑷用带子查询的删除语句删除采油一矿油井作业项目。

数据库试验答案

计算机与信息学院 数据库实验报告 专业班级 学生姓名及学号 课程教学班号 任课教师 实验指导教师 实验地点 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。

数据库实验四(含答案)

实验四使用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 ,

数据库实验2-1答题文件(答案)

第2章VisualFoxPro入门 实验2-1 初识VFP 实验要求 打开其中的“实验2-1答题文件.doc”文件,简答或按题目要求实现如下操作。 实验 1.VFP的安装与卸载 ●卸载VFP操作步骤: (1)单击“开始”按钮,单击打开“控制面板”,再双击“添加或删除程序”打开“添加或删除程序”面板,选中需要卸载(删除)的VFP程序,单击“更改/删除”按钮,如图1-1-1所示。按照提示步骤即可完成卸载(删除)VFP程序的操作。 图1-1-1卸载(删除)VFP程序 ●安装VFP操作步骤: (1)双击老师提供的资料“VFP60.RAR”,解压缩到文件夹VFP60,双击文件夹VFP60中的SETUP.EXE安装图标,开始进行安装,如图1-1-2所示。 图1-1-2卸载(删除)VFP程序 1

(2)单击“下一步”按钮,出现如1-1-3所示界面,单击选中“接受协议”。 图1-1-3VFP程序用户许可协议 (3)单击“下一步”按钮,出现如1-1-4所示界面,要求用户输入产品的ID号,如果正确,“下一步”按钮变为可选状态。 图1-1-4输入产品的ID号 (4)单击“下一步”按钮,选择公用安装文件夹的位置,默认安装路径是“C:\Program Files\Microsoft Studio\Common”,用户可单击“浏览”按钮,重新指定路径,如图1-1-5所示。 2

图1-1-5选择安装目标文件夹 (5)单击“下一步”按钮,进入VFP的安装程序界面,单击“继续”按钮,按提示完成一系列操作,如图1-1-6所示。 图1-1-6安装程序界面 (6)安装结束后,显示安装成功的界面,如图1-1-7所示。单击“确定”按钮完成安装。 图1-1-7安装成功界面 2.VFP的启动方法 用不同的方法启动VFP,认识VFP6的主窗口,了解VFP的菜单栏。 (1)VFP的启动方法有: 方法一:单击“开始”按钮,选择【程序】→【Microsoft Visual FoxPro 6.0】→【Microsoft Visual FoxPro 6.0】,即可启动VFP程序。 方法二:直接双击桌面上的快捷图标“Microsoft Visual FoxPro 6.0”即可启动VFP 程序。 (2)Visual FoxPro主窗口界面即Visual FoxPro的工作环境,启动Visual FoxPro 6.0后,打开如图1-1-8所示的界面,了解VFP的菜单栏。 3

数据库实验答案

实验3 使用T-SQL语言完成单表查询 一、实验目的 掌握使用T-SQL语言完成单表查询 掌握常用谓词的用法 掌握where子句的用法 掌握order by 子句的用法 掌握group by 子句和having短语的用法 实验环境 Microsoft SQL Server 2000。 实验内容和要求 查询全体学生的详细信息。 查询所有课程的详细信息。 查询所有选课记录的详细信息,要结果表中的列名以中文的形式显示,分别为:学号,课程号,成绩。 查询已被学生选修了的课程的编号。 查询系别编号为“d002”的学生的姓名和性别。 查询年龄在19至21岁或者性别为“女”的学生的学号和所在系别编号。 查询系别编号为d001、d002和d003的学生的学号和姓名。 查询课程名为“C_”开头的课程名和学分。 某些学生入学后还没有确定所在的系,查询还没有确定系的学生的姓名。 查询成绩大于60分的学生的学号、课程号和成绩,并将查询结果按课程编号升序排列,同一课程的成绩按分数降序排列。 查询学校所开设的总的课程数。 计算2号课的学生成绩总和以及平均成绩,对应的列名分别为“总成绩”和“平均成绩”。 查询选修了3号课程的学生的最高分和最低分,对应的列名分别为“最高分”和“最低分”。 求各个系别的编号以及各系的人数。 查询选课人数大于等于2人的课程编号以及选课的人数。 查询学生2选修课程的总成绩对应的列名为“总成绩”,并显示出学号。 查询有2门以上课程是80分以上的学生的学号及课程数。 查询选修了1号课的学生的学号和成绩,结果按成绩降序、学号升序排列。 实验1 使用T-SQL语言建库、建表 实验2 向表中增、删、改数据 实验目的 掌握使用T-SQL建库、建表、修改表; 掌握使用T-SQL对表中数据进行插入、删除和修改。 实验环境 Microsoft SQL Server 2000。 实验内容和要求 建立数据库STDB 在数据库STDB中建立四个表:

同济大学数据库实验5答案

create proc procA as select* from student exec proca create proc procB @_year char(4) as select* from student where year(birthday )=@_year declare @_year char(4) set @_year ='1994' exec procB@_year create proc procf @_Snum char(30) as select s.snum ,avg(score)as平均成绩,count(https://www.wendangku.net/doc/9f5600924.html,um)as选秀门数,sum(1-score/60)as不及格门数 from student s,course c,sc,sections st where s.snum =sc.snum and sc.secnum =st.secnum and https://www.wendangku.net/doc/9f5600924.html,um =https://www.wendangku.net/doc/9f5600924.html,um and S.Snum =@_Snum group by S.Snum DECLARE @_SUNM char(30) set @_SUNM ='s001' exec procf@_sunm CREATE PROC Procd @_snum char(4),@_avg int out,@_selected_course int out,@_failed_course int out AS SELECT @_avg=AVG(score),@_selected_course=COUNT(cnum),@_failed_course=sum(1-score/60) FROM sc JOIN sections ON sc.secnum =sections.secnum WHERE snum=@_snum

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

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

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)按要求完成实验报告。

数据库实验7-1答题文件(答案)

第7章SQL结构化查询语言 实验7-1 SQL基本操作 实验要求 1.将服务器上的数据源文件夹“data7-1”下载到本地盘(比如E:\); 2.打开其中的“实验7-1答题文件.doc”文件,边做实验边将各题的操作步骤或所用的命令记录在该文件中。实验完成后将实验完成后将整个文件夹上传到你的“作业”文件夹中。 3、在答题时将答案的文字格式加上蓝色加粗。 实验步骤 1.“学生.dbf”的SQL语言的简单查询 操作步骤: 在命令窗口中依次输入如下命令: (1) 使用set default to 命令设置默认路径: set default to E:\ data7-1 (2) 查询“学生.dbf”中的所有字段的内容: SELECT * FROM 学生 (3) 查询“学生.dbf”中的“姓名”、“出生日期”和“性别”字段的内容: SELECT 姓名,出生日期,性别FROM 学生 (4) 查询“学生.dbf”中的所有女生的记录内容,并按年龄降序排列: SELECT * FROM 学生WHERE 性别="女" ORDER BY 年龄DESC (5) 查询“学生.dbf”中出生日期在1983年1月1日至1984年1月1日的所有学生“姓名”、“出生日期”和“性别”字段的内容: SELECT 姓名,性别,出生日期FROM 学生; WHERE 出生日期>= date(1983,1,1) ; AND 出生日期<= date(1984,1,1) 或: SELECT 姓名,性别,出生日期FROM 学生; WHERE 出生日期between date(1983,1,1) and date(1984,1,1) 或: 70

mysql数据库实验答案

实验一创建、修改数据库和表结构 1、用create建立教学数据库的五个基本表: (1)学生表(学号,姓名,性别,年龄),student((Sno, sname,ssex,sage) ; (2)课程表(课程号,课程名,学分),Course (Cno, Cname, credit) ; (3)选课表(学号,课程号,成绩),SC (Sno,, Cno, grade ) ; (4) 教师表(教师号,姓名,性别,出生年月,系部,职称,地址), T(Tno,Tname,ssex,birthday,dept,title,address) ; (5) 工资表(教师号,基本工资,职务工资,合计),Salary(Tno,jbgz,zwgz,hj); Create Database Student default character set utf8 default COLLATE utf8_bin;

Use Student; Create Table Student( SNo c har(20) primary key, SName char(20) , SSex char(4) default '男', SAge int ) ENGINE=InnoDB; Create Table Course( CNo c har(20) primary key, CName char(20) NOT NULL,

CRedit f loat ) ENGINE=InnoDB; Create Table SC( SNo c har(20) NOT NULL, CNo c har(20) NOT NULL, Grade float, Primary Key(SNo, CNo), Foreign Key(SNo) References Student(SNo) On Delete Cascade, Foreign Key(CNo) References Course(CNo) )ENGINE=InnoD B;

数据库实验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 客户端连接上。 可以通过服务管理器来进行启动。

数据库认证实验四答案

--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

数据库上机实验题目和答案

试用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 s where sex='男' and age>23 3.检索‘c01’课程中一门课程的女学生姓名 select sname from s where sex='女' and sno in (select sno from sc where cno='c01') 4.检索s01同学不学的课程的课程号。 select cno from c where cno not in (select cno from sc where sno ='s01') 5.检索至少选修两门课程的学生学号。 select sc.sno from s,sc where s.sno=sc.sno group by sc.sno having count(https://www.wendangku.net/doc/9f5600924.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.wendangku.net/doc/9f5600924.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno ) so,s where s.sno=so.sno 解法二: select sc.sno sno,s.sname,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno,sname

数据库实验5答案

实验五:数据库综合查询 一、实验目的 1.掌握SELECT语句的基本语法和查询条件表示方法; 2.掌握查询条件种类和表示方法; 3.掌握连接查询的表示及使用; 4.掌握嵌套查询的表示及使用; 5.了解集合查询的表示及使用。 二、实验环境 已安装SQL Server企业版的计算机(120台); 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SELECT语句的基本语法格式和执行方法; 2.了解连接查询的表示及使用; 3.了解嵌套查询的表示及使用; 4.了解集合查询的表示及使用; 5.完成实验报告; 五、实验内容及步骤 1.利用Transact-SQL嵌套语句实现下列数据查询操作。 1) 查询选修了计算机体系结构的学生的基本信息。 select*from student where Sno in(select Sno from course where Cno in(select Cno from sc where Cname='计算机体系结构')) 2) 查询年龄比李勇小的学生的学号和成绩。 select a.sno,grade from student a,course where a.sno=course.sno and sage<(select sage from student where sname='李勇') 3) 查询其他系中比系编号为‘D1’的学生中年龄最小者要大的学生的信息。select*from student where dnum<>'D1'AND SAGE>(select min(sage)from student where dnum='D1') 4) 查询其他系中比系编号为‘D3’的学生年龄都大的学生的姓名。 select*from student where dnum<>'D3'AND SAGE>all(select sage from student where dnum='D3')

数据库考试题目+答案

一.选择题 1.(D )是存储在计算机内有结构的数据集合。 A.数据库系统 B.数据库管理系统 C. 数据模型 D. 数据库 2.不属于Access对象的是(B ) A.表 B.文件夹 C.窗体 D.查询 3. Access数据库的类型是( C )。 A.层次数据库 B.网状数据库 C.关系数据库 D.面向对象数据库4.在以下叙述中,正确的是( D ) A.ACCESS只能使用系统菜单创建数据库应用系统 B.ACCESS不具备程序设计能力 C.ACCESS只具备了模块化程序设计能力 D.ACCESS具有面向对象的程序设计能力,并能创建复杂的数据库应用系统 5. “学号”字段中含有“1”、“2”、“3”……等值,则在表设计器中,该字段可以设置成数字类型,也可以设置为( B )类型 A、货币 B、文本 C、备注 D、日期/时间 6. E-R模型属于( A )。 A.信息(概念)模型 B.层次模型 C.关系模型 D.网状模型 7.在数据表视图中,不可以( A )。

A.修改字段的类型 B.修改字段的名字 C.删除一个字段 D.删除一条记录 8.在关系数据库中,表与表之间的联系是通过如下哪项实现的(B )。 A .实体完整性规则 B .参照完整性规则 C .用户自定义的完整性规则 D .值域 9.在下列 SQL 语句中,属于数据控制的语句是( B )。 A . CREATE , DROP , DELETE , ALTER B . GRANT , REVOKE C . SELECT , UPDATE , DELETE , INSERT D . CREAT E , DROP ,ALTER 10. Access表中字段的数据类型不包括( C )。 A.文本 B.备注 C.通用 D.日期/时间 11.将表“学生表”的记录复制到表“学生名单”中,且不删除表“学生表”中的记录,所使用的查询方式是( C )。 A. 删除查询 B. 更新查询 C. 追加查询 D. 交叉表查询 12. 条件“性别=“女”AND工资额>2000“的意思是( A )。 A. 性别为“女”并且工资额大于>2000的记录 B. 性别为“女”或者且工资额大于>2000的记录 C. 性别为“女”并非工资额大于>2000的记录 D. 性别为“女”或者工资额大于>2000的记录,且而者择一的记录

相关文档