1. 需求分析
1.1 系统功能需求
图书信息管理 客户信息管理 订单管理 库存管理 销售统计分析 出版社管理 作者管理
1.2 数据实体
图书(books) 客户(customers) 订单(orders) 订单详情(order_details) 出版社(publishers) 作者(authors) 图书作者关联(book_authors) 分类(categories)
2. 概念设计(ER图)
客户(Customer) ---< 订单(Order) ---< 订单详情(OrderDetail) >--- 图书(Book)|
图书(Book) ---< 图书作者关联(BookAuthor) >--- 作者(Author)
图书(Book) ---> 出版社(Publisher)
图书(Book) ---> 分类(Category)
3. 逻辑设计
3.1 关系模式
Publishers( PublisherID, PublisherName, ContactPerson, Phone, Address, Email)
Categories( CategoryID, CategoryName, Description)
Authors( AuthorID, AuthorName, Nationality, BirthDate, Biography)
Books( BookID, ISBN, Title, PublisherID, CategoryID, PublishDate, Price, StockQuantity, PageCount, Language )
BookAuthors( BookID, AuthorID)
Customers( CustomerID, FirstName, LastName, Email, Phone, Address, RegistrationDate)
Orders( OrderID, CustomerID, OrderDate, TotalAmount, Status , ShippingAddress)
OrderDetails( OrderDetailID, OrderID, BookID, Quantity, UnitPrice, Subtotal)
4. 物理实现
4.1 创建数据库和表
CREATE DATABASE BookSalesSystem;
USE BookSalesSystem;
[ yt@localhost lampp] $ / opt/ lampp/ bin/ mysql - uroot
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.4 .32 - MariaDB Source distributionCopyright ( c) 2000 , 2018 , Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [ ( none) ] > show databases - > ;
+
| Database |
+
| information_schema |
| mysql |
| performance_schema |
| phpmyadmin |
| school |
| student |
| test |
+
7 rows in set ( 0.004 sec) MariaDB [ ( none) ] > create database BookSalesSystem;
Query OK, 1 row affected ( 0.001 sec) MariaDB [ ( none) ] > show databases ;
+
| Database |
+
| BookSalesSystem |
| information_schema |
| mysql |
| performance_schema |
| phpmyadmin |
| school |
| student |
| test |
+
8 rows in set ( 0.001 sec) MariaDB [ ( none) ] > USE BookSalesSystem;
Database changed
CREATE TABLE Publishers ( PublisherID INT PRIMARY KEY AUTO_INCREMENT , PulisherName VARCHAR ( 100 ) NOT NULL , ContactPerson VARCHAR ( 50 ) , Phone VARCHAR ( 20 ) , Address TEXT , Email VARCHAR ( 100 ) ,
CreateDate DATETIME DEFAULT CURRENT_TIMESTAMP
) ;
CREATE TABLE Categories ( CategoryID INT PRIMARY KEY AUTO_INCREMENT , CategoryName VARCHAR ( 50 ) NOT NULL , Description TEXT , CreatedDate DATETIME DEFAULT CURRENT_TIMESTAMP
) ;
CREATE TABLE Authors ( AuthorID INT PRIMARY KEY AUTO_INCREMENT , AuthorName VARCHAR ( 100 ) NOT NULL , Nationality VARCHAR ( 50 ) , BirthDate DATE , Biography TEXT , CreatedDate DATETIME DEFAULT CURRENT_TIMESTAMP
) ;
CREATE TABLE Books ( BookID INT PRIMARY KEY AUTO_INCREMENT , ISBN VARCHAR ( 20 ) UNIQUE NOT NULL , Title VARCHAR ( 200 ) NOT NULL , PublisherID INT , CategoryID INT , PublishDate DATE , Price DECIMAL ( 10 , 2 ) NOT NULL , StockQuantity INT DEFAULT 0 , PageCount INT , Language VARCHAR ( 20 ) DEFAULT '中文' , CreatedDate DATETIME DEFAULT CURRENT_TIMESTAMP , FOREIGN KEY ( PublisherID) REFERENCES Publishers( PublisherID) , FOREIGN KEY ( CategoryID) REFERENCES Categories( CategoryID)
) ;
CREATE TABLE BookAuthors ( BookID INT , AuthorID INT , PRIMARY KEY ( BookID, AuthorID) , FOREIGN KEY ( BookID) REFERENCES Books( BookID) , FOREIGN KEY ( AuthorID) REFERENCES Authors( AuthorID)
) ;
CREATE TABLE Customers ( CustomerID INT PRIMARY KEY AUTO_INCREMENT , FirstName VARCHAR ( 50 ) NOT NULL , LastName VARCHAR ( 50 ) NOT NULL , Email VARCHAR ( 100 ) UNIQUE , Phone VARCHAR ( 20 ) , Address TEXT , RegistrationDate DATETIME DEFAULT CURRENT_TIMESTAMP
) ;
CREATE TABLE Orders ( OrderID INT PRIMARY KEY AUTO_INCREMENT , CustomerID INT , OrderDate DATETIME DEFAULT CURRENT_TIMESTAMP , TotalAmount DECIMAL ( 10 , 2 ) NOT NULL , Status ENUM ( '待付款' , '已付款' , '发货中' , '已完成' , '已取消' ) DEFAULT '待付款' , ShippingAddress TEXT , FOREIGN KEY ( CustomerID) REFERENCES Customers( CustomerID)
) ;
CREATE TABLE OrderDetails ( OrderDetailID INT PRIMARY KEY AUTO_INCREMENT , OrderID INT , BookID INT , Quantity INT NOT NULL , UnitPrice DECIMAL ( 10 , 2 ) NOT NULL , Subtotal DECIMAL ( 10 , 2 ) NOT NULL , FOREIGN KEY ( OrderID) REFERENCES Orders( OrderID) , FOREIGN KEY ( BookID) REFERENCES Books( BookID)
) ;
4.2 插入业务数据
INSERT INTO Publishers ( PublisherName, ContactPerson, Phone, Address, Email) VALUES
( '人民文学出版社' , '张编辑' , '010-65223329' , '北京市朝内大街166号' , 'rmwx@people.com' ) ,
( '商务印书馆' , '李经理' , '010-65252038' , '北京市王府井大街36号' , 'cp@commercialpress.com' ) ,
( '中华书局' , '王总监' , '010-63281182' , '北京市丰台区太平桥西里38号' , 'zhbc@zhbc.com' ) ,
( '机械工业出版社' , '刘主任' , '010-88379666' , '北京市百万庄大街22号' , 'cmp@cmpbook.com' ) ,
( '清华大学出版社' , '陈编辑' , '010-83470255' , '北京市海淀区清华园' , 'tup@tup.tsinghua.edu.cn' ) ,
( '电子工业出版社' , '赵经理' , '010-88258888' , '北京市万寿路南口金家村288号' , 'phei@phei.com.cn' ) ,
( '中信出版社' , '周总监' , '010-84849558' , '北京市朝阳区惠新东街甲4号' , 'citicpub@citicpub.com' ) ,
( '上海译文出版社' , '吴编辑' , '021-62475199' , '上海市福建中路193号' , 'stph@stph.com.cn' ) ,
( '外研社' , '郑主任' , '010-88819928' , '北京市西三环北路19号' , 'ftp@fltrp.com' ) ,
( '北京大学出版社' , '孙经理' , '010-62752033' , '北京市海淀区成府路205号' , 'pup@pup.pku.edu.cn' ) ,
( '科学出版社' , '钱总监' , '010-64019823' , '北京市东黄城根北街16号' , 'sciencep@mail.sciencep.com' ) ,
( '高等教育出版社' , '冯编辑' , '010-58581118' , '北京市西城区德外大街4号' , 'academic@hep.com.cn' ) ,
( '人民邮电出版社' , '陈主任' , '010-81055205' , '北京市丰台区成寿寺路11号' , 'ppt@ptpress.com.cn' ) ,
( '作家出版社' , '朱经理' , '010-65004079' , '北京市农展馆南里10号' , 'zjcb@zjcb.com' ) ,
( '法律出版社' , '秦总监' , '010-63939796' , '北京市莲花池西里7号' , 'lawpress@lawpress.com.cn' ) ,
( '化学工业出版社' , '尤编辑' , '010-64982530' , '北京市东城区青年湖南街13号' , 'cip@cip.com.cn' ) ,
( '中国青年出版社' , '许主任' , '010-57350368' , '北京市东四十二条21号' , 'cyp@cyp.com.cn' ) ,
( '人民教育出版社' , '何经理' , '010-58758866' , '北京市海淀区中关村南大街17号' , 'pep@pep.com.cn' ) ,
( '中国电力出版社' , '吕总监' , '010-58383316' , '北京市西城区三里河路6号' , 'cepp@cepp.com.cn' ) ,
( '中国建筑工业出版社' , '施编辑' , '010-58337028' , '北京市海淀区百万庄' , 'cabp@cabp.com.cn' ) ,
( '人民卫生出版社' , '张主任' , '010-59787088' , '北京市朝阳区潘家园南里19号' , 'pmph@pmph.com' ) ,
( '中国林业出版社' , '孔经理' , '010-83143568' , '北京市西城区德内大街刘海胡同7号' , 'cfph@cfph.com.cn' ) ,
( '中国水利水电出版社' , '曹总监' , '010-68317638' , '北京市西城区三里河路6号' , 'waterpub@waterpub.com.cn' ) ,
( '国防工业出版社' , '严编辑' , '010-68427773' , '北京市海淀区紫竹院南路23号' , 'ndip@ndip.com.cn' ) ,
( '中国纺织出版社' , '华主任' , '010-67004482' , '北京市东直门南大街6号' , 'c-textilep@c-textilep.com.cn' ) ,
( '中国轻工业出版社' , '金经理' , '010-65122392' , '北京市东长安街6号' , 'chlip@chlip.com.cn' ) ,
( '中国环境科学出版社' , '魏总监' , '010-67112765' , '北京市崇文区广渠门内大街16号' , 'cesp@cesp.com.cn' ) ,
( '中国标准出版社' , '陶编辑' , '010-68523946' , '北京市复兴门外三里河北街16号' , 'spc@spc.net.cn' ) ,
( '中国计量出版社' , '姜主任' , '010-64275360' , '北京市和平里西街甲2号' , 'zgjl@zgjl.com.cn' ) ,
( '中国地图出版社' , '戚经理' , '010-68531324' , '北京市白纸坊西街3号' , 'chmp@chmp.com.cn' ) ,
( '中国金融出版社' , '谢总监' , '010-63265588' , '北京市广安门外小红庙南里3号' , 'chinafph@chinafph.com' ) ,
( '中国经济出版社' , '邹编辑' , '010-68319282' , '北京市西城区百万庄北街3号' , 'economyph@economyph.com.cn' ) ,
( '中国财政经济出版社' , '喻主任' , '010-88190406' , '北京市海淀区阜成路甲28号' , 'cfeph@cfeph.cn' ) ,
( '中国统计出版社' , '柏经理' , '010-63376907' , '北京市西城区三里河月坛南街57号' , 'zgtt@stats.gov.cn' ) ,
( '中国审计出版社' , '水总监' , '010-64066036' , '北京市海淀区阜石路甲19号' , 'zgsj@audit.gov.cn' ) ,
( '中国税务出版社' , '窦编辑' , '010-63568180' , '北京市宣武区槐柏树后街21号' , 'taxation@taxation.cn' ) ,
( '中国商业出版社' , '章主任' , '010-66095351' , '北京市宣武区报国寺1号' , 'zgss@zgss.com.cn' ) ,
( '中国物价出版社' , '云经理' , '010-68020336' , '北京市西城区月坛北小街2号' , 'pricepub@pricepub.com.cn' ) ,
( '中国劳动社会保障出版社' , '苏总监' , '010-64911180' , '北京市惠新东街1号' , 'class@class.com.cn' ) ,
( '中国人事出版社' , '潘编辑' , '010-84643937' , '北京市朝阳区育慧里5号' , 'rspress@rspress.net.cn' ) ,
( '中国广播电视出版社' , '葛主任' , '010-86092876' , '北京市西城区真武庙二条9号' , 'zgdt@zgdt.com.cn' ) ,
( '中国电影出版社' , '奚经理' , '010-64219977' , '北京市北三环东路22号' , 'cfpc@cfpc.com.cn' ) ,
( '中国戏剧出版社' , '范总监' , '010-84042564' , '北京市海淀区大钟寺南村甲81号' , 'zgxj@zgxj.com.cn' ) ,
( '中国美术出版社' , '彭编辑' , '010-65023518' , '北京市东城区北总布胡同32号' , 'zgms@zgms.com.cn' ) ,
( '中国摄影出版社' , '郎主任' , '010-65233647' , '北京市东城区红星胡同61号' , 'cpph@cpph.com.cn' ) ,
( '中国书法出版社' , '鲁经理' , '010-63096438' , '北京市宣武区琉璃厂西街57号' , 'zgss@zgss.com.cn' ) ,
( '中国连环画出版社' , '韦总监' , '010-63034247' , '北京市北总布胡同32号' , 'zglhh@zglhh.com.cn' ) ,
( '中国少年儿童出版社' , '昌编辑' , '010-64030149' , '北京市东四十二条21号' , 'ccppg@ccppg.com.cn' ) ,
( '中国青年出版社' , '马主任' , '010-57350368' , '北京市东四十二条21号' , 'cyp@cyp.com.cn' ) ,
( '中国妇女出版社' , '苗经理' , '010-65133161' , '北京市东城区史家胡同甲24号' , 'zgfn@zgfn.com.cn' ) ;
INSERT INTO Categories ( CategoryName, Description) VALUES
( '文学小说' , '各类小说、散文、诗歌等文学作品' ) ,
( '经济管理' , '经济学、管理学、市场营销等相关书籍' ) ,
( '计算机科学' , '编程、算法、人工智能、数据库等技术书籍' ) ,
( '历史地理' , '历史事件、地理知识、考古发现等' ) ,
( '哲学宗教' , '哲学理论、宗教研究、思想史等' ) ,
( '艺术设计' , '绘画、设计、音乐、摄影等艺术类书籍' ) ,
( '教育学习' , '教材、教辅、学习方法、考试指南等' ) ,
( '科学技术' , '自然科学、工程技术、医学等专业书籍' ) ,
( '生活休闲' , '烹饪、旅游、健身、家居等生活类图书' ) ,
( '儿童读物' , '儿童文学、绘本、科普读物等' ) ,
( '社会科学' , '社会学、心理学、政治学等' ) ,
( '法律政治' , '法律法规、政治理论、国际关系等' ) ,
( '医学健康' , '医学知识、健康养生、疾病防治等' ) ,
( '外语学习' , '英语、日语等外语学习资料' ) ,
( '传记纪实' , '人物传记、历史纪实、回忆录等' ) ;
INSERT INTO Books ( ISBN, Title, PublisherID, CategoryID, PublishDate, Price, StockQuantity, PageCount, Language ) VALUES
( '9787020002207' , '红楼梦' , 1 , 1 , '2018-01-01' , 59.80 , 100 , 960 , '中文' ) ,
( '9787020008728' , '水浒传' , 1 , 1 , '2018-03-15' , 49.90 , 85 , 848 , '中文' ) ,
( '9787020008742' , '西游记' , 1 , 1 , '2018-05-20' , 52.00 , 92 , 896 , '中文' ) ,
( '9787020008766' , '三国演义' , 1 , 1 , '2018-07-10' , 55.60 , 78 , 912 , '中文' ) ,
( '9787020090006' , '围城' , 1 , 1 , '2017-11-05' , 39.80 , 120 , 336 , '中文' ) ,
( '9787020096695' , '平凡的世界' , 1 , 1 , '2017-09-12' , 99.00 , 65 , 1256 , '中文' ) ,
( '9787020127245' , '活着' , 1 , 1 , '2017-06-18' , 28.00 , 150 , 196 , '中文' ) ,
( '9787506365437' , '白夜行' , 9 , 1 , '2013-01-01' , 39.50 , 88 , 538 , '中文' ) ,
( '9787544285145' , '解忧杂货店' , 8 , 1 , '2014-05-01' , 39.50 , 110 , 298 , '中文' ) ,
( '9787530216782' , '三体' , 14 , 1 , '2008-01-01' , 23.00 , 95 , 302 , '中文' ) ,
( '9787530216859' , '三体Ⅱ:黑暗森林' , 14 , 1 , '2008-05-01' , 32.00 , 87 , 470 , '中文' ) ,
( '9787530216903' , '三体Ⅲ:死神永生' , 14 , 1 , '2010-11-01' , 36.00 , 82 , 513 , '中文' ) ,
( '9787544253991' , '百年孤独' , 8 , 1 , '2011-06-01' , 39.50 , 76 , 360 , '中文' ) ,
( '9787020122066' , '骆驼祥子' , 1 , 1 , '2018-03-01' , 28.00 , 105 , 224 , '中文' ) ,
( '9787020094199' , '边城' , 1 , 1 , '2018-06-01' , 25.00 , 98 , 176 , '中文' ) ,
( '9787544281109' , '嫌疑人X的献身' , 8 , 1 , '2014-06-01' , 35.00 , 92 , 251 , '中文' ) ,
( '9787544270875' , '放学后' , 8 , 1 , '2013-08-01' , 28.00 , 85 , 215 , '中文' ) ,
( '9787544281321' , '恶意' , 8 , 1 , '2016-11-01' , 39.50 , 79 , 264 , '中文' ) ,
( '9787544267615' , '挪威的森林' , 8 , 1 , '2018-03-01' , 38.60 , 112 , 400 , '中文' ) ,
( '9787544285664' , '追风筝的人' , 8 , 1 , '2018-08-01' , 36.00 , 124 , 362 , '中文' ) ,
( '9787544291170' , '人生海海' , 8 , 1 , '2019-04-01' , 55.00 , 68 , 375 , '中文' ) ,
( '9787208061644' , '追忆似水年华' , 12 , 1 , '2010-01-01' , 68.00 , 45 , 512 , '中文' ) ,
( '9787532747719' , '不能承受的生命之轻' , 9 , 1 , '2017-05-01' , 28.00 , 83 , 345 , '中文' ) ,
( '9787544700116' , '小王子' , 13 , 1 , '2018-10-01' , 22.00 , 200 , 96 , '中文' ) ,
( '9787544281093' , '圣女的救济' , 8 , 1 , '2017-01-01' , 45.00 , 74 , 312 , '中文' ) ,
( '9787544281086' , '黎明之街' , 8 , 1 , '2018-06-01' , 42.00 , 81 , 296 , '中文' ) ,
( '9787544291405' , '沉默的巡游' , 8 , 1 , '2020-03-01' , 59.00 , 63 , 400 , '中文' ) ,
( '9787544291221' , '祈念守护人' , 8 , 1 , '2020-05-01' , 49.80 , 71 , 320 , '中文' ) ,
( '9787544291238' , '希望之线' , 8 , 1 , '2021-04-01' , 59.00 , 58 , 368 , '中文' ) ,
( '9787544291245' , '透明的螺旋' , 8 , 1 , '2022-03-01' , 59.80 , 52 , 352 , '中文' ) ,
( '9787530214114' , '球状闪电' , 14 , 1 , '2016-08-01' , 35.00 , 89 , 302 , '中文' ) ,
( '9787530216712' , '超新星纪元' , 14 , 1 , '2016-12-01' , 39.80 , 77 , 400 , '中文' ) ,
( '9787530217375' , '流浪地球' , 14 , 1 , '2016-12-01' , 36.00 , 102 , 405 , '中文' ) ,
( '9787530219256' , '时间移民' , 14 , 1 , '2014-12-01' , 32.00 , 84 , 352 , '中文' ) ,
( '9787530214115' , '中国2185' , 14 , 1 , '2020-07-01' , 48.00 , 66 , 408 , '中文' ) ,
( '9787020159536' , '尘埃落定' , 1 , 1 , '2019-05-01' , 49.00 , 59 , 425 , '中文' ) ,
( '9787020153985' , '白鹿原' , 1 , 1 , '2017-08-01' , 39.80 , 73 , 697 , '中文' ) ,
( '9787020159598' , '秦腔' , 1 , 1 , '2020-01-01' , 58.00 , 62 , 566 , '中文' ) ,
( '9787020163014' , '繁花' , 1 , 1 , '2020-07-01' , 68.00 , 57 , 444 , '中文' ) ,
( '9787020166459' , '人世间' , 1 , 1 , '2021-01-01' , 238.00 , 48 , 1156 , '中文' ) ,
( '9787506390248' , '第七天' , 15 , 1 , '2018-06-01' , 39.80 , 86 , 272 , '中文' ) ,
( '9787506391504' , '兄弟' , 15 , 1 , '2018-09-01' , 68.00 , 64 , 646 , '中文' ) ,
( '9787506394864' , '许三观卖血记' , 15 , 1 , '2019-03-01' , 36.00 , 95 , 269 , '中文' ) ,
( '9787505744981' , '霍乱时期的爱情' , 16 , 1 , '2020-01-01' , 49.80 , 78 , 401 , '中文' ) ,
( '9787505744967' , '族长的秋天' , 16 , 1 , '2020-06-01' , 45.00 , 55 , 280 , '中文' ) ,
( '9787505744950' , '梦中的欢快葬礼' , 16 , 1 , '2020-09-01' , 39.80 , 61 , 256 , '中文' ) ,
( '9787530216781' , '赡养人类' , 14 , 1 , '2016-05-01' , 32.00 , 83 , 298 , '中文' ) ,
( '9787530219257' , '全频带阻塞干扰' , 14 , 1 , '2016-10-01' , 28.00 , 79 , 246 , '中文' ) ,
( '9787530219263' , '镜子' , 14 , 1 , '2016-12-01' , 30.00 , 72 , 264 , '中文' ) ,
( '9787530219270' , '朝闻道' , 14 , 1 , '2017-02-01' , 26.00 , 88 , 228 , '中文' ) ;
INSERT INTO BookAuthors ( BookID, AuthorID) VALUES
( 1 , 1 ) , ( 2 , 2 ) , ( 3 , 3 ) , ( 4 , 4 ) , ( 5 , 6 ) ,
( 6 , 11 ) , ( 7 , 8 ) , ( 8 , 32 ) , ( 9 , 32 ) , ( 10 , 13 ) ,
( 11 , 13 ) , ( 12 , 13 ) , ( 13 , 37 ) , ( 14 , 2 ) , ( 15 , 5 ) ,
( 16 , 32 ) , ( 17 , 32 ) , ( 18 , 32 ) , ( 19 , 31 ) , ( 20 , 21 ) ,
( 21 , 8 ) , ( 22 , 25 ) , ( 23 , 38 ) , ( 24 , 29 ) , ( 25 , 32 ) ,
( 26 , 32 ) , ( 27 , 32 ) , ( 28 , 32 ) , ( 29 , 32 ) , ( 30 , 32 ) ,
( 31 , 13 ) , ( 32 , 13 ) , ( 33 , 13 ) , ( 34 , 13 ) , ( 35 , 13 ) ,
( 36 , 10 ) , ( 37 , 10 ) , ( 38 , 10 ) , ( 39 , 9 ) , ( 40 , 11 ) ,
( 41 , 8 ) , ( 42 , 8 ) , ( 43 , 8 ) , ( 44 , 37 ) , ( 45 , 37 ) ,
( 46 , 37 ) , ( 47 , 13 ) , ( 48 , 13 ) , ( 49 , 13 ) , ( 50 , 13 ) ,
( 1 , 50 ) , ( 2 , 50 ) , ( 3 , 50 ) , ( 4 , 50 ) , ( 5 , 50 ) ,
( 6 , 50 ) , ( 7 , 50 ) , ( 8 , 50 ) , ( 9 , 50 ) , ( 10 , 50 ) ,
( 11 , 50 ) , ( 12 , 50 ) , ( 13 , 50 ) , ( 14 , 50 ) , ( 15 , 50 ) ,
( 16 , 50 ) , ( 17 , 50 ) , ( 18 , 50 ) , ( 19 , 50 ) , ( 20 , 50 ) ,
( 21 , 50 ) , ( 22 , 50 ) , ( 23 , 50 ) , ( 24 , 50 ) , ( 25 , 50 ) ,
( 26 , 50 ) , ( 27 , 50 ) , ( 28 , 50 ) , ( 29 , 50 ) , ( 30 , 50 ) ;
INSERT INTO Customers ( FirstName, LastName, Email, Phone, Address, RegistrationDate) VALUES
( '张' , '明' , 'zhangming@email.com' , '13800138001' , '北京市朝阳区建国门外大街1号' , '2023-01-15' ) ,
( '李' , '华' , 'lihua@email.com' , '13800138002' , '上海市黄浦区南京东路100号' , '2023-01-20' ) ,
( '王' , '芳' , 'wangfang@email.com' , '13800138003' , '广州市天河区体育西路189号' , '2023-02-05' ) ,
( '刘' , '伟' , 'liuwei@email.com' , '13800138004' , '深圳市福田区深南大道5001号' , '2023-02-10' ) ,
( '陈' , '静' , 'chenjing@email.com' , '13800138005' , '杭州市西湖区文三路398号' , '2023-02-15' ) ,
( '杨' , '光' , 'yangguang@email.com' , '13800138006' , '南京市鼓楼区中山北路30号' , '2023-02-20' ) ,
( '赵' , '丽' , 'zhaoli@email.com' , '13800138007' , '成都市武侯区人民南路四段10号' , '2023-03-01' ) ,
( '黄' , '强' , 'huangqiang@email.com' , '13800138008' , '武汉市江汉区解放大道688号' , '2023-03-05' ) ,
( '周' , '敏' , 'zhoumin@email.com' , '13800138009' , '西安市雁塔区小寨西路26号' , '2023-03-10' ) ,
( '吴' , '刚' , 'wugang@email.com' , '13800138010' , '重庆市渝中区解放碑步行街1号' , '2023-03-15' ) ,
( '徐' , '娜' , 'xuna@email.com' , '13800138011' , '天津市和平区南京路189号' , '2023-03-20' ) ,
( '孙' , '浩' , 'sunhao@email.com' , '13800138012' , '青岛市市南区香港中路10号' , '2023-03-25' ) ,
( '朱' , '婷' , 'zhuting@email.com' , '13800138013' , '大连市中山区人民路1号' , '2023-04-01' ) ,
( '马' , '云' , 'mayun@email.com' , '13800138014' , '厦门市思明区湖滨北路10号' , '2023-04-05' ) ,
( '胡' , '杰' , 'hujie@email.com' , '13800138015' , '长沙市芙蓉区五一大道1号' , '2023-04-10' ) ,
( '林' , '欣' , 'linxin@email.com' , '13800138016' , '福州市鼓楼区五四路100号' , '2023-04-15' ) ,
( '郭' , '涛' , 'guotao@email.com' , '13800138017' , '郑州市金水区花园路1号' , '2023-04-20' ) ,
( '何' , '梅' , 'hemei@email.com' , '13800138018' , '石家庄市长安区中山东路100号' , '2023-04-25' ) ,
( '高' , '峰' , 'gaofeng@email.com' , '13800138019' , '哈尔滨市道里区中央大街1号' , '2023-05-01' ) ,
( '罗' , '燕' , 'luoyan@email.com' , '13800138020' , '长春市朝阳区人民大街100号' , '2023-05-05' ) ,
( '郑' , '凯' , 'zhengkai@email.com' , '13800138021' , '沈阳市和平区中山路1号' , '2023-05-10' ) ,
( '梁' , '冰' , 'liangbing@email.com' , '13800138022' , '济南市历下区泺源大街1号' , '2023-05-15' ) ,
( '谢' , '娜' , 'xiena@email.com' , '13800138023' , '太原市小店区长治路100号' , '2023-05-20' ) ,
( '宋' , '佳' , 'songjia@email.com' , '13800138024' , '合肥市蜀山区长江西路100号' , '2023-05-25' ) ,
( '唐' , '磊' , 'tanglei@email.com' , '13800138025' , '南昌市东湖区阳明路100号' , '2023-06-01' ) ,
( '许' , '晴' , 'xuqing@email.com' , '13800138026' , '贵阳市云岩区中华北路1号' , '2023-06-05' ) ,
( '韩' , '雪' , 'hanxue@email.com' , '13800138027' , '昆明市五华区东风东路100号' , '2023-06-10' ) ,
( '冯' , '军' , 'fengjun@email.com' , '13800138028' , '兰州市城关区庆阳路100号' , '2023-06-15' ) ,
( '董' , '洁' , 'dongjie@email.com' , '13800138029' , '乌鲁木齐市天山区解放南路1号' , '2023-06-20' ) ,
( '萧' , '峰' , 'xiaofeng@email.com' , '13800138030' , '南宁市青秀区民族大道100号' , '2023-06-25' ) ,
( '程' , '龙' , 'chenglong@email.com' , '13800138031' , '海口市龙华区滨海大道1号' , '2023-07-01' ) ,
( '曾' , '志' , 'zengzhi@email.com' , '13800138032' , '西宁市城中区西大街100号' , '2023-07-05' ) ,
( '彭' , '宇' , 'pengyu@email.com' , '13800138033' , '拉萨市城关区北京中路1号' , '2023-07-10' ) ,
( '蔡' , '琴' , 'caiqin@email.com' , '13800138034' , '银川市兴庆区解放西街100号' , '2023-07-15' ) ,
( '潘' , '安' , 'panan@email.com' , '13800138035' , '呼和浩特市新城区中山东路1号' , '2023-07-20' ) ,
( '袁' , '泉' , 'yuanquan@email.com' , '13800138036' , '拉萨市城关区金珠东路1号' , '2023-07-25' ) ,
( '于' , '娜' , 'yuna@email.com' , '13800138037' , '西宁市城西区五四西路100号' , '2023-08-01' ) ,
( '蒋' , '欣' , 'jiangxin@email.com' , '13800138038' , '乌鲁木齐市沙依巴克区友好南路1号' , '2023-08-05' ) ,
( '沈' , '冰' , 'shenbing@email.com' , '13800138039' , '海口市美兰区海府路100号' , '2023-08-10' ) ,
( '韩' , '梅' , 'hanmei@email.com' , '13800138040' , '南宁市兴宁区朝阳路1号' , '2023-08-15' ) ,
( '苏' , '宁' , 'suning@email.com' , '13800138041' , '贵阳市南明区遵义路100号' , '2023-08-20' ) ,
( '吕' , '方' , 'lvfang@email.com' , '13800138042' , '昆明市盘龙区北京路1号' , '2023-08-25' ) ,
( '丁' , '磊' , 'dinglei@email.com' , '13800138043' , '兰州市七里河区西津西路100号' , '2023-09-01' ) ,
( '杜' , '江' , 'dujiang@email.com' , '13800138044' , '乌鲁木齐市新市区北京南路1号' , '2023-09-05' ) ,
( '戴' , '军' , 'daijun@email.com' , '13800138045' , '海口市秀英区滨海大道100号' , '2023-09-10' ) ,
( '夏' , '雨' , 'xiayu@email.com' , '13800138046' , '南宁市江南区星光大道1号' , '2023-09-15' ) ,
( '钟' , '欣' , 'zhongxin@email.com' , '13800138047' , '贵阳市观山湖区林城西路100号' , '2023-09-20' ) ,
( '田' , '亮' , 'tianliang@email.com' , '13800138048' , '昆明市官渡区春城路1号' , '2023-09-25' ) ,
( '姜' , '文' , 'jiangwen@email.com' , '13800138049' , '兰州市安宁区安宁东路100号' , '2023-10-01' ) ,
( '范' , '冰' , 'fanbing@email.com' , '13800138050' , '乌鲁木齐市水磨沟区南湖东路1号' , '2023-10-05' ) ;
INSERT INTO Orders ( CustomerID, OrderDate, TotalAmount, Status , ShippingAddress) VALUES
( 1 , '2023-10-01 09:30:00' , 158.60 , '已完成' , '北京市朝阳区建国门外大街1号' ) ,
( 2 , '2023-10-02 14:20:00' , 89.50 , '已付款' , '上海市黄浦区南京东路100号' ) ,
( 3 , '2023-10-03 11:15:00' , 123.80 , '发货中' , '广州市天河区体育西路189号' ) ,
( 4 , '2023-10-04 16:45:00' , 67.90 , '待付款' , '深圳市福田区深南大道5001号' ) ,
( 5 , '2023-10-05 10:10:00' , 234.50 , '已完成' , '杭州市西湖区文三路398号' ) ,
( 6 , '2023-10-06 13:25:00' , 178.20 , '已付款' , '南京市鼓楼区中山北路30号' ) ,
( 7 , '2023-10-07 15:30:00' , 95.60 , '发货中' , '成都市武侯区人民南路四段10号' ) ,
( 8 , '2023-10-08 09:45:00' , 156.80 , '已完成' , '武汉市江汉区解放大道688号' ) ,
( 9 , '2023-10-09 14:55:00' , 87.40 , '已付款' , '西安市雁塔区小寨西路26号' ) ,
( 10 , '2023-10-10 11:20:00' , 198.70 , '发货中' , '重庆市渝中区解放碑步行街1号' ) ,
( 11 , '2023-10-11 16:35:00' , 112.90 , '待付款' , '天津市和平区南京路189号' ) ,
( 12 , '2023-10-12 10:50:00' , 145.30 , '已完成' , '青岛市市南区香港中路10号' ) ,
( 13 , '2023-10-13 13:15:00' , 76.80 , '已付款' , '大连市中山区人民路1号' ) ,
( 14 , '2023-10-14 15:40:00' , 189.50 , '发货中' , '厦门市思明区湖滨北路10号' ) ,
( 15 , '2023-10-15 09:25:00' , 134.20 , '已完成' , '长沙市芙蓉区五一大道1号' ) ,
( 16 , '2023-10-16 14:30:00' , 97.60 , '已付款' , '福州市鼓楼区五四路100号' ) ,
( 17 , '2023-10-17 11:45:00' , 167.80 , '发货中' , '郑州市金水区花园路1号' ) ,
( 18 , '2023-10-18 16:20:00' , 78.90 , '待付款' , '石家庄市长安区中山东路100号' ) ,
( 19 , '2023-10-19 10:35:00' , 156.40 , '已完成' , '哈尔滨市道里区中央大街1号' ) ,
( 20 , '2023-10-20 13:50:00' , 123.70 , '已付款' , '长春市朝阳区人民大街100号' ) ,
( 21 , '2023-10-21 15:15:00' , 89.20 , '发货中' , '沈阳市和平区中山路1号' ) ,
( 22 , '2023-10-22 09:40:00' , 178.60 , '已完成' , '济南市历下区泺源大街1号' ) ,
( 23 , '2023-10-23 14:05:00' , 67.80 , '已付款' , '太原市小店区长治路100号' ) ,
( 24 , '2023-10-24 11:30:00' , 145.90 , '发货中' , '合肥市蜀山区长江西路100号' ) ,
( 25 , '2023-10-25 16:45:00' , 98.50 , '待付款' , '南昌市东湖区阳明路100号' ) ,
( 26 , '2023-10-26 10:10:00' , 167.30 , '已完成' , '贵阳市云岩区中华北路1号' ) ,
( 27 , '2023-10-27 13:25:00' , 112.80 , '已付款' , '昆明市五华区东风东路100号' ) ,
( 28 , '2023-10-28 15:40:00' , 78.40 , '发货中' , '兰州市城关区庆阳路100号' ) ,
( 29 , '2023-10-29 09:55:00' , 189.20 , '已完成' , '乌鲁木齐市天山区解放南路1号' ) ,
( 30 , '2023-10-30 14:20:00' , 134.60 , '已付款' , '南宁市青秀区民族大道100号' ) ,
( 31 , '2023-10-31 11:35:00' , 97.80 , '发货中' , '海口市龙华区滨海大道1号' ) ,
( 32 , '2023-11-01 16:50:00' , 156.70 , '待付款' , '西宁市城中区西大街100号' ) ,
( 33 , '2023-11-02 10:15:00' , 123.40 , '已完成' , '拉萨市城关区北京中路1号' ) ,
( 34 , '2023-11-03 13:30:00' , 89.60 , '已付款' , '银川市兴庆区解放西街100号' ) ,
( 35 , '2023-11-04 15:45:00' , 178.90 , '发货中' , '呼和浩特市新城区中山东路1号' ) ,
( 36 , '2023-11-05 09:20:00' , 67.50 , '已完成' , '拉萨市城关区金珠东路1号' ) ,
( 37 , '2023-11-06 14:35:00' , 145.80 , '已付款' , '西宁市城西区五四西路100号' ) ,
( 38 , '2023-11-07 11:50:00' , 98.20 , '发货中' , '乌鲁木齐市沙依巴克区友好南路1号' ) ,
( 39 , '2023-11-08 16:05:00' , 167.60 , '待付款' , '海口市美兰区海府路100号' ) ,
( 40 , '2023-11-09 10:30:00' , 112.40 , '已完成' , '南宁市兴宁区朝阳路1号' ) ,
( 41 , '2023-11-10 13:45:00' , 78.80 , '已付款' , '贵阳市南明区遵义路100号' ) ,
( 42 , '2023-11-11 15:10:00' , 189.40 , '发货中' , '昆明市盘龙区北京路1号' ) ,
( 43 , '2023-11-12 09:35:00' , 134.80 , '已完成' , '兰州市七里河区西津西路100号' ) ,
( 44 , '2023-11-13 14:50:00' , 97.40 , '已付款' , '乌鲁木齐市新市区北京南路1号' ) ,
( 45 , '2023-11-14 11:05:00' , 156.20 , '发货中' , '海口市秀英区滨海大道100号' ) ,
( 46 , '2023-11-15 16:20:00' , 123.60 , '待付款' , '南宁市江南区星光大道1号' ) ,
( 47 , '2023-11-16 10:45:00' , 89.80 , '已完成' , '贵阳市观山湖区林城西路100号' ) ,
( 48 , '2023-11-17 13:00:00' , 178.40 , '已付款' , '昆明市官渡区春城路1号' ) ,
( 49 , '2023-11-18 15:15:00' , 67.20 , '发货中' , '兰州市安宁区安宁东路100号' ) ,
( 50 , '2023-11-19 09:30:00' , 145.60 , '已完成' , '乌鲁木齐市水磨沟区南湖东路1号' ) ;
INSERT INTO OrderDetails ( OrderID, BookID, Quantity, UnitPrice, Subtotal) VALUES
( 1 , 1 , 2 , 59.80 , 119.60 ) ,
( 1 , 5 , 1 , 39.00 , 39.00 ) ,
( 2 , 3 , 1 , 52.00 , 52.00 ) ,
( 2 , 7 , 1 , 28.00 , 28.00 ) ,
( 2 , 9 , 1 , 39.50 , 39.50 ) ,
( 3 , 2 , 1 , 49.90 , 49.90 ) ,
( 3 , 4 , 1 , 55.60 , 55.60 ) ,
( 3 , 6 , 1 , 99.00 , 99.00 ) ,
( 4 , 8 , 1 , 39.50 , 39.50 ) ,
( 4 , 10 , 1 , 23.00 , 23.00 ) ,
( 4 , 12 , 1 , 36.00 , 36.00 ) ,
( 5 , 11 , 2 , 32.00 , 64.00 ) ,
( 5 , 13 , 1 , 39.50 , 39.50 ) ,
( 5 , 15 , 1 , 25.00 , 25.00 ) ,
( 5 , 17 , 1 , 28.00 , 28.00 ) ,
( 6 , 14 , 1 , 28.00 , 28.00 ) ,
( 6 , 16 , 1 , 35.00 , 35.00 ) ,
( 6 , 18 , 1 , 39.50 , 39.50 ) ,
( 6 , 20 , 1 , 36.00 , 36.00 ) ,
( 7 , 19 , 1 , 38.60 , 38.60 ) ,
( 7 , 21 , 1 , 55.00 , 55.00 ) ,
( 7 , 23 , 1 , 28.00 , 28.00 ) ,
( 8 , 22 , 1 , 68.00 , 68.00 ) ,
( 8 , 24 , 1 , 22.00 , 22.00 ) ,
( 8 , 26 , 1 , 42.00 , 42.00 ) ,
( 9 , 25 , 1 , 45.00 , 45.00 ) ,
( 9 , 27 , 1 , 59.00 , 59.00 ) ,
( 9 , 29 , 1 , 59.00 , 59.00 ) ,
( 10 , 28 , 1 , 49.80 , 49.80 ) ,
( 10 , 30 , 1 , 59.80 , 59.80 ) ,
( 10 , 32 , 1 , 39.80 , 39.80 ) ,
( 11 , 31 , 1 , 35.00 , 35.00 ) ,
( 11 , 33 , 1 , 36.00 , 36.00 ) ,
( 11 , 35 , 1 , 48.00 , 48.00 ) ,
( 12 , 34 , 1 , 32.00 , 32.00 ) ,
( 12 , 36 , 1 , 49.00 , 49.00 ) ,
( 12 , 38 , 1 , 58.00 , 58.00 ) ,
( 13 , 37 , 1 , 39.80 , 39.80 ) ,
( 13 , 39 , 1 , 68.00 , 68.00 ) ,
( 13 , 41 , 1 , 39.80 , 39.80 ) ,
( 14 , 40 , 1 , 238.00 , 238.00 ) ,
( 14 , 42 , 1 , 68.00 , 68.00 ) ,
( 14 , 44 , 1 , 49.80 , 49.80 ) ,
( 15 , 43 , 1 , 36.00 , 36.00 ) ,
( 15 , 45 , 1 , 45.00 , 45.00 ) ,
( 15 , 47 , 1 , 32.00 , 32.00 ) ,
( 16 , 46 , 1 , 39.80 , 39.80 ) ,
( 16 , 48 , 1 , 28.00 , 28.00 ) ,
( 16 , 50 , 1 , 26.00 , 26.00 ) ,
( 17 , 49 , 1 , 30.00 , 30.00 ) ,
( 17 , 1 , 1 , 59.80 , 59.80 ) ,
( 17 , 3 , 1 , 52.00 , 52.00 ) ,
( 18 , 2 , 1 , 49.90 , 49.90 ) ,
( 18 , 4 , 1 , 55.60 , 55.60 ) ,
( 18 , 6 , 1 , 99.00 , 99.00 ) ,
( 19 , 5 , 1 , 39.00 , 39.00 ) ,
( 19 , 7 , 1 , 28.00 , 28.00 ) ,
( 19 , 9 , 1 , 39.50 , 39.50 ) ,
( 20 , 8 , 1 , 39.50 , 39.50 ) ,
( 20 , 10 , 1 , 23.00 , 23.00 ) ,
( 20 , 12 , 1 , 36.00 , 36.00 ) ,
( 21 , 11 , 1 , 32.00 , 32.00 ) ,
( 21 , 13 , 1 , 39.50 , 39.50 ) ,
( 21 , 15 , 1 , 25.00 , 25.00 ) ,
( 22 , 14 , 1 , 28.00 , 28.00 ) ,
( 22 , 16 , 1 , 35.00 , 35.00 ) ,
( 22 , 18 , 1 , 39.50 , 39.50 ) ,
( 23 , 17 , 1 , 28.00 , 28.00 ) ,
( 23 , 19 , 1 , 38.60 , 38.60 ) ,
( 23 , 21 , 1 , 55.00 , 55.00 ) ,
( 24 , 20 , 1 , 36.00 , 36.00 ) ,
( 24 , 22 , 1 , 68.00 , 68.00 ) ,
( 24 , 24 , 1 , 22.00 , 22.00 ) ,
( 25 , 23 , 1 , 28.00 , 28.00 ) ,
( 25 , 25 , 1 , 45.00 , 45.00 ) ,
( 25 , 27 , 1 , 59.00 , 59.00 ) ,
( 26 , 26 , 1 , 42.00 , 42.00 ) ,
( 26 , 28 , 1 , 49.80 , 49.80 ) ,
( 26 , 30 , 1 , 59.80 , 59.80 ) ,
( 27 , 29 , 1 , 59.00 , 59.00 ) ,
( 27 , 31 , 1 , 35.00 , 35.00 ) ,
( 27 , 33 , 1 , 36.00 , 36.00 ) ,
( 28 , 32 , 1 , 39.80 , 39.80 ) ,
( 28 , 34 , 1 , 32.00 , 32.00 ) ,
( 28 , 36 , 1 , 49.00 , 49.00 ) ,
( 29 , 35 , 1 , 48.00 , 48.00 ) ,
( 29 , 37 , 1 , 39.80 , 39.80 ) ,
( 29 , 39 , 1 , 68.00 , 68.00 ) ,
( 30 , 38 , 1 , 58.00 , 58.00 ) ,
( 30 , 40 , 1 , 238.00 , 238.00 ) ,
( 30 , 42 , 1 , 68.00 , 68.00 ) ,
( 31 , 41 , 1 , 39.80 , 39.80 ) ,
( 31 , 43 , 1 , 36.00 , 36.00 ) ,
( 31 , 45 , 1 , 45.00 , 45.00 ) ,
( 32 , 44 , 1 , 49.80 , 49.80 ) ,
( 32 , 46 , 1 , 39.80 , 39.80 ) ,
( 32 , 48 , 1 , 28.00 , 28.00 ) ,
( 33 , 47 , 1 , 32.00 , 32.00 ) ,
( 33 , 49 , 1 , 30.00 , 30.00 ) ,
( 33 , 1 , 1 , 59.80 , 59.80 ) ,
( 34 , 50 , 1 , 26.00 , 26.00 ) ,
( 34 , 2 , 1 , 49.90 , 49.90 ) ,
( 34 , 4 , 1 , 55.60 , 55.60 ) ;
5. 查询练习
5.1 单表查询
SELECT * FROM Books ORDER BY Price DESC ;
SELECT BookID, ISBN, Title, PublishDate, Price, StockQuantity FROM Books ORDER BY Price DESC ;
SELECT * FROM Books WHERE StockQuantity < 50 ORDER BY StockQuantity DESC ;
SELECT * FROM Books WHERE PublishDate > '2020-01-01' ORDER BY PublishDate DESC ;
SELECT * FROM Books WHERE Price BETWEEN 30 AND 50 ORDER BY Price;
SELECT BookID, ISBN, Title, Price, StockQuantity FROM Books WHERE Title LIKE '%三体%' ;
5.2 分组查询
SELECT * FROM Books;
SELECT * FROM Categories; SELECT c. CategoryName, COUNT ( b. BookID ) AS BookCount, AVG ( b. Price ) AS avgPrice, MAX ( b. Price ) AS maxPrice, MIN ( b. Price ) AS minPrice
FROM Books bJOIN Categories c ON b. CategoryID = c. CategoryID
GROUP BY c. CategoryID;
SELECT * FROM Publishers;
SELECT * FROM Books; SELECT p. PublisherName, COUNT ( p. PublisherID ) AS books_count, SUM ( b. StockQuantity) AS TotalStock
FROM Books bJOIN Publishers p ON b. PublisherID = p. PublisherID
GROUP BY p. PublisherName
ORDER BY books_count;
SELECT * FROM Orders;
SELECT * FROM OrderDetails; SELECT ` Status ` , COUNT ( OrderID ) AS OrderCount, SUM ( TotalAmount ) AS TotalAmount, AVG ( TotalAmount ) AS avgAmount
FROM Orders
GROUP BY ` Status `
SELECT * FROM Customers; SELECT c. CustomerID, CONCAT( c. FirstName, c. LastName ) AS CustomerName, COUNT ( o. OrderID) AS OrderCount, SUM ( o. TotalAmount ) AS TotalSpent, AVG ( o. TotalAmount) AS AvgOrderAmount
FROM Customers cJOIN Orders o ON c. CustomerID = o. CustomerID
GROUP BY c. CustomerID
HAVING OrderCount > 0
ORDER BY TotalSpent;
SELECT YEAR ( OrderDate ) AS orderYear, MONTH ( OrderDate ) AS orderMonth, COUNT ( OrderID ) AS orderCount, SUM ( TotalAmount) AS orderSales
FROM Orders
GROUP BY YEAR ( OrderDate ) , MONTH ( OrderDate )
ORDER BY orderYear, orderMonth
5.3 子查询
SELECT AVG ( Price) AS avgPrice FROM Books;
SELECT *
FROM Books
WHERE Price > ( SELECT AVG ( Price ) AS avgPrice FROM Books )
ORDER BY Price;
SELECT * FROM Books WHERE Title LIKE '%三体%' ;
SELECT DISTINCT o. CustomerID, b. Title FROM Books b
JOIN Orders o ON b. BookID = o. OrderID
WHERE b. Title LIKE '%三体%' ;
SELECT c. CustomerID, CONCAT( c. FirstName, c. LastName) AS CustomerName, c. Email FROM Customers c
WHERE c. CustomerID IN ( SELECT DISTINCT o. CustomerID FROM Orders o JOIN Books b ON b. BookID = o. OrderIDWHERE b. Title LIKE '%三体%'
)
ORDER BY CustomerName;
SELECT * FROM Books
ORDER BY StockQuantity ASC LIMIT 5 SELECT BookID, Title, Price, StockQuantity
FROM Books
ORDER BY StockQuantity ASC , Price DESC
LIMIT 5 ;
SELECT AVG ( TotalAmount) FROM Orders; SELECT c. CustomerID, CONCAT( c. FirstName, c. LastName) AS CustomerName, o. TotalAmount
FROM Customers c
JOIN Orders o ON c. CustomerID = o. CustomerID
GROUP BY c. CustomerID
HAVING o. TotalAmount > ( SELECT AVG ( TotalAmount) FROM Orders
)
ORDER BY o. TotalAmount;
SELECT DISTINCT CustomerID FROM Customers; SELECT CustomerID, CONCAT( FirstName, LastName) AS CustomerName, Email, RegistrationDate
FROM Customers
WHERE CustomerID NOT IN ( SELECT DISTINCT CustomerID FROM Orders
)
ORDER BY RegistrationDate DESC ;
5.4 多表连接查询
SELECT o. OrderID, o. OrderDate, CONCAT( c. FirstName, c. LastName) AS CustomerName, c. Email, b. Title AS BookTitle, od. Quantity, od. UnitPrice, od. Subtotal, o. TotalAmount, o. Status
FROM Orders o
JOIN Customers c ON o. CustomerID = c. CustomerID
JOIN OrderDetails od ON o. OrderID = od. OrderID
JOIN Books b ON od. BookID = b. BookID
ORDER BY o. OrderDate DESC , o. OrderID;
SELECT b. BookID, b. ISBN, b. Title, b. Price, b. StockQuantity, GROUP_CONCAT( DISTINCT a. AuthorName SEPARATOR ', ' ) AS Authors, p. PublisherName, c. CategoryName, b. PublishDate, b. Language
FROM Books b
LEFT JOIN BookAuthors ba ON b. BookID = ba. BookID
LEFT JOIN Authors a ON ba. AuthorID = a. AuthorID
JOIN Publishers p ON b. PublisherID = p. PublisherID
JOIN Categories c ON b. CategoryID = c. CategoryID
GROUP BY b. BookID, b. ISBN, b. Title, b. Price, b. StockQuantity, p. PublisherName, c. CategoryName, b. PublishDate, b. Language
ORDER BY b. BookID;
SELECT a. AuthorID, a. AuthorName, a. Nationality, COUNT ( ba. BookID) AS BookCount, AVG ( b. Price) AS AvgBookPrice
FROM Authors a
LEFT JOIN BookAuthors ba ON a. AuthorID = ba. AuthorID
LEFT JOIN Books b ON ba. BookID = b. BookID
GROUP BY a. AuthorID, a. AuthorName, a. Nationality
HAVING BookCount > 0
ORDER BY BookCount DESC ;
SELECT b. BookID, b. Title, b. Price, SUM ( od. Quantity) AS TotalSold, SUM ( od. Subtotal) AS TotalRevenue, p. PublisherName
FROM Books b
JOIN OrderDetails od ON b. BookID = od. BookID
JOIN Orders o ON od. OrderID = o. OrderID
JOIN Publishers p ON b. PublisherID = p. PublisherID
WHERE o. Status IN ( '已付款' , '发货中' , '已完成' )
GROUP BY b. BookID, b. Title, b. Price, p. PublisherName
ORDER BY TotalSold DESC
LIMIT 10 ;
SELECT c. CustomerID, CONCAT( c. FirstName, c. LastName) AS CustomerName, c. Email, o. OrderID, o. OrderDate, o. TotalAmount, o. Status , COUNT ( od. OrderDetailID) AS ItemCount
FROM Customers c
JOIN Orders o ON c. CustomerID = o. CustomerID
JOIN OrderDetails od ON o. OrderID = od. OrderID
GROUP BY c. CustomerID, CustomerName, c. Email, o. OrderID, o. OrderDate, o. TotalAmount, o. Status
ORDER BY c. CustomerID, o. OrderDate DESC ;