Managing Big Data with MySQL学习笔记

2023-11-15

Intro

SQL: 关系型数据库( MySQL, Teradata)
By the end of this course, you will know how to:

  1. Describe the structure of relational databases;

  2. Interpret and create entity-relationship diagrams and relational schemas that describe the contents of specific databases;

  3. Write queries that retrieve and sort data that meet specific criteria, and retrieve such data from MySQL and Teradata databases that contain over 1 million rows of data;

  4. Execute practices that limit the impact of your queries on other coworkers;

  5. Summarize rows of data using aggregate functions, and segment aggregations according to specified variables;

  6. Combine and manipulate data from multiple tables across a database;

  7. Retrieve records and compute calculations that are dependent on dynamic data features, and translate data analysis questions into SQL queries.

Week 1

How Relational Databases Help Solve Those Problems

关系型数据库的基本概念是 将数据集拆分为单独的数据片段或者子集 每一个数据子集都有一个主题, 这个主题在逻辑上将数据记录和 这个子集相绑定。在检索信息时,数据库只会和某些子集交互 这些子集提供了你想要的数据 而不是和整个数据库交互这一策略确保了数据只需要 尽可能少的空间去存储,同时让检索变快。
在这里插入图片描述

  • 单个表应表示数据集的最小逻辑部分
  • 表中的每一列 都必须表示唯一的 信息类别 (各种记录)
  • 表中的每一行也必须表示该信息的唯一实例 (各种记录对应的数据域)
  • 键(key)的值在不同列中唯一
  • 表中列的顺序或 行的顺序是无关紧要的 这将允许数据库按任意的, 它认定是最快的 顺序或样式将它们拉到一起

Database Design Tools

数据库设计和模型架构

  • Entity-Relationship Diagram
  • Relational Schemas

Entity-Relationship Diagram

ERDPlus
这些表是通过一个或 多个具有相同值的列连接起来的。 通过这些列(的值),我们可以把不同表中的行数据关联起来。
在这里插入图片描述

  1. 实体(矩形)
    在这里插入图片描述
    正方形表示实体。 这些体现你在数据库中所保存数据的种类。 每个正方形是一个种类。 最后实现数据库的时候,每个实体大概率会成为表。

    双矩形表示Weak Entity

  2. 属性(椭圆)
    在这里插入图片描述
    每个数据种类 也就是实体需要记录的数据的一些具体的方面。 属性一般会体现在实体的 列。 实体关系图中的每一个属性至少要连接到某一个实体。 并且,根据集合理论,每个属性在实体中 必须唯一。

每一条收集到的某一个实体的数据, 称为该实体的实例 Entity Instance。 实体的实例可以看成是数据表中的

实体中最重要的属性在每个实例都拥有 唯一的值 正式名称叫做唯一属性 Unique Attribute。 也有的时候称之为唯一键或者唯一标识符。是每一行数据具有不同唯一值的列, 每个实体必须至少有一个属性作为唯一键或 标识符。用加下划线表示。

可以被其他属性组合重新创建的属性用 ( ) 修饰 Composite Attribute

Partial Key == 虚线 == 修饰这个属性无法identify它从属的entity。必须结合其他属性才能完成identify

  1. 实体之间的关系(菱形)
    每个实体或 类别必须与数据库中的至少一个其他实体相关。 您使用菱形和线条来表述这些关系。 菱形里填写关系的本质
    在这里插入图片描述
    接近矩形的符号表示实例的最大数目 这个数是实体可以和其他实体 相关联的实例的最大数字 与矩形距离较远的符号则表示 实体A中可以与实体B关联的最小的实例数目。

Relational Schemas

在这里插入图片描述
在这里插入图片描述

Components of Relational Schema:

  • Table

row and column without order.

  • Primary key

Different from unique columns in Relational schemas.
  • Foreign key
    Link table to another table.

Week 2

Query Syntax

DQL: Data Query Language 数据查询语言

SELECT 查询数据库讯息
跟在SELECT后面的子句,包含你想要的数据和数据库的细节 细节包括你想要的具体数据以及它的格式。这些细节由6个SQL关键字按特定顺序来指定 按顺序,这些关键字是:
SELECT (required), FROM (required), WHERE, GROUP, HAVING, ORDER ;
去描述你想要什么数据
在这里插入图片描述
SUM(database.sales)
"."句点表示数据库中的具体细节。句点出现在数据库名和表名之间 或者表名和列名之间 告诉数据库你到底需要哪个表或列

