69期-Java SE-036_MySQL-7 SQL练习 -doing

第一道:
  现有图书管理数据库的三个关系模式,他们的字段分别如下:
  图书表:总编号, 分类号, 书名, 作者, 出版单位, 单价
  读者表:借书证号, 单位, 姓名, 性别, 职称, 地址
  借阅表:借书证号, 总编号, 借书日期
  以上表对应的字段明细如下:
   book :
     b_no ,b_type ,b_name , b_author ,b_publish ,b_price
   reader :
     r_no ,  r_unit  , r_name  ,r_sex  ,r_pro  ,r_address
   borrow :
     r_no  , b_no  ,b_time
1、查找出价格位于10元和20元之间的图书种类,结果按
单价升序排序

2、找出藏书中各个出版社的册数、价值总额

3、求出各个出版社图书的最高价格、最低价格和册数

4、查找所有借了书的读者的姓名以及所在单位

5、找出李某所借所有图书的书名及借书日期

6、查询1997年10月以后借书的读者借书证号、姓名和单位

7、找出借阅了FoxPro大全一书的借书证号以及作者

8、分别找出借书人次超过1人次的单位及人次数

9、找出与赵正义在同一天借书的读者姓名、所在单位以及借书
   日期

10、求信息系当前借阅图书的读者人次数

11、找出当前至少借阅了2本书的读者姓名及所在单位

12、找出姓李的读者姓名和所在单位

13、求科学出版社图书的最高单价、最低单价和平均单价

14、查找出高等教育出版社的所有图书及单价,结果按单价降序
   排列

15、列出图书库中所有藏书的书名以及出版单位

第二道:
本题用到下面三个关系表:
借书卡表:卡号 、姓名 、班级
图书表:书号、书名、作者、单价、库存册数
借书记录表: 借书卡号、 书号、 还书日期
以上表对应的字段明细如下:
card  (  CNO  , NAME , CLASS  )
books ( BNO ,BNAME ,  AUTHOR ,PRICE ,QUANTITY  )
borrows  ( CNO ,BNO ,RDATE )
备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

1.找出借书超过5本的读者,输出借书卡号及所借图书册数。

2.查询借阅了"水浒"一书的读者,输出姓名及班级。

3.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。

4.查询书名包括"网络"关键词的图书,输出书号、书名、作者。

5.查询现有图书中价格最高的图书,输出书名及作者。

7. 查询当前借了"计算方法"但没有借"计算方法习题集"的读者,
输出其借书卡号,并按卡号降序排序输出。

8.将"C01"班同学所借图书的还期都延长一周。

9.从BOOKS表中删除当前无人借阅的图书记录。

10.查询当前同时借有"计算方法"和"组合数学"两本书的读者,
   输出其借书卡号,并按卡号升序排序输出。
-- MySQL dump 10.13  Distrib 8.0.11, for macos10.13 (x86_64)
--
-- Host: 127.0.0.1    Database: mysql_exam2
-- ------------------------------------------------------
-- Server version    8.0.11

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
 SET NAMES utf8mb4 ;
/*!40103 SET @[email protected]@TIME_ZONE */;
/*!40103 SET TIME_ZONE=‘+00:00‘ */;
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `books`
--

