作业7

YangeIT大约 10 分钟

作业7

答案

1.基本sql查询语句

基本sql查询语句

表结构
表结构
CREATE TABLE student (
 id INT, -- 编号
 name VARCHAR(20), -- 姓名
 age INT, -- 年龄
 sex VARCHAR(5), -- 性别
 address VARCHAR(100), -- 地址
 math INT, -- 数学
 english INT -- 英语
);

INSERT INTO 
	student (id,name,age,sex,address,math,english) 
VALUES 
	(1,'马云',55,'男','杭州',66,78),
	(2,'马化腾',45,'女','深圳',98,87),
	(3,'马景涛',55,'男','香港',56,77),
	(4,'柳岩',20,'女','湖南',76,65),
	(5,'柳青',20,'男','湖南',86,NULL),
	(6,'刘德华',57,'男','香港',99,99),
	(7,'马德',22,'女','香港',99,99),
	(8,'德玛西亚',18,'男','南京',56,65);



-- 查询 math 分数大于 80 分的学生
-- 查询 english 分数小于或等于 80 分的学生
-- 查询 age 等于 20 岁的学生
-- 查询 age 不等于 20 岁的学生
-- 查询 age 大于 35 且性别为男的学生(两个条件同时满足)
-- 查询 age 大于 35 或性别为男的学生(两个条件其中一个满足)
-- 查询 id 是 1 或 3 或 5 的学生
-- 查询 english 成绩大于等于 75,且小于等于 90 的学生
-- 查询姓马的学生
-- 查询姓名中包含'德'字的学生

2.经典sql查询语句

前言

-- 经典SQL练习题
CREATE TABLE student
(
    sno       VARCHAR(3) NOT NULL, -- 编号
    sname     VARCHAR(4) NOT NULL, -- 姓名
    ssex      VARCHAR(2) NOT NULL, -- 性别
    sbirthday DATETIME, -- 生日
    class     VARCHAR(5) -- 班级
);

CREATE TABLE course
(
    cno   VARCHAR(5)  NOT NULL, -- 课程编号
    cname VARCHAR(10) NOT NULL,-- 课程名
    tno   VARCHAR(10) NOT NULL -- 老师编号
);
CREATE TABLE score
(
    sno    VARCHAR(3)     NOT NULL, -- 学生编号
    cno    VARCHAR(5)     NOT NULL,-- 课程编号
    degree NUMERIC(10, 1) NOT NULL -- 成绩
);
CREATE TABLE teacher
(
    tno       VARCHAR(3)  NOT NULL, -- 老师编号
    tname     VARCHAR(4)  NOT NULL, -- 名称
    tsex      VARCHAR(2)  NOT NULL, -- 性别
    tbirthday DATETIME    NOT NULL, -- 生日
    prof      VARCHAR(6), -- 职位
    depart    VARCHAR(10) NOT NULL -- 系部
);

INSERT INTO student(sno, sname, ssex, sbirthday, class)
VALUES (108, '曾华', '男', '1977-09-01', 95033);
INSERT INTO student(sno, sname, ssex, sbirthday, class)
VALUES (105, '匡明', '男', '1975-10-02', 95031);
INSERT INTO student(sno, sname, ssex, sbirthday, class)
VALUES (107, '王丽', '女', '1976-01-23', 95033);
INSERT INTO student(sno, sname, ssex, sbirthday, class)
VALUES (101, '李军', '男', '1976-02-20', 95033);
INSERT INTO student (sno, sname, ssex, sbirthday, class)
VALUES (109, '王芳', '女', '1975-02-10', 95031);
INSERT INTO student(sno, sname, ssex, sbirthday, class)
VALUES (103, '陆君', '男', '1974-06-03', 95031);
INSERT INTO course(cno, cname, tno)
VALUES ('3-105', '计算机导论', 825);
INSERT INTO course(cno, cname, tno)
VALUES ('3-245', '操作系统', 804);
INSERT INTO course(cno, cname, tno)
VALUES ('6-166', '数据电路', 856);
INSERT INTO course(cno, cname, tno)
VALUES ('9-888', '高等数学', 100);
INSERT INTO score(sno, cno, degree)
VALUES (103, '3-245', 86);
INSERT INTO score(sno, cno, degree)
VALUES (105, '3-245', 75);
INSERT INTO score(sno, cno, degree)
VALUES (109, '3-245', 68);
INSERT INTO score(sno, cno, degree)
VALUES (103, '3-105', 92);
INSERT INTO score(sno, cno, degree)
VALUES (105, '3-105', 88);
INSERT INTO score(sno, cno, degree)
VALUES (109, '3-105', 76);
INSERT INTO score(sno, cno, degree)
VALUES (101, '3-105', 64);
INSERT INTO score(sno, cno, degree)
VALUES (107, '3-105', 91);
INSERT INTO score(sno, cno, degree)
VALUES (108, '3-105', 78);
INSERT INTO score(sno, cno, degree)
VALUES (101, '6-166', 85);
INSERT INTO score(sno, cno, degree)
VALUES (107, '6-106', 79);
INSERT INTO score(sno, cno, degree)
VALUES (108, '6-166', 81);
INSERT INTO teacher(tno, tname, tsex, tbirthday, prof, depart)
VALUES (804, '李诚', '男', '1958-12-02', '副教授', '计算机系');
INSERT INTO teacher(tno, tname, tsex, tbirthday, prof, depart)
VALUES (856, '张旭', '男', '1969-03-12', '讲师', '电子工程系');
INSERT INTO teacher(tno, tname, tsex, tbirthday, prof, depart)
VALUES (825, '王萍', '女', '1972-05-05', '助教', '计算机系');
INSERT INTO teacher(tno, tname, tsex, tbirthday, prof, depart)
VALUES (831, '刘冰', '女', '1977-08-14', '助教', '电子工程系');

3.数据库多表设计题当天必须完成

数据库多表设计题

根据下列需求,完成表关系设计,无需物理外键和数据

题目: 餐厅菜单管理

设计数据库模型来管理餐厅的菜单。数据库中应包括以下表和关系:

  • 餐厅表(Restaurants):包含餐厅的信息,如名称、地址等。
  • 菜单表(Menus):每个餐厅可以有多个菜单。
  • 菜品表(Dishes):每个菜单包含多个菜品。
  • 订单表(Orders):记录顾客下的订单,与餐厅和菜品建立关系。

4.数据库多表设计题当天必须完成

小说APP

原则上多少张表取决于你自己的理解,言之有理即可,没有标准答案

现在要为一个阅读 app 设计部分后台数据库表,功能原型

1️⃣ (1) 我的书架 - 图1
  1. 只需考虑书架这个页面可见部分(浏览历史、圈子和下面的书城、分类、福 利,我的都不用考虑)
  2. 整本书有个阅读进度(最近一次阅读的章节)
2️⃣ (2) 书籍详情 - 图2

只需要考虑详情和目录两部分(笔记不考虑)

  1. 目录中列出了书的所有章节
  2. 金庸和梁羽生的两本书都说有多少多少册,这个不考虑,权且认为每本书 分成多个章节即可 注意:每一章节都有各自的阅读进度(显示的是读过段落和本章总段落的百分比)

image

3️⃣ 3)阅读 - 图3

可以看到每一章节分成若干段落,根据段落确定阅读进度 image

image
image
4️⃣ (4) 想法 - 图4
  1. 以段落为单位可以进行评论(称为想法),点击每个段落最后的按钮后进入此段落的想法
  2. 想法可以有多条,每个想法均可以被点赞(不必考虑转发)
image
image
image
image