NULL 没有数据


Exercise 1: Look at data (SHOW & SELECT)

SHOW

  • SHOW tables:db中有多少个表 – 返回所有名字
  • SHOW columns FROM (enter table name here);
    SHOW columns FROM (enter table name here) FROM (enter database name here);
    SHOW columns FROM databasename.tablename :展示表内容。DESCRIBE 表名称有同样的效果

SELECT
用来取得数据,需要提供两个信息:

  1. 什么数据
  2. 从哪里取
SELECT breed FROM dogs;

LIMIT: 显示前5行

SELECT breed FROM dogs LIMIT 5;

OFFSET LIMIT: 10 rows of data will be returned, starting at Row 6.

SELECT breed
FROM dogs LIMIT 10 OFFSET 5;
or
FROM dogs LIMIT 5, 10;

显示多列

SELECT breed, breed_type, breed_group FROM dogs LIMIT 5, 10;

取所有数据

SELECT * FROM reviews LIMIT 5, 10;

显示运算过的结果:make new derivations of individual columns using “+” for addition, “-” for subtraction, “*” for multiplication, or “/” for division

SELECT median_iti_minutes / 60
FROM dogs LIMIT 5, 10;

Exercise 2: Select specific data (WHERE)

选取所有free_start_user = 1的users

SELECT user_guid FROM users WHERE free_start_user=1;

选取所有weight在10-50之间的dogs

SELECT dog_guid, weight FROM dogs WHERE weight BETWEEN 10 AND 50;
# OR AND
WHERE dog_fixed=1 OR dna_tested=1;
WHERE dog_fixed=1 AND dna_tested!=1;

IN

SELECT dog_guid, breed FROM dogs WHERE breed IN ("golden retriever","poodle");

LIKE

SELECT dog_guid, breed FROM dogs WHERE breed LIKE ("s%");

s%: bread must start with “s”, can have any number of letter after
%s: bread must end with “s”, can have any number of letter before
%s%: bread contain an “s” somewhere in its name, can have any number of letter after and before

Time-related data
DATE format YYYY-MM-DD
DATETIME format: YYYY-MM-DD HH:MI:SS
TIMESTAMP format: YYYY-MM-DD HH:MI:SS 2013-02-07 02:50:52
YEAR format YYYY or YY

DAYNAME
返回time stamp对应的星期几

SELECT dog_guid, created_at FROM complete_tests WHERE DAYNAME(created_at)="Tuesday"

DAY
返回对应每个月的几号

SELECT dog_guid, created_at FROM complete_tests WHERE DAY(created_at) > 15	# 每个月15号以后的

比较具体日期

SELECT dog_guid, created_at FROM complete_tests WHERE created_at > '2014-02-04'

TIMEDIFF: 两个time stamp之间的时间间隔
DATEDIFF: 两个日期查了多少天

IS NULL & IS NOT NULL
返回所有某个field值NULL(NOT NULL)的所有行

SELECT user_guid FROM users WHERE free_start_user IS NULL;

Select the Dog ID, test name, and subcategory associated with each completed test for the first 100 tests entered in October, 2014

%sql SELECT dog_guid, test_name, subcategory_name FROM complete_tests WHERE YEAR(created_at) = 2014 AND MONTH(created_at) = 10 LIMIT 100;

Exercise 3: Formatting Selected Data

AS
Use AS to change the titles of the columns in your output

SELECT start_time AS "exam start time" FROM exam_answers

输出值的名字就变成了AS的指定值

DISTINCT
Use DISTINCT to remove duplicate rows 使输出值没有重复(将会包括一次NULL(如果有NULL))

SELECT DISTINCT breed FROM dogs;

When the DISTINCT clause is used with multiple columns in a SELECT statement, the combination of all the columns together is used to determine the uniqueness of a row in a result set. 多行组合决定是否唯一

SELECT DISTINCT state, city FROM users;

ORDER BY
Use ORDER BY to sort the output of your query
ORDER BY clause will come after everything else in the main part of your query, but before a LIMIT clause.

SELECT DISTINCT breed FROM dogs ORDER BY breed;
SELECT DISTINCT breed FROM dogs ORDER BY breed DESC

和LIMIT组合使用用来求Top 10 or Last 10

SELECT DISTINCT user_guid, median_ITI_minutes FROM dogs ORDER BY median_ITI_minutes LIMIT 5
# 最少的五个

