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 char(20) primary key, CName char(20) NOT NULL, CRedit float ) ENGINE=InnoDB; Create Table SC( SNo char(20) NOT NULL, CNo char(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=InnoDB; Create Table T( TNo char(20) Primary Key, TName char(20) NOT NULL, TSex char(4) default '男',

1

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 char(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上建立复合索引,要求学号为升序,学号相同时成绩为

2

降序。

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的数据

991201 张三 22 男 计算机系 991202 21 李四 男 信息系 991101 23 王五 男 数学系 991102 19 陈六 男 计算机系 991103 24 吴七 女 数学系 000101 22 刘八 女 信息系 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的数据

3

1 数学 2 数据结构 3 程序设计 4 数据库原理 5 操 作系统 5 4 2 3 3 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的数据

991201 1 90 991201 5 80 991201 3 85 991201 4 90 991102 1 85 991102 2 98 000101 2 91 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的数据 0001 0002 1001 1008 1968-10 张三 男 信息 副教授 湘潭 1956-11 李四 女 信息 教授 长沙 1973-07 王五 男 计算机 讲师 湘潭 1970-08 陈六 男 计算机 副教授 北京 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的数据

0001 1000 300 1300 0002 1500 500 2000 1001 800 200 1000 Insert Into Salary Values('0001', 1000, 300, 1300);

4

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

5

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4