DROP TABLE IF EXISTS `books`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `books` (
  `BNO` varchar(12) NOT NULL,
  `BNAME` varchar(12) DEFAULT NULL,
  `AUTHOR` varchar(12) DEFAULT NULL,
  `PRICE` varchar(12) DEFAULT NULL,
  `QUANTITY` varchar(12) DEFAULT NULL,
  PRIMARY KEY (`BNO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `books`
--

LOCK TABLES `books` WRITE;
/*!40000 ALTER TABLE `books` DISABLE KEYS */;
INSERT INTO `books` VALUES (‘1100011‘,‘计算机网络‘,‘阿一‘,‘86.9‘,‘10‘),(‘1100022‘,‘红楼梦‘,‘阿二‘,‘53.6‘,‘5‘),(‘1100033‘,‘组合数学‘,‘阿三‘,‘26.3‘,‘15‘),(‘1100044‘,‘水浒‘,‘阿四‘,‘98.7‘,‘3‘),(‘1100055‘,‘三国‘,‘阿五‘,‘46.8‘,‘2‘),(‘1100066‘,‘计算方法‘,‘阿一‘,‘59.6‘,‘8‘),(‘1100077‘,‘计算方法习题集‘,‘阿一‘,‘23.5‘,‘8‘),(‘123‘,NULL,NULL,NULL,NULL);
/*!40000 ALTER TABLE `books` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `borrows`
--

DROP TABLE IF EXISTS `borrows`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `borrows` (
  `CNO` varchar(12) DEFAULT NULL,
  `BNO` varchar(12) DEFAULT NULL,
  `RDATE` date DEFAULT NULL,
  KEY `CNO` (`CNO`),
  KEY `BNO` (`BNO`),
  CONSTRAINT `borrows_ibfk_1` FOREIGN KEY (`CNO`) REFERENCES `card` (`cno`),
  CONSTRAINT `borrows_ibfk_2` FOREIGN KEY (`BNO`) REFERENCES `books` (`bno`),
  CONSTRAINT `borrows_ibfk_3` FOREIGN KEY (`BNO`) REFERENCES `books` (`bno`),
  CONSTRAINT `borrows_ibfk_4` FOREIGN KEY (`BNO`) REFERENCES `books` (`bno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `borrows`
--

LOCK TABLES `borrows` WRITE;
/*!40000 ALTER TABLE `borrows` DISABLE KEYS */;
INSERT INTO `borrows` VALUES (‘sx001‘,‘1100011‘,‘2019-02-15‘),(‘sx001‘,‘1100022‘,‘2019-02-15‘),(‘sx001‘,‘1100033‘,‘2019-02-15‘),(‘sx001‘,‘1100044‘,‘2019-02-15‘),(‘sx001‘,‘1100055‘,‘2019-02-15‘),(‘sx001‘,‘1100066‘,‘2019-02-15‘),(‘sx002‘,‘1100066‘,‘2019-12-01‘),(‘sx002‘,‘1100077‘,‘2019-07-09‘),(‘sx003‘,‘1100066‘,‘2019-06-15‘),(‘sx004‘,‘1100055‘,‘2019-06-15‘),(‘sx001‘,‘123‘,NULL);
/*!40000 ALTER TABLE `borrows` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `card`
--

DROP TABLE IF EXISTS `card`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `card` (
  `CNO` varchar(12) NOT NULL,
  `NAME` varchar(12) DEFAULT NULL,
  `CLASS` varchar(12) DEFAULT NULL,
  PRIMARY KEY (`CNO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `card`
--

LOCK TABLES `card` WRITE;
/*!40000 ALTER TABLE `card` DISABLE KEYS */;
INSERT INTO `card` VALUES (‘008‘,‘张铭‘,‘c02‘),(‘sx001‘,‘汪伟‘,‘c01‘),(‘sx002‘,‘张三‘,‘c02‘),(‘sx003‘,‘李四‘,‘c02‘),(‘sx004‘,‘王五‘,‘c02‘),(‘sx005‘,‘小明‘,‘c02‘),(‘sx006‘,‘小红‘,‘c02‘);
/*!40000 ALTER TABLE `card` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET [email protected]_TIME_ZONE */;

/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40014 SET [email protected]_UNIQUE_CHECKS */;
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
/*!40111 SET [email protected]_SQL_NOTES */;

-- Dump completed on 2019-06-16 22:04:59

原文地址:https://www.cnblogs.com/HiJackykun/p/11166982.html

时间: 2024-08-30 11:16:17

69期-Java SE-036_MySQL-7 SQL练习 -doing的相关文章

69期-Java SE-035_MySQL-6 存储过程、SQL练习 -doing

### 存储过程 存储过程是一组为了完成特定功能的 SQL 语句集合,经过编译后存储在数据库中,用户通过指定存储过程的名称以及参数来执行相应的存储过程. 一次编写,多次调用,避免开发人员重复编写相同的 SQL 语句,存储过程是在数据库中存储和执行的,可以减少客户端和服务端之间的数据传输,从而提高效率. ### 优点 - 模块化的程序设计,只需要创建一次存储过程,以后就可以在程序中调用该存储过程任意次. - 执行速度更快,如果某个操作需要执行大量的 SQL 语句或者需要重复执行 SQL 语句,存储

69期-Java SE-031_MySQL-001-002 创建表、MySQL数据类型、数据的管理(数据库结构、数据表、数据)、SQL 函数

### 创建表 1.创建数据库 ```sql create database mstest default character set utf8 collate utf8_general_ci ``` 2.创建数据表 ```sql create table user( id int, name varchar(11) ) ``` Java 数据类型:基本数据类型 byte short int long double float boolean char ? 引用类型 MySQL 数据类型 - 整

69期-Java SE-015_集合-1-001-002

### Collection 接口,一个Collection存储一组无序.不唯一的对象,一般不会直接使用该接口. Collection 常用方法 - int size() 获取集合的长度 - boolean isEmpty() 判断集合是否为空 - boolean contains(Object o) 判断集合中是否存在某个对象 - Iterator<E> itertor() 实例化Iterator接口,遍历集合 - Object[] toArray() 将集合转换为一个Object类型的数组

69期-Java SE-040_JDBC-4

C3P0 的使用 1.c3p0-config.xml 名称不能自定义 ```xml <c3p0-config> <named-config name="testc3p0"> <property name="user">root</property> <property name="password">root</property> <property name=&quo

69期-Java SE-002_变量、运算符-001-002

- 声明变量的数据类型和变量名. - 给内存空间赋值,该值就是变量值. - 通过变量名使用变量. ```java public class Hello { public static void main(String[] args) { //1.开辟内存空间,定义变量名 int num1; //2.赋值 num1 = 10; //3.使用变量 System.out.println(num1); } } ``` ```java public class Hello { public static

69期-Java SE-003_流程控制、循环-001-002

### 位运算符 十进制和二进制的转换. - 十进制转二进制:目标数除以二,如果能除尽,则该位计作零,如果除不尽,则该位计作一,再对商继续除以二,以此类推,直到商为零,然后将每一位的结果进行反序组合就是对应的二进制结果,10 转为二进制 1010,17 转为二进制 10001 - 二进制转十进制:从目标数最右侧算起,本位的数值乘以本位的权重,权重就是2的第几位的位数减一次方,如果第1位就是2的(1-1)次方,第2位就是2的(2-1)次方,第3位就是2的(3-1)次方…,将每一位的数值和本位权重相

69期-Java SE-004_循环、数组-001-002

Hello.java import java.util.Scanner; public class Hello { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = "yes"; int num; while(str.equals("yes")) { System.out.print("请输入学生编号:")

69期-Java SE-005_二维数组、综合练习-001-002

Test.java public class Test { public static void main(String[] args) { int[] array = {73,80,62,93,96,87}; //求最大值 int max = array[0]; for(int i=1;i<array.length;i++) { if(array[i]>max) { max = array[i]; } } System.out.println("数组中的最大值是"+max

69期-Java SE-007_面向对象-1-001-002

Student.java public class Student { //定义属性 int id; String name; int age; int userFirstName; double myScore; //定义方法 public static int add(int num1,int num2) { return num1+num2; } public static void add2(int num1,int num2) { System.out.println(num1+num