mysql题目(视图、事务)

mysql题目(视图、事务)

直接po代码和案例

#mysql题目(视图、事务)

#1.创建Book表,字段如下:
/*bid 整型 主键
bName 字符型,要求唯一并且非空
price 浮点数,要求有默认值10
bTypeId 类型编号,要求引用BookType表的id字段

已知BookType表,字段如下:
id
name

*/

CREATE TABLE BookType(
	id INT PRIMARY KEY,
	`name` VARCHAR(40) UNIQUE NOT NULL
);

CREATE TABLE Book(
	bid INT PRIMARY KEY,
	bName VARCHAR(50) UNIQUE NOT NULL,
	price FLOAT DEFAULT 10,
	bTypeId INT,
	CONSTRAINT fk_Book_bTypeId_BookType_id FOREIGN KEY(bTypeId) REFERENCES BookType(id)
	#FOREIGN KEY(bTypeId) REFERENCES BookType(id)
);
#
SELECT * FROM Book;
#
SHOW VARIABLES LIKE '%autocommit%';

#2.开启事务,向表中插入1行数据,并结束
SET autocommit=0;
START TRANSACTION;
INSERT INTO Book(bid, bName, price, bTypeId) VALUES(2, '射雕英雄传', 39.62, 10);
COMMIT;
#rollback;
#


#3.创建视图,实现查询价格大于100的书名和类型名
CREATE OR REPLACE VIEW my_book_view
AS
SELECT b.bname, bt.name FROM Book b
INNER JOIN BookType bt
ON b.bTypeId = bt.id
WHERE price > 100;
#
SELECT * FROM my_book_view;


#4.修改视图,实现查询价格在90-120之间的书名和价格
#修改视图(方式一)
CREATE OR REPLACE VIEW my_book_view
AS
SELECT bname, price FROM Book
WHERE price BETWEEN 90 AND 120;
#
SELECT * FROM my_book_view;

#修改视图(方式二)
ALTER VIEW my_book_view
AS
SELECT bname, price FROM Book
WHERE price BETWEEN 90 AND 130;
#
SELECT * FROM my_book_view;


#5.删除刚才创建的视图
DROP VIEW IF EXISTS my_book_view;
DROP VIEW my_book_view;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值