MySQL 基础教程[11]
- 问题1
- 问题1代码
- 问题2
- 问题2代码
- 本系列MySQL 基础教程通过“问题-代码”的方式介绍各类方法,每篇设置2个MySQL综合问题,并给出解决方案。
问题1
学生借阅图书信息数据库JY包含学生信息表student、图书信息表book和借阅信息表reading。表studenti己录学生的 学号、姓名、性别和年龄等信息; 表book记录图书的书号、书名、作者和价格等信息; 表reading描述图书借阅信息, 并记录为学生办理图书借阅的老师姓名。
- 在数据库JY中使用CREATE命令创建一个数据表publisher, 包括pub_id(社号)、pub_name(社名)、pub_address (地址) 等三个字段, 相应的数据类型分别为整型、字符串型(char(30))和字符串型(char(30)), 要求pub_id字段作为该 表的主键, pub_name和pub_address字段不能为空。
- 使用ALTER语句, 修改表book的结构, 添加一个名为pub_post的列, 用于关联图书的出版社信息, 该列值允许为 NULL, 数据类型为整型。
- 使用INSERT语句血表reading中添加如下一条借阅信息: 名为“wen"的老师为学号8的学生办理书号为 6 的图书借阅。
- 使用DELETE语句删除表reading中学号为 3 学生的借阅信息。
- 使用 SELECT语句查询书号为 3 的书名。
问题1代码
#【1】
use jy;
create table publisher (
pub_id int primary key auto_increment,
pub_name char(30) not null,
pub_address char(30) not null
);
#【2】
alter table book add column pub_post int default null;
alter table book add constraint FK_book_pub_post foreign key(pub_post) references publisher(pub_id);
alter table book add constraint FK_book foreign key(pub_post) references publisher(pub_id);
#【3】
show create table reading;
insert into reading values();
#【4】
delete from reading where no=3;
#【5】
select name from book where no=3;
问题2
-
创建一个名称为v_student的视图, 能够查询借阅了书名为“高等数学”的学生全部信息。
-
创建一个存储过程, 功能是将书名中含有“计算机”的所有图书价格增加 10 % 10 \% 10% 。
问题2代码
#【1】
USE JY;
CREATE view v_student
AS
SELECT stu_id, stu_name, stu_sex, stu_age
FROM student
WHERE student.stu_id in (SELECT reading.stu_no FROM reading, student
WHERE reading.book_no=book.book_id
AND book.book_name='高等数学');
#【2】
USE JY;
DELIMITERS $$
CREATE procedure sp_update_price
BEGIN
UPDATE book SET price=price*1.1 WHERE book_name like "%计算机%";
END $$