《SQL必知必会(第5版)》挑战题笔记 | 所用DBMS为Mysql,mysql workbench安装

文章目录

  • 一、安装
    • step1:mysql安装
    • step2:mysql workbench安装
  • 二、下载随书资料
  • 三、代码实战练习
    • 2.2 检索单个列
  • 四、MySQL知识点回顾
  • 五、挑战题
    • 2.9挑战题
      • 1、SELECT...FROM...;
      • 2、DISTINCT
      • 3、注释语句的使用
    • 3.6 挑战题
      • 1、`ORDER BY` `DESC`
      • 2、
      • 3、
      • 4、纠错
    • 4.4 挑战题
      • 1、`WHERE`过滤数据
      • 2、
      • 3、`检索出所有不同的`用`DISTINCT`
      • 4、`BETWEEN AND`
    • 5.5 挑战题
      • 1、
      • 2、
      • 3、`AND`
    • 6.4 挑战题
      • 1、`LIKE`
      • 2、`NOT LIKE`
      • 3、`...LIKE AND ...LIKE`
      • 4、 检索按先后顺序同时出现指定字符串的内容`'%toy%carrots%'`
    • 7.5 挑战题
      • 1、
      • 2、`... AS`
    • 8

下述为笔者作为SQL小白,在学习《SQL必知必会(第5版)》时的学习笔记以及做题记录。知识在于实践,多敲代码,多练习,掌握得就会很快!

一、安装

SQL(Structed Query Language, 结构化查询语言),是一种与数据库通信的 语言

step1:mysql安装

DBMS(Database Mangement System, 数据库管理系统)MySQL是众多DBMS中的一种。

MySQL是关系型数据库(RDBMs),以行(row)和列(column)的形式存储数据。

  • E-R模型的三个主要概念:
    实体集class 对应 数据库中的一个表table
    实体instance 对应 数据库表中的一行row

    属性attribute 对应 数据库表中的一列column,也称字段

    联系集
    在这里插入图片描述
    一对一关系:主外键关联
    一对多关系:
    多对多关系:必须创建第三个表,称为联接表,将多对多关系划分为两个一对多关系,将两个表的主键都插在第三个表中。所以:第三个表至少两个字段。

Redis是非关系型数据库(非RDBMs),以键(key)值(value)对的形式存储数据。

  • key作为唯一的标识符,查找速度快。
  • 缺点:无法使用条件过滤,需要遍历所有的键,会消耗大量的计算。
  • 典型使用场景:内存缓存。
  • NoSQL是对SQL的补充。在实际开发中,当不需要完整的关系型数据库时,使用性能更高成本更低的非关系型数据库更明智。eg:日志收集、排行榜、定时器等。

MySQL安装教程:mysql8.0.25安装配置教程(windows 64位)最详细

MySQL从5.7版本直接跳跃发布了8.0版本。

step2:mysql workbench安装

workbench安装教程。

二、下载随书资料

资料下载网站:http://forta.com/books/0135182794。下滑页面,下载mysql对应的资料。

”关于资料的下载、用mysql workbench导入过程”请看Medium论坛的文章:Sams 每天 10 分钟自学 SQL:为成功做好准备。

三、代码实战练习

本节跟随书中的示例代码进行了运行,只试验了了一小部分。
SQLWindows下不区分大小写,这是由Windows本身的特性决定的。

2.2 检索单个列

SELECT prod_name FROM Products;

在这里插入图片描述

多条SQL语句必须以分号(;)分隔

SELECT prod_id, prod_name,prod_price
From Products;

在这里插入图片描述

四、MySQL知识点回顾

参见笔者的文章:MySQL知识点汇总 |《SQL必知必会》《康师傅MySQL从入门到高级》笔记

五、挑战题

答案地址:https://forta.com/books/0135182794/challenges/

2.9挑战题

1、SELECT…FROM…;

SELECT cust_id
FROM Customers;

在这里插入图片描述

2、DISTINCT

SELECT DISTINCT prod_id
FROM OrderItems;

在这里插入图片描述

3、注释语句的使用

SELECT *
FROM OrderItems;

在这里插入图片描述

-- SELECT *
-- FROM OrderItems;
SELECT cust_id
FROM Customers;

在这里插入图片描述

3.6 挑战题

1、ORDER BY DESC

SELECT cust_names
FROM Customers
ORDER BY cust_names DESC;

2、

SELECT cust_id,order_num
FROM Orders
ORDER BY cust_id,order_date DESC;

在这里插入图片描述

3、

DESC:由多到少、由高到低

SELECT quantity,item_price
FROM OrderItems
ORDER BY quantity DESC,item_price DESC;

在这里插入图片描述

4、纠错

错误代码:

SELECT vend_name,
FROM Vendors
ORDER vend_name DESC;

vend_name后多了一个,。注意:逗号只能用在一个语句的结束,用于分开多个columns。
order后面缺失BY

4.4 挑战题

1、WHERE过滤数据

SELECT prod_id,prod_name
FROM Products
WHERE prod_price = 9.49;

在这里插入图片描述

2、

SELECT prod_id,prod_name
FROM Products
WHERE prod_price >= 9;

在这里插入图片描述

3、检索出所有不同的DISTINCT

SELECT DISTINCT order_num
FROM OrderItems
WHERE order_num >= 100;

在这里插入图片描述

4、BETWEEN AND

SELECT prod_name,prod_price
FROM Products
WHERE prod_price BETWEEN 3 AND 6
ORDER BY prod_price;

在这里插入图片描述

5.5 挑战题

1、

SELECT vend_name
FROM Vendors
WHERE vend_city='USA' AND vend_state='CA';

在这里插入图片描述

2、

SELECT order_num,prod_id,quantity
FROM OrderItems
WHERE prod_id IN ('BR01','BR02','BR03') AND quantity >= 100;

在这里插入图片描述

3、AND

SELECT prod_name,prod_price
FROM Products
WHERE prod_price >= 3 AND prod_price <= 6
ORDER BY prod_price;

在这里插入图片描述

6.4 挑战题

1、LIKE

SELECT prod_name,prod_desc
FROM Products
WHERE prod_desc LIKE '%toy%'

在这里插入图片描述

2、NOT LIKE

SELECT prod_name,prod_desc
FROM Products
WHERE NOT prod_desc LIKE '%toy%'
ORDER BY prod_name;

在这里插入图片描述

3、...LIKE AND ...LIKE

SELECT prod_name,prod_desc
FROM Products
WHERE prod_desc LIKE '%toy%' AND prod_desc LIKE '%CARROTS%';

在这里插入图片描述

4、 检索按先后顺序同时出现指定字符串的内容'%toy%carrots%'

SELECT prod_name,prod_desc
FROM Products
WHERE prod_desc LIKE '%toy%carrots%';

在这里插入图片描述

7.5 挑战题

1、

①按原始名称进行排序

SELECT vend_id,vend_name AS vname,vend_address AS vaddress,vend_city AS vcity
FROM Vendors
ORDER BY vend_name;

②按新名字进行排序

SELECT vend_id,vend_name AS vname,vend_address AS vaddress,vend_city AS vcity
FROM Vendors
-- ORDER BY vend_name;
ORDER BY vname;

结果一样:
在这里插入图片描述

2、... AS

SELECT prod_id,prod_price,prod_price * 0.9 AS sale_price
FROM Products;

在这里插入图片描述

8


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部