MYSQL的DDL和DML综合案例练习

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: #DDL和DML综合案例#1:创建名为test01_library的数据库CREATE DATABASE IF NOT EXISTS test01_library;#2:创建books表CREATE TABLE IF NOT EXISTS books(id INT,`name` VARCHAR(50),`authors` VARCHAR(100),price FLOAT,pubdate YEAR,note VARCHAR(100),num INT);SELECT *FROM b.

#DDL和DML综合案例

#1:创建名为test01_library的数据库

CREATE DATABASE IF NOT EXISTS test01_library;

#2:创建books表

CREATE TABLE IF NOT EXISTS books(

id INT,

`name` VARCHAR(50),

`authors` VARCHAR(100),

price FLOAT,

pubdate YEAR,

note VARCHAR(100),

num INT

);

SELECT *

FROM books;

#3.1:不指定字段名称,插入第一条记录

INSERT INTO books

VALUES (1,'Tal of AAA','Dickes',23,1995,'novel',11);

#3.2:指定所有字段名称,插入第二条记录

INSERT INTO books(id,`name`,`authors`,price,pubdate,note,num)

VALUES(2,'EmmaT','Jane lura',35,1993,'joke',22);

#3.3:同时插入多条记录(插入余下所有记录)

INSERT INTO books

VALUES  (3,'Story of Jane','Jane Tim',40,2001,'novel',0),

(4,'Lovey Day','George Byron',20,2005,'novel',30),

(5,'Old land','Honore Blade',30,2010,'law',0),

(6,'The Battle','Upton Sara',30,1999,'medicine',40),

(7,'Rose Hood','Richard haggard',28,2008,'cartoon',28)

;

#4:将小说类型(novel)的书的价格都增加5

UPDATE books

SET price=price+5

WHERE note='novel';

#5:将名称为EmmaT的书的价格改为40,并将说明改为drama

UPDATE books

SET price=40,note='drama'

WHERE `name`='EmmaT';

 

SELECT *

FROM books;

#6: 删除库存为0的记录

DELETE FROM books

WHERE num=0;

#7:统计书名中包含a字母的书的书名

SELECT `name`

FROM books

WHERE `name` LIKE '%a%';

#8:统计书名中包含a的书的数量和库存总量

SELECT COUNT(*) '数量',SUM(num) '库存总量'

FROM books

WHERE `name` LIKE '%a%';

#9:找出novel类型的书,按照价格降序排序  

SELECT `name`,note,price

FROM books

WHERE note='novel'

GROUP BY price DESC;

#10:查询图书的信息,按照库存量的降序排列

   #如果库存量相同,按照note升序排列

SELECT *

FROM books

GROUP BY num DESC,note ASC;

#11:按照note分类统计书的数量

SELECT note,COUNT(*)

FROM books

GROUP BY note;

#12:按note分类,显示库存总量超过30本的

SELECT note,SUM(num)

FROM books

GROUP BY note

HAVING SUM(num)>30;  

#13:查询所有图书,每页显示5本显示第二页

SELECT *

FROM books

LIMIT 5,2;

#14:查询库存量总量最高的note类型书

SELECT note,SUM(num)

FROM books

GROUP BY note

HAVING SUM(num) >= ALL(

SELECT SUM(num)

FROM books

GROUP BY note

);

#15:查询去除空格后书名长度大于10的书名

SELECT `name`

FROM books

WHERE CHAR_LENGTH(REPLACE(`name`,' ',''))>=10;

#16:查询name,note,当note类型为novel时其类型显示为小说

#     当note类型为law时显示为法律

#     当note类型为medicine时显示为医药

#     当note类型为cartoon时显示为卡通

#     当note类型为JOKE时显示为笑话

#     其它note类型显示为其它

SELECT `name` '书名',note, CASE note WHEN 'novel' THEN '小说'

          WHEN 'law' THEN '法律'

          WHEN 'medicine' THEN '医药'

          WHEN 'cartoon' THEN '卡通'

          WHEN 'JOKE' THEN '笑话'

          ELSE '其它'

          END '类型'

FROM books;

#17:查询name,num,当num>30时,其状态为滞销,当0<num<10时其显示为畅销

  #当num=0时,其显示为无货,其余显示为其它    

SELECT `name` '书名',num '库存', CASE WHEN num>30 THEN '滞销'

         WHEN num>0 AND num<10 THEN '畅销'

         WHEN num=0 THEN '无货'

         ELSE '其它'

         END '状态'

FROM books;

#18:查询每类书的库存数量并计算它们的合计总量

ALTER TABLE books CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

SELECT IFNULL(note,'合计总量') AS note,SUM(num)

FROM books

GROUP BY note WITH ROLLUP;

#19:查询每类书的数量并计算它们的合计总量

SELECT IFNULL(note,'合计总量') AS note,COUNT(*)

FROM books

GROUP BY note WITH ROLLUP;

#20:找出库存量前三的书

SELECT *

FROM books

GROUP BY num DESC

LIMIT 0,3;

#21:找出价格最高的书

SELECT *

FROM books

ORDER BY pubdate ASC

LIMIT 0,1;

#22:找出价格最高的novel

SELECT *

FROM books

WHERE note='novel'

ORDER BY price DESC

LIMIT 0,1;

#23: 找出去除空格后书名最长的书的信息

SELECT *

FROM books

GROUP BY CHAR_LENGTH(REPLACE(`name`,' ','')) DESC

LIMIT 0,1;

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
50 3
|
1月前
|
SQL 关系型数据库 MySQL
案例剖析:MySQL唯一索引并发插入导致死锁!
案例剖析:MySQL唯一索引并发插入导致死锁!
107 0
案例剖析:MySQL唯一索引并发插入导致死锁!
|
1月前
|
SQL 关系型数据库 MySQL
案例剖析,MySQL共享锁引发的死锁问题!
案例剖析,MySQL共享锁引发的死锁问题!
|
1月前
|
消息中间件 关系型数据库 MySQL
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
144 0
|
22天前
|
SQL 关系型数据库 MySQL
|
26天前
|
关系型数据库 MySQL 数据库
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。
55 3
|
29天前
|
存储 关系型数据库 MySQL
基于案例分析 MySQL 权限认证中的具体优先原则
【10月更文挑战第26天】本文通过具体案例分析了MySQL权限认证中的优先原则,包括全局权限、数据库级别权限和表级别权限的设置与优先级。全局权限优先于数据库级别权限,后者又优先于表级别权限。在权限冲突时,更严格的权限将被优先执行,确保数据库的安全性与资源合理分配。
|
1月前
|
SQL 关系型数据库 MySQL
MySQL 更新1000万条数据和DDL执行时间分析
MySQL 更新1000万条数据和DDL执行时间分析
115 4
|
2月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
59 2
zabbix agent集成percona监控MySQL的插件实战案例
|
3月前
|
存储 关系型数据库 MySQL
MySQL bit类型增加索引后查询结果不正确案例浅析
【8月更文挑战第17天】在MySQL中,`BIT`类型字段在添加索引后可能出现查询结果异常。表现为查询结果与预期不符,如返回错误记录或遗漏部分数据。原因包括索引使用不当、数据存储及比较问题,以及索引创建时未充分考虑`BIT`特性。解决方法涉及正确运用索引、理解`BIT`的存储和比较机制,以及合理创建索引以覆盖各种查询条件。通过`EXPLAIN`分析执行计划可帮助诊断和优化查询。
下一篇
无影云桌面