数据库表的数据操作
实验时间:××××年××月××日 上(下)午 1、2(或3、4)节
实验地点:和容B302
学号:164804035
姓名:宋倩倩
班级:java一班
实验成绩(由教师填写):____________
评语(由教师填写):
任课教师姓名:马晓珺
1 实验目的
(1) 掌握利用INSERT命令实现对表数据的插入操作。
(2) 掌握利用UPDATE命令实现对表数据的修改操作。
(3) 掌握利用DELETE命令实现对表数据的删除操作。
(4) 掌握利用select命令实现对表数据的查询操作。
2 实验任务
使用Navicat工具操作:(不需要写出步骤)
利用备份恢复上次实验建立的数据库,参考步骤如下:
(1)建立数据库;
(2)还原数据库;
(3)复制student、sc、course三个表文件。
使用SQL语句操作(需在实验步骤中写出相应SQL命令):
在stu_info数据库中完成下面操作:
(1) 向Student表中插入记录("201215130","张静","女",”19”,"CS")。
(2) 插入学号为“201215131”、姓名为“李四”的学生信息。
(3) 把CS系的学生记录保存到表TS中(TS表已存在,表结构与Student表相同)。
(4) 将学号为“201215125”的学生姓名改为“张华”。
(5) 将“201215121”学生选修“3”号课程的成绩改为80。
(6) 删除学号为“201215131”的学生记录。
(7)把“张晨”同学的成绩全部删除。
(8) 查询“CS”系女学生的学生学号、姓名及考试成绩。
(9)查询“李勇”同学所选课程的成绩。(不考虑重名)
(10)查询至少选修一门课程的女学生姓名。
(11)查询选修“数据库”课程且成绩在80~90分之间的学生学号及成绩。à查询姓名?
(12)查询课程成绩及格的男同学的学生信息及课程号与成绩。
(13)查询选修“2”课程的学生的平均年龄。
3 实验环境
Windows系统mysql5.5、Navicat forMySQL
4 实验步骤
(请将实验任务中在mysql5.5环境下执行过的相应题目的SQL操作命令写出。)
(1) SQL命令入下:
mysql> use stu_info;
Database changed
mysql> insert into student
-> values('201215130','zhangjing','nv','19','cs');
Query OK, 1 row affected (0.00 sec)
(2) SQL命令入下:
mysql> insert into student
-> values('201215131','lisi','nan',null,null);
Query OK, 1 row affected (0.00 sec)
(3)SQL命令入下:
mysql> insert into ts select*from student where sdept='cs';
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
mysql> select *from ts;
+-----------+-------+-----+------+-------+
| sno | sname | sex | sage |sdept |
+-----------+-------+-----+------+-------+
| 201215121 | 李勇 | 男 | 20 | cs |
| 201215122 | 刘晨 | 女 | 19 | cs |
+-----------+-------+-----+------+-------+
2 rows in set
(4)
mysql> update student setSname='zhanghua' where Sno='201215122';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
(5)
mysql> updatesc set Grade='80' where Cno='3'and Sno='201215122';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
(6)
mysql> delete from student whereSno='201215131';
Query OK, 1 row affected (0.00 sec)
(7)
mysql> delete from sc where Sno in(
-> select Sno from student where Sname='zhangchen');
Query OK, 1 row affected (0.00 sec)(8)
(8)
select sname,grade,student.sno from student,sc where student.sno=sc.sno and student.sex='女' and student.sdept='cs';
(9)
select Grade,Cno from student,sc wherestudent.Sno=sc.Sno and Sname='liyong';
+-------+-----+
| Grade | Cno |
+-------+-----+
| 92 | 1 |
| 85 | 2 |
| 88 | 3 |
+-------+-----+
3 rows in set (0.00 sec)
(10)
mysql> select Sname from student where Ssex='nv' and Sno in( select Snofrom sc group by Sno having count(*)>=1);
Empty set (0.00 sec)
(11)
select student.Sno,sc.Grade fromstudent,sc,course where sc.Cno=course.Cno and student.Sno=sc.Sno andCname='shujuku' and sc.Grade between 80 and 90;
Empty set (0.00 sec)
(12)
mysql> select student.sno,sname,grade,cname,sage,sex,sc.cno fromstudent,sc,course where sc.cno=course.cno and student.sno=sc.sno and sex='nan'and grade>=60;
+-----------+-------+-------+----------+------+-----+-----+
| sno | sname | grade |cname | sage | sex | cno |
+-----------+-------+-------+----------+------+-----+-----+
| 201215121 | 李勇 | 92 | 数据库 | 20 | 男 | 1 |
| 201215121 | 李勇 | 85 | 数学 | 20 | 男 | 2 |
| 201215121 | 李勇 | 88 | 信息系统 | 20 | 男 | 3 |
+-----------+-------+-------+----------+------+-----+-----+
3 rows in set
(13)
mysql> select avg(sage) from student,course,sc where student.sno=sc.snoand sc.cno=course.cno and course.cno=2;
+-----------+
| avg(sage) |
+-----------+
| 20.0000 |
+-----------+
1 row in set
5 实验总结
通过这节实验课学习,我能把之前学的知识联系到一块,实现表的查询,更新,删除,插入等基本操作,要注意回顾老师上课所讲的东西,把握重点,课下练习必不可少,争取达到不看书能准确而快速的敲出命令。