利用AS进行新的排序

SELECT DISTINCT user_guid, (median_ITI_minutes * 60) AS median_ITI_sec
FROM dogs 
ORDER BY median_ITI_sec DESC
LIMIT 5

多行组合排序

SELECT DISTINCT user_guid, state, membership_type
FROM users
WHERE country="US"
ORDER BY state ASC, membership_type ASC

每个排序标准用“,”隔开。前排序第一个再排序第二个…

Export your query results to a text file

  1. 将query结果放入一个变量储存
variable_name_of_your_choice = %sql [your full query goes here];
breed_list = %sql SELECT DISTINCT breed FROM dogs ORDER BY breed;
  1. 变量储存为.csv文件
the_output_name_you_want.csv('the_output_name_you_want.csv')
breed_list.csv('breed_list.csv')
  1. 清理文件
    REPLACE(str,from_str,to_str)
    Returns the string str with all occurrences of the string from_str replaced by the string to_str. REPLACE() performs a case-sensitive match when searching for from_str.
    用to_str 取代 from_str
SELECT DISTINCT breed, REPLACE(breed,'-','') AS breed_fixed
FROM dogs ORDER BY breed_fixed
# 将单词之间的“-”换成空格

但是会将除开头“-”以外的连字符同样删除

TRIM

SELECT DISTINCT breed, TRIM(LEADING '-' FROM breed) AS breed_fixed
# 只删除开头的“-”
FROM dogs ORDER BY breed_fixed;

Viewpoint interface for Teradata Queries

TERADATA SYSTEM ACCESS
Your Teradata login is: DUKESQLMOOC33863 Your
Teradata password is: ZE73cgt$ Your login and password will expire on
July 18, 2021


MySQl Code

求各科目平均分大于60的学生学号和平均成绩

