MYSQL第五次作业

-- 创建出版社表
CREATE TABLE t_publish(
	p_id INT PRIMARY KEY AUTO_INCREMENT, -- 主键,出版社ID
	p_name VARCHAR(100) NOT NULL, -- 名称
	p_address VARCHAR(200) DEFAULT '北京', -- 出版社地区,默认为北京
	p_head VARCHAR(100) DEFAULT '未知' -- 出版社负责人,默认为未知
);

-- 创建书籍表
CREATE TABLE t_book(
	book_id INT PRIMARY KEY AUTO_INCREMENT, -- 主键,书籍ID
	book_name VARCHAR(100) NOT NULL, -- 名称
	book_author VARCHAR(100) NOT NULL , -- 作者
	book_date DATETIME DEFAULT '2012-12-31', -- 出版时间,默认 '2012-12-31'
	p_id INT , -- 外键,出版社表
	CONSTRAINT fk_p_id FOREIGN KEY (p_id) REFERENCES t_publish(p_id) -- 增加外键
);

-- 查出版社全表
SELECT * FROM t_publish;

-- 查书籍全表
SELECT * FROM t_book;

-- 增出版社
INSERT INTO t_publish VALUES(NULL,'吉林教育出版社','吉林','高岩'),
			(NULL,'海天出版社','深圳',NULL);
-- 增书籍
INSERT INTO t_book VALUES(NULL,'三国演义','罗贯中','1984-09-01',1),
			(NULL,'西游记','吴承恩','1984-01-01',2);

-- 1修改海天出版社负责人的名字为'老王'
UPDATE t_publish t SET t.`p_head`='老王' WHERE t.`p_name`='海天出版社';

-- 2 新增一条java从入门到精通书籍.包括出版社(清华大学出版社).
INSERT INTO t_publish VALUES(NULL,'清华大学出版社','长沙','凯杰');
INSERT INTO t_book VALUES(NULL,'java从入门到精通','冯修真','2019-08-01',3);

-- 新增,四大名著:出版社与西游记相同.余下的两本书 出版时间均为2013-01-01
INSERT INTO t_book VALUES(NULL,'红楼梦','曹雪芹','2013-01-01',2),
			(NULL,'水浒传','施耐庵','2013-01-01',2);
			
-- 新增,sql,html,面向对象从入门到精通,出版社与<java从入门到精通(清华大学出版社---大毛)>一致. 出版时间均为2016-01-01
INSERT INTO t_book VALUES(NULL,'sql','王鑫','2016-01-01',3),
			(NULL,'html','肖悦','2016-01-01',3),
			(NULL,'面向对象从入门到精通','肖恺','2016-01-01',3);

-- 1  查询书籍表 按出版时间分组,各时间段分别出版了几本书.
SELECT b.`book_date`, COUNT(b.`book_id`) FROM t_book b GROUP BY b.`book_date` ;

-- 2 查询出版社表 各地区有多少个出版社
SELECT p.`p_address`,COUNT(p.`p_id`) FROM t_publish p GROUP BY p.`p_address`;

-- 3 查询出版社表 出版的书籍大于1 的出版社
SELECT p.`p_name`,COUNT(b.`book_id`) FROM t_publish p,t_book b  
		WHERE p.`p_id`=b.`p_id`
		GROUP BY p.`p_address`
		HAVING COUNT(b.`book_id`)>1;
		
-- 4 找出出版时间最早的书籍
SELECT b.`book_name`,b.`book_date` FROM t_book b WHERE b.`book_date`=(SELECT MIN(b2.`book_date`) FROM t_book b2);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值