实验1

CRETE DATABASE studentsdb;
USE studentsdb;CREATE TABLE IF NOT EXISTS `student_info`(
`student_id` CHAR(4) NOT NULL,
`student_name` CHAR(8) NOT NULL,
`student_gender` CHAR(2),
`student_data` DATE,
`student_home` VARCHAR(50),
PRIMARY KEY(`student_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;desc student_info;CREATE TABLE IF NOT EXISTS `curriculum`(
`course_id` CHAR(4) NOT NULL,
`course_name` VARCHAR(50),
`score` INT,
PRIMARY KEY(`course_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `grade`(
`student_id` CHAR(4) NOT NULL,
`course_id` CHAR(4) NOT NULL,
`score` INT,
PRIMARY KEY(`student_id`,`course_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO student_info (student_id,student_name, student_gender,student_data,student_home) VALUES ("0001","张青平","男","2000-10-01","衡阳市东风路77号"),("0002","刘东阳","男","1998-12-09","东阳市八一北路33号"),("0003","马晓夏","女","1995-5-12","长岭市五一路763号"),("0004","钱忠里","男","1994-09-23","滨海市洞庭大道279号"),("0005","孙海洋","男","1995-4-03","长岛市解放路27号"),("0006","郭晓斌","男","1997-11-10","南山市红旗路113号"),("0007","肖月玲","女","1996-12-07","东方市南京路11号"),("0008","张玲珑","女","1997-12-24","滨江市新建路97号");select * from student_info;INSERT INTO curriculum (course_id,course_name,score) VALUES ("0001","计算机应用基础",2),("0002","C语言程序设计",2),("0003","数据库原理及应用",2),("0004","英语",4),("0005","高等数学",4);INSERT INTO grade (student_id,course_id,score) VALUES ("0001","0001",80),("0001","0002",91),("0001","0003",88),("0001","0004",85),("0001","0005",77),("0002","0001",73),("0002","0002",68),("0002","0003",80),("0002","0004",79),("0002","0005",73),("0003","0001",84),("0003","0002",92),("0003","0003",81),("0003","0004",82),("0003","0005",75);ALTER TABLE curriculumMODIFY COLUMN course_name VARCHAR(50) NULL;ALTER TABLE gradeMODIFY COLUMN score DECIMAL(5,2);ALTER TABLE student_infoADD remark VARCHAR(50);CREATE DATABASE studb;
USE studb;
CREATE TABLE stuAS SELECT * FROM studentsdb.student_info;SET SQL_SAFE_UPDATES = 0;
DELETE FROM stu WHERE student_id = "0004";UPDATE stu SET student_home ="滨江市新建路96号" WHERE student_id = "0002"; ALTER TABLE stuDROP COLUMN remark;   DROP TABLE stu;DROP DATABASE studb; 

实验2

show databases;
use studentsdb;select * from student_info;
select student_id,student_name,student_datafrom student_info; select student_name,student_homefrom student_infowhere student_id='0002'; select student_name,student_datafrom student_infowhere student_data>=1995 and student_gender="女";
select * from grade
where score between 70 and 80;
select avg(score) student_avg from grade
where course_id="0002";
select count(*) course_num, count(score) from grade
where course_id="0003";
select  student_name, student_data from student_info
order by student_data desc;
select  student_name, student_data from student_info
where student_name like "张%";select  * from student_info
order by student_gender desc,student_id desc;
select student_id, avg(score) student_avg from grade
group by student_id;
select student_id,student_name from student_info
where student_name like '刘%'
union
select student_id,student_name from student_info
where student_name like '张%';select student_name,student_data from student_info
where student_gender=(select student_gender from student_info
where student_name='刘东阳');select student_id,student_name,student_gender from student_info
where student_id in(
select student_id from grade where course_id in (
'0002','0005'));select course_id,score from grade
where student_id='0001' and score>any(
select score from grade
where student_id='0002');select course_id,score from grade
where student_id='0001' and  score>all(
select score from grade
where student_id ='0002');select s.student_id,student_name,score from student_info s,grade g
where s.student_id=g.student_id and score between 80 and 90;select * from curriculum;select s.student_id,student_name,c.score from student_info s
inner join grade g on s.student_id=g.student_id
inner join curriculum c on g.course_id=c.course_id
where course_name="数据库原理及应用";select s.student_id,student_name,MAX(score) score_max
from student_info s,grade g
where s.student_id=g.student_id
group by s.student_id;select s.student_id,student_name,sum(score) score_sum
from student_info s left outer join
grade g on s.student_id=g.student_id
group by s.student_id;insert into grade values('0004','0006',76);
select g.course_id,course_name,count(*) xuanxiu_num
from curriculum c right outer join grade g on
g.course_id=c.course_id group by g.course_id;

实验3

#1. 使用SQL语句ALTER TABLE分别删除studentsdb数据库的student_info表、grade表、curriculum表的主键索引。
USE studentsdb;
ALTER TABLE student_info DROP PRIMARY KEY;
ALTER TABLE curriculum DROP PRIMARY KEY;
ALTER TABLE grade DROP PRIMARY KEY;# 2.使用SQL语句为curriculum表的课程编号创建唯一性索引,命名为cno_idx
show tables;
select * from curriculum;
CREATE UNIQUE INDEX cno_idx ON curriculum(course_name);#3. 使用SQL语句为grade表的“分数”字段创建一个普通索引,命名为grade_idx。
CREATE INDEX grade_idx ON grade(score);#4. 使用SQL语句为grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_sid_cid_idx。
CREATE INDEX grade_sid_cid_idx ON grade(student_id,course_id);#5. 查看grade表上的索引信息。
SHOW INDEX FROM grade;#6. 使用SQL语句删除索引grade_idx。再次查看grade表上的索引信息。
DROP INDEX grade_idx ON grade;
SHOW INDEX FROM grade;#7. 使用SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。
CREATE VIEW v_stu_c
AS
SELECT s.student_id,student_name,course_id FROM student_info s,grade g
WHERE s.student_id=g.student_id;
SELECT * FROM v_stu_c
WHERE student_id = '0003';
SELECT * FROM v_stu_c;#8. 基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图包括所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的课程平均分。
CREATE VIEW v_stu_g
AS
SELECT s.student_id,student_name,course_name,c.score
FROM student_info s,grade g,curriculum c
WHERE s.student_id=g.student_id AND g.course_id=c.course_id;
SELECT AVG(score) average FROM v_stu_g WHERE student_id='0001';#9. 使用SQL语句修改视图v_stu_g,显示学生的学号、姓名、性别。
ALTER VIEW v_stu_g
AS
SELECT student_id,student_name,student_gender FROM student_info;
SELECT * FROM v_stu_g;#10.利用视图v_stu_g为student_info表添加一行数据:学号为0010、姓名为陈婷婷、性别为女。
INSERT INTO v_stu_g (student_id,student_name,student_gender)
VALUES ('0010','陈婷婷','女');#11.利用视图v_stu_g删除学号为0010的学生记录。
DELETE FROM v_stu_g WHERE student_id='0010';#12.利用视图v_stu_g修改姓名为张青平的学生的高等数学的分数为87。
UPDATE grade SET score=87
WHERE student_id=(SELECT student_id FROM v_stu_g WHERE student_name='张青平')AND
course_id=(SELECT course_id FROM curriculum WHERE course_name='高等数学');#13.使用SQL语句删除视图v_stu_c和v_stu_g。
DROP VIEW v_stu_c,v_stu_g;

实验四 数据的完整性

【数据库原理与应用MySQL版】实验指导相关推荐

  1. 【毕业设计】《数据库原理及应用技术》课程指导平台的开发

    文章目录 目录 系统实现思路 源文件 目录 系统实现思路 互联网的出现改变了人类的生活方式,提高了人们的工作效率和生活质量,随着互联网的发展,网络教育应运而生,实现了人类教育的一次革命.如今网上教学已 ...

  2. mysql数据库技术与项目课后答案_数据库技术与应用mysql版答案

    数据库技术与应用mysql版答案 更多相关问题 下列建筑或场所中,可不设置室内消火栓的是().A.占地面积500m2的丙类仓库B.粮食仓库C.高层公共关于火灾自动报警系统组件的说法,正确的是()A.手 ...

  3. 数据库基本知识(MySql版)

    数据库原理及应用(MySql版)--2022.9.27 一.数据库原理及应用 数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理和信息管理系统的核心. 数据库技术研究数据库系统中可以有效的 ...

  4. java程序设计基础(第3版)实验指导_清华大学出版社-图书详情-《Java程序设计基础(第5版)实验指导与习题解答》...

    本书是清华大学出版社出版的<Java程序设计基础(第5版)>的配套用书.全书共分为两部分,第一部分是上机实验指导,第二部分是主教材<Java程序设计基础(第5版)>中的习题解答 ...

  5. java程序设计实验指导与习题解答_清华大学出版社-图书详情-《Java程序设计基础(第6版)实验指导与习题解答》...

    前言 本书是清华大学出版社出版的<Java程序设计基础(第6版)>一书的配套用书.全书共分为两部分: 第一部分是实验指导: 第二部分是主教材<Java程序设计基础(第6版)>的 ...

  6. 数据库原理分析(第四版)

    计算机科学之数据库原理及应用教程之我见(第四版) 信息.数据.数据处理与数据管理 信息的定义:信息是人脑对现实世界事物的存在方式.运动状态以及事物之间联系的抽象反应,信息是客观存在的,人类有意识对信息 ...

  7. java2实用教程第四版实验指导_Java2实用教程(第4版)实验指导与习题解答_IT168文库(精)...

    Exception in thread "main "java.lang.NoClassFondError 出现该错误的原因是没有设置好系统变量ClassPath ,可参见教材1. ...

  8. 电商项目的数据库表设计(MySQL版)

    简介: 目的: 电商常用功能模块的数据库设计 常见问题的数据库解决方案 环境: MySQL5.7 图形客户端,SQLyog Linux 模块: 用户:注册.登陆 商品:浏览.管理 订单:生成.管理 仓 ...

  9. 数据库原理及应用mysql班答案_数据库原理与应用(MYSQL)答案

    [多选题]下面选项中,可以查看视图相关信息的语句是 (4.0分) [单选题]下面关于SQL全称的说法中,正确的是 (2.0分) [多选题]下面选项中,属于浮点数的类型是 (2.0分) [多选题]下面选 ...

最新文章

  1. adb logcat命令查看并过滤android输出log
  2. 罗浩.ZJU | 如何看待 2020 届校招算法岗「爆炸」的情况?
  3. 华科发布报告:41%研究生学霸是单身!
  4. vuecli4 启动_vue 常见命令 (启动 部署)
  5. C#中的异步编程--探索await与async关键字的奥妙之处,原来理解和使用异步编程可以这么简单
  6. 归并排序python实现
  7. thread类_Python线程:thread对象
  8. 多屏显示 全屏后在副显示器_多屏生产力有多重要?联想ThinkVision思逸14显示器...
  9. The GDM user does not exist.Please correct gdm configration and restart gdm
  10. arcgis发布路网路径规划服务
  11. Office Ribbon 界面开发入门教程:QtitanRibbon详解
  12. 解决from Crypto.Cipher import AES报错
  13. 闲云野鹤:吃鸡(一)之场景制作:使用GPU instancing方式制作刷草插件
  14. 萌新记一次在openEuler下安装VMware-Tools的失败经历
  15. IMWEB小白DAY3-制作个人名片
  16. Bootstrap 下拉菜单(Dropdown)插件
  17. cmd命令如何cd指定路径
  18. unity 手机上获取手指触摸位置_Unity 操作检测的各种实现#2手机端 - 触屏与手势...
  19. uiautomator2 库中文手册
  20. Hermitian matrix专题一

热门文章

  1. 百练 2809 计算2的N次方
  2. MybatisPlus:使用SQL保留字(关键字)
  3. 编辑距离——莱文斯坦距离(Levenshtein distance)
  4. 在MacOS上安装MacTex
  5. cisco交换机trunk与switchport access vlan vlan-id共存的问题
  6. 基于java火车购票系统
  7. 使用UDP实现群聊聊天室
  8. 据说,这四招能提高你的打字速度 快来试试
  9. 银行卡号简单的格式化显示处理(支付宝、微信绑定卡列表显示卡号)
  10. 九种破解Windows XP登录密码的方法