https://blog.csdn.net/qq_43824618/article/details/104630693
https://www.cnblogs.com/sea-stream/p/11305668.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Managing Big Data with MySQL学习笔记 的相关文章

  • MySQL - 通过部分单词匹配和相关性评分进行高效搜索(全文)

    如何进行 MySQL 搜索 既匹配部分单词 又提供准确的相关性排序 SELECT name MATCH name AGAINST math IN BOOLEAN MODE AS relevance FROM subjects WHERE M
  • PHP 7.0和MySQL启动错误“未定义符号:mysqlnd_allocator in Unknown”

    即使在运行时 在自定义编译版本的 PHP7 上也会收到此警告php v 尝试了发布的所有解决方案 什么可能导致这种情况 PHP 警告 PHP 启动 无法加载动态库 usr lib php 20151012 pdo mysql so usr
  • 使用 MySQL 触发器将所有表更改记录到辅助表

    我有一张桌子 CREATE TABLE data table data id INT NOT NULL AUTO INCREMENT PRIMARY KEY field1 INT NOT NULL field2 INT NOT NULL f
  • 开发 WordPress 管理链接重定向到实时站点

    我正在尝试对我拥有的 WordPress 网站进行新的更改 所以我复制了所有文件并导出到新的开发子域 为子域创建新数据库并从实时站点导入数据库 直播站点 http mysite com http mysite com 开发站点 http d
  • 多人/单人测验游戏的数据库设计

    我在这里看到了很多问题 但没有人适合我的问题 我正在尝试创建一个可扩展的 ER 模型 如果我想添加更多数据 则不会破坏几乎任何东西 所以我尝试创建的是 有两种类型的用户 比如说管理员和工作人员 他们有不同的角色 管理员可以对问题进行 CRU
  • 当子查询具有组列时,MySQL 8 不使用 INDEX

    我们刚刚从 mariadb 5 5 迁移到 MySQL 8 一些更新查询突然变得很慢 经过更多调查 我们发现当子查询有组列时 MySQL 8不使用索引 例如 下面是一个示例数据库 桌子users维护每种类型用户的当前余额 表 帐户 维护每天
  • UTF-8、PHP 和 XML Mysql

    我在解决这个问题时遇到了很大的问题 我有一个编码 latin1 swedish ci 的 mysql 数据库和一个存储名称和地址的表 我正在尝试输出 UTF 8 XML 文件 但在使用以下字符串时遇到问题 Otiv gen它被输出为Otiv
  • 无法将外键值插入链接表

    我目前正在尝试将数据插入名为的表中 客户报价 该表充当 顾客 表和 客户关税 桌子 它还记录通过以下方式提交数据的用户 user table 这是我的数据库的架构 https i stack imgur com gyCdb png http
  • Node.js 将 async/await 与 mysql 一起使用

    我一直在尝试在节点中将 async await 与 MySQL 一起使用 但它每次都会返回一个未定义的值 有理由吗 请在下面找到我的代码 const mysql require promise mysql var connection co
  • Sails 嵌套模型集合

    我有 3 个型号 用户模型 module exports schema true attributes login type string required true hosts collection host via owners acc
  • SELECT COUNT() 与 mysql_num_rows();

    我有一个大表 60 数百万条记录 我正在使用 PHP 脚本来浏览该表 PHP 脚本 带分页 加载速度非常快 因为 表引擎是InnoDB因此SELECT COUNT 非常慢并且mysql num rows 不是一个选项 所以我将总行数 我用来
  • PHP 和 MySql 检查表是否为空

    我有点菜鸟 而且我很难过 我需要一些代码来搜索数据库表以查找与 id 变量匹配的行 我需要抓取该表 描述 中的一个字段 如果它为空 我需要显示一条消息 如果不是另一条消息 这是我的代码 我知道我需要添加 mysqli 转义字符串 只需从内存
  • InnoDB如何存储字符列?

    这个问题仅解决 短 的问题CHAR and VARCHAR列存储在 InnoDB 表中 Does a CHAR 10 列正好占用 10 个字节吗 尾随空格会发生什么情况 对于每个字符需要超过 1 个字节的字符集怎么办 如何VARCHAR 1
  • 我无法访问 XAMPP phpMyAdmin;它说:错误 MySQL 说:文档无法连接:无效设置

    完整错误消息 Error MySQL said Documentation Cannot connect invalid settings Connection for controluser as defined in your conf
  • 存储 MySQL GUID/UUID

    这是我能想到的将 UUID 生成的 MySQL GUID UUID 转换为二进制文件 16 的最佳方法 UNHEX REPLACE UUID 然后将其存储在 BINARY 16 中 我应该知道这样做有什么影响吗 从 MySQL 8 0 及以
  • PDO 和 MySQL 全文搜索

    我正在将所有站点代码从使用 mysql 函数转换为 PDO 关于 PDO 的 PHP 文档对于我的需求来说并不清楚 它为您提供了可以使用的功能 但没有详细解释它们在不同场景下的情况 基本上 我有一个 mysql 全文搜索 sql SELEC
  • Laravel 5.2 中使用多个 MySQL 数据库连接查询关系存在

    我正在处理以下情况 我有两个模型 一个Employee with id and name字段和一个Telephone with id employee id and flag字段 还有一个一对多关系在这两种模型之间 即一个员工可能拥有多部电
  • 更改 MySQL Workbench 上的默认字符集

    我正在尝试使用连接到我的 MYSQL 数据库utf8mb4字符集 请注意 数据库字符集的全局设置已经是 utf8mb4 我可以使用 CLI 轻松完成此操作 如下所示 mysql h myhostname u myuser p default
  • 当我在 PHP 中将 print_r() 应用于数组时,为什么会得到“Resource id #4”? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • Codeigniter,为MySQL创建表和用户

    我想以编程方式使用 CI 创建数据库和用户 到目前为止 我有这 2 个简单的 MySQL 语句 CREATE DATABASE testdb DEFAULT CHARACTER SET utf8 COLLATE utf8 general c

随机推荐

  • php之curl带头部header的post请求

    public function op url http www baidu com test na oh header array Accept Language zh CN x appkey 114816004000028 x apsig
  • 内联函数及其注意事项

    default argument 是编译器记住了default argument 但是运行时还是要两个参数的 编译器看到了原型声明 可以有default argument值 所以编译器替你补上了 建议 不要使用default argumen
  • java上机题编程题

    1 编写程序 用数组实现乘法小九九的存储和输出 提示 采用多个一维数组 public class Multipation public static void main String args TODO Auto generated met
  • Linux一句话精彩问答--

    0001 修改主机名 陈绪 vi etc sysconfig network 修改HOSTNAME一行为 HOSTNAME 主机名 没有这行 那就添加这一行 吧 然后运行命令 hostname 主机名 一般还要修改 etc hosts文件中
  • 【javascript】作用域的理解(LHS,RHS查询)

    作用域是什么 一 理解作用域 任何javascript代码片段在执行前都要进行编译 先看一个例子吧 先思考一下这行代码是如何被编译的 var a 33 估计大部分人看到这行代码 会说首先声明一个变量a 然后给它赋值33 但实际上并没有这么简
  • Linux系统与管理 - (三)Linux常用命令解析

    自说 学习路径 目录和文件 查找目录和文件 查看文件 压缩及解压 自说 操作Linux系统必不可少的常用命令 坚持学习吧 每天一点点 总归是有收获的 学习路径 Linux系统与管理 一 安装Linux系统 Linux系统与管理 二 Linu
  • pyautogui 使用示例

    文章目录 coding utf 8 import pyautogui import time def test distance 1000 time sleep 5 pyautogui moveTo 400 300 while distan
  • js做简易信息聊天

    div div div img src img img1 jpg div
  • 常用Pytorch中张量(Tensor)的创建

    from IPython core interactiveshell import InteractiveShell InteractiveShell ast node interactivity all import torch a to
  • 华为手机连电脑当摄像头用_DxOMark评六大最佳手机摄像头:华为P40 Pro独揽四个第一...

    来源 快科技 DxOMark今天发布了一份特殊的榜单 按照照片 视频 广角 夜间摄影 变焦 散景 背景虚化 六大类 评选出了每个分类表现最好的手机 结果华为P40 Pro四次上榜 另外两个则被三星拿下 最佳照片 华为P40 Pro 拍照成绩
  • 【CLIP详读】

    个人网站 https tianfeng space 一 前言 OpenAI的CLIP项目自从推出以来 CLIP引起了广泛的关注 它的方法看似简单 但效果非常出色 许多结果令人惊叹 例如 预训练模型可以在任何视觉分类数据集上实现出色的效果 而
  • ubuntu apt-get dpkg应用中的一些问题及解决方法

    一 在用sudo apt get install 安装软件时 由于速度太慢 想换个软件源 直接关闭了终端 apt get但进程没有结束 结果终端提示 E 无法获得锁 var lib dpkg lock open 11 资源暂时不可用 E 无
  • 【Javadoc生成开发文档(Terminal或IDEA中)】

    Javadoc生成开发文档 一 Javadoc工具介绍 二 常用标记 三 使用方式 四 生成文档的两种方式 1 Terminal方式 2 IDE方式 一 Javadoc工具介绍 大家在查看官网文档的时候 会不会感慨人家的帮助文档写的真有逻辑
  • 轻松刷脸是美妙的线下消费体验过程

    刷脸支付的过程非常的简单 你不需要带钱包 信用卡或手机 支付时只需要自己面对刷脸支付pos机屏幕上的摄像头 刷脸支付系统会自动将消费者面部信息与个人账户相关联 整个交易过程十分便捷 在移动支付的快速发展中 消费者逐渐习惯使用移动支付 即使身
  • 交换机的Access口与Trunk口

    基本概念 Access类型的端口只能属于1个VLAN 一般用于连接计算机的端口 Trunk类型的端口可以允许多个VLAN通过 可以接收和发送多个VLAN的报文 一般用于交换机之间连接的端口 处理流程 Acess端口收报文 收到一个报文 判断
  • Python 分割技术提取图像和视频中对象

    计算机视觉是计算机查看和识别对象的媒介 计算机视觉的目标是使计算机能够分析图像和视频中的对象 解决不同的视觉问题 对象分割为方便分析图像和视频中的对象铺平了道路 对不同领域做出了巨大贡献 例如医学 自动驾驶汽车的视觉以及图像和视频的背景编辑
  • vue form 滑动验证码、手机短信验证

    话不多说直接上效果图 vue 注册首页 校验 滑动验证 页面源码
  • mysql explain执行计划

    mysql explain执行计划 mysql gt EXPLAIN SELECT FROM t item i LEFT JOIN t sku s ON i item id s item id LEFT JOIN t sku stock t
  • 楠姐技术漫话:接着唠唠社区发现

    halo 大家好 很开心又和大家见面了 在第一篇技术漫话 图计算的那些事 发布之后 楠姐收到了很多鼓励和支持 非常感谢大家的喜欢 所以楠姐尽自己所能马不停蹄开始第二篇的创作 虽迟但到 也尝试在第二期中 在可读性和观感上尽量做些优化和进步 本
  • Managing Big Data with MySQL学习笔记

    Managing Big Data with MySQL学习笔记 Intro Week 1 How Relational Databases Help Solve Those Problems Database Design Tools E