MySQL数据分析进阶(十二)设计数据库——PART4
;※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!)
【中字】SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!https://www.bilibili.com/video/BV1UE41147KC/?spm_id_from=333.1007.0.0&vd_source=b287f1f4a1fa54cc438e31a0f87ef4e2
目录:
第十二章:设计数据库——PART4
25、CREATING AND DROPPING DATABASES——创建和删除数据库
26、CREATING TABLES——创建表
27、ALTERING TABLES——更改表
28、CREATING RELATIONSHIPS——创建关系
29、ALTERING PRIMARY AND FOREIGN KEYS——更改主键和外键约束
30、CHARACTER SETS AND COLLATIONS——字符集和排序规则
31、STORAGE ENGINES——存储引擎
第十二章:设计数据库——PART4
25、CREATING AND DROPPING DATABASES——创建和删除数据库
如果想成为数据库管理员需要了解这些工具生成的脚本
每次它们生成一个脚本,需要检查,确保它不会对你的数据库产生任何不良影响
学习更多SQL语句,徒手创建或修改数据库,不用依赖于这些视像工具
①创建数据库
CREATE DATABASE:一个没有任何表的空数据库
②再次执行可能会报错,最好加上IF NOT EXISTS
③删除数据库
26、CREATING TABLES——创建表
在sql_store2重建sql_store数据库中的customers表
①逐一添加列比较费时,只添加关键列
②确保每位顾客都有唯一的电子邮件
🔺无法重新只能执行此表,因为数据库中已经有这张表
重建此表方法一
DROP TABLE IF EXISTS customers;
重建此表方法二
CREATE TABLE IF NOT EXISTS customers;
27、ALTERING TABLES——更改表
修改一张已经存在的表
假设忘记添加last_name,或者给定列设定了错误的数据类型
使用ALTER TABLE语句
如果直接执行,这列将被放在末尾
想要把该列放在first_name后:AFTER first_name
一开始就要避免列中有空格,如果出现空格必须使用反引号来表示列名
但列名就不该有空格,这是不雅陋习
在写ALTER TABLE语句时,可以一次进行多项更改(添加、删除更改一列或多列数据类型和属性)
COLUMN关键字可写可不写
不要在生产环境下更改表,会造成非常严重的后果,只在测试数据库上尝试更改
确保执行正常,不会产生任何不良影响以后,再在生产数据库中执行他们
28、CREATING RELATIONSHIPS——创建关系
创建订单表,并在顾客和订单之间添加一组关系
order_id没有NOT NULL
当我们对某列应用主键属性时,MySQL会默认该列不允许出现空值,主键列中存在空值不合理
定义两个表的关系用FOREIGN KEY,对customer_id列应用外键约束
fk_orders_customers(customer_id):orders是子表名,customers是母表名,(customer_id)外键的列
REFERENCES customers(customer_id):告诉MySQL这一列引用customers表的customer_id列
指定更新和删除行为,级联还是拒绝
想让订单表中对应的顾客记录自动更新CASCADE
不想意外删除订单NO ACTION
有人认为不应该级联更新操作,因为主键不能变,理论上同意,实操中就不一定,有时候主键会变(人为失误、应用BUG)
29、ALTERING PRIMARY AND FOREIGN KEYS——更改主键和外键约束
如何在建表之后再添加外键
使用ALTER TABLE语句,添加或删除给定表的外键
也可以在添加或删除主键
DROP PRIMARY KEY不用打列名
30、CHARACTER SETS AND COLLATIONS——字符集和排序规则
①字符集、排序规则
字符集:将每个字符映射到数字的表
存储一个字符串,MySQL会把使用字符集将每个字符转为为它的数值表示
不同的字符集:仅支持拉丁语/仅支持亚洲语言;支持所有国际语言
此表可以看到当前版本MySQL支持的所有字符集
big5:繁体中文
utf8:存储几乎所有国际语言(MySQL版本5或以上使用的默认字符集)
Default collation(排序规则):决定了某类语言的字符如何排序
utf8排序规则:utf8_general_ci
ci(case-insensitive,不区分大小写):MySQL在排序时大小写同等优先级,多数是我们想要的
多为用户以大写或小写字符输入他们的名字,想要用字母顺序排序时,就不用考虑它们的大小写字母
所以99%的情况,不需要更改排序规则,
Maxlen(最大长度列)
utf8最大长度为3,即MySQL存储每个自负的时候最多保留3个字节
English(1):英文字母占用1个字节
European、Middle-eastern(2):欧洲和中东语言占用2个字节
Asian(3):亚洲语言,中文、日文占用3个字节
多数情况不用考虑用不用更改字符集,保持默认设置就好了
某些情况下,可能要更改字符集来减少数据库大小
🔺假设表中一列的类型是CHAR(10)
CHAR表示固定长度的字符串,所以不管字符1还是字符10,MySQL都会保留10个字符串的空间
使用utf8字符集,MySQL预留的最大字节数时3
如果列的类型是CHAR(10),MySQL会为这一列的每个单元格预留10*3的空间,30字节
要是这张表有一百万条记录,就会配置三千万字节的空间
要是不需要支持国际语言,比如只需支持拉丁语
'latin1:被用于大多数拉丁语语言,预留1个字节
在此情况下,更改这一列、这张表或这个数据库的字符集,可以减少MySQL占用磁盘的字节数
②更改字符集
默认字符集:utf8
可以通过鼠标更改表或列级别的字符集
多数情况为了保持一致性,想要在数据库级别设置字符集,要么可以支持国际语言,要么不支持
❗如何使用SQL在数据库级别更改字符集
方法一
创建数据库时或之后设置字符集和排序规则
方法二
更改现有数据库的字符集
方法三
在表级别更改字符集
如果有一个现有的表
为特定列设置字符集
假设想要为名字列设置字符集——latin1
31、STORAGE ENGINES——存储引擎
MySQL有几个存储引擎:决定了数据图如何被存储,哪些功能可供我们使用
最常用的两个存储引擎MyISAM和InnoDB
MyISAM:旧版存储引擎(版本5.5之前)
InnoDB:更高级的存储引擎,支持事务等功能
目前为止谈论的所有内容都是InnoDB的一部分,MyISAM不支持这些功能(别用MyISAM了)
但有时使用的数据库使用更老版本的MySQL版本搭建的,这种情况可能想升级数据库,改用InnoDB,这样允许添加外键
外键对保持引用完整性非常重要
当在两张表之间添加关系时,不能给外键列添加无效值(外键的好处)
❗如何更换存储引擎
在表级别设置存储引擎,这样在同一个数据库中,就可以使用多个存储引擎
如果此表是基于更来版本的MySQL构建的话,可能就会是MyISAM
使用SQL语句更改一张表的存储引擎
更改一张表的存储引擎可能会花很大功夫,因为MySQL必须重建这张表,在此期间无法访问表,不要在产出阶段更改存储引擎,除非要定期维护
————TBC
相关文章:
MySQL数据分析进阶(十二)设计数据库——PART4
;※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!) 【中字】SQL进阶教程 |…...
在 Spring Boot 中使用桥接模式实现灵活的报表生成服务
在软件开发中,桥接模式是一种结构型设计模式,用于将抽象部分与它的实现部分分离,使得这两部分可以独立变化。这种模式非常适合处理需要灵活配置和扩展的场景,比如报表生成服务。本文将详细介绍如何使用桥接模式来实现一个灵活的报…...
算法:外卖调度
题目 有N个餐厅和M个外卖员,每个餐厅在某个时间点会产生一个外卖订单,这些订单都有产生时间、所需送达时间和优先级。外卖员在空闲时会选择最优先的订单来配送,直到所有订单都被送达。具体规则如下: 对于每个餐厅的订单,优先级高…...
leetcode50. Pow(x, n),快速幂算法
leetcode50. Pow(x, n),快速幂算法 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000 示例 2: 输入ÿ…...
Xinstall神器来袭,轻松搞定CPA推广渠道统计!
在数字化营销日益盛行的今天,CPA(按行动付费)推广已成为众多企业营销的重要手段。然而,随着渠道流量和获客途径的不断变化,CPA推广渠道统计的痛点也日益凸显。别担心,Xinstall来帮你解决问题! …...
011 | efinance分析豆一主连期货
👉👉👉 《玩转Python金融量化专栏》👈👈👈 订阅本专栏的可以下载对应的代码和数据集 🚀 上一篇🌟 下一篇⬅️ 010 东方财富帖子标题情绪分析012 akshare分析NYBOT棉花历史数据 ➡️豆一主连期货(通常简称“豆一”)是指中国期货市场上以大豆为标的的期货合约…...
【Python】函数入门(下)
3))* ** 注意:也遵循位置传参在前面,按关键字传参在后面。 代码示例: def func(*args,**kwargs):print(args,kwargs) 该函数中的参数会自动根据传参的方式不同(即:按位置…...
git的基本概念和使用原理
Git是一个分布式版本控制系统,用于跟踪文件的更改并协调多个开发人员之间的工作。以下是Git的基本概念和使用原理及方式: 目录 基本概念 使用原理 基本操作示例 基本概念 版本库(Repository): 版本库是Git用来保存…...
手写简化版的vue-router
vue-router作为vue全家桶之一的重要插件,有必要去深究一下,今天我们就从0到1手写一个简化版本。 开始之前,我们使用路由插件时是先进行下载路由 npm i vue-router ,然后在main.js中使用app.use导入router插件。想要手写vue-rou…...
分享一个基于uni-app的蛋糕商城订购小程序的设计与实现(源码、调试、LW、开题、PPT)
💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…...
Python绘图入门:使用Matplotlib绘制柱状图
Python绘图入门:使用Matplotlib绘制柱状图 柱状图是一种常见的数据可视化方式,能够直观地展示不同类别之间的数据差异。在Python中,Matplotlib是一个非常强大且灵活的绘图库,它不仅能绘制简单的图表,还能创建复杂的多…...
Qt5编译qmqtt库使用MQTT协议连接华为云IOT完成数据上传与交互
一、前言 随着物联网技术的发展,越来越多的设备通过网络互相连接,形成了庞大的智能系统。这些系统能够收集、分析并响应各种数据,从而实现自动化控制和智能化管理。在这个背景下,MQTT 成为了一个广泛使用的轻量级消息传输协议,特别适用于资源受限的环境,如移动应用或远程…...
mysql速起架子
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 下载mysql tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 解压 mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0 改名 去到bin目录 cd bin mkdir data gr…...
云动态摘要 2024-08-14
给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 注册阿里云免费领云服务器_云服务器ECS_阿里云 阿里云 2024-08-14 云上试用新玩法,个人享300元免费额度,企业享660元免费额度,多种规格随心试 [免费体验…...
Elasticsearch 桶(Bucket)聚合详解及示例
在 Elasticsearch 中,桶(Bucket)聚合是一种强大的工具,它允许我们对数据进行分组并统计每组的数量。这种聚合类型对于理解数据的分布和进行分组统计非常有用。本文将详细介绍 Elasticsearch 的桶聚合,并提供完整的示例…...
Django基础知识
文章目录 新建Django项目helloworld关联数据库admin 新建Django项目 创建django-admin startproject project_name 运行 python manage.py runserver 创建app: python manage.py startapp app_name 目录: 配置文件 settings.py 路由配置 urls.py 项目管理 manage.p…...
使用 nginx 搭建代理服务器(正向代理 https 网站)指南
简介 正向代理 简介 在企业开发环境中,局域网内的设备通常需要通过正向代理服务器访问互联网。正向代理服务器充当中介,帮助客户端请求外部资源并返回结果。局域网内也就是俗称的内网,局域网外的互联网就是外网,在一些特殊场景内…...
深入解析亚马逊数据采集工具选择:Data API/Scrape API/Pangolin采集器
引言 在当今电商领域,亚马逊已成为全球最大的在线零售平台之一。随着竞争的加剧和市场的多样化,商家和企业不仅需要优秀的产品和服务,还需要通过深入的数据分析来制定更加精准的市场策略。因此,采集亚马逊站点数据已成为企业实现…...
探索Linux多样性:主流发行版及其应用场景
目录 引言 Debian:稳定性的标杆 Ubuntu:易用性的代表 Red Hat Enterprise Linux (RHEL):企业的首选 Fedora:创新的前沿 CentOS:开源的稳定之选 Arch Linux:高级用户的定制天堂 Gentoo:性…...
CentOS7.6 HAproxy-7层负载均衡集群——实施方案
目录 1、前期环境准备 1.准备4台主机 1. 设置主机名 2. 设置IP地址然后重启网卡 3. 关闭防火墙和selinux 4. 全部的服务器完成时间统一 二、配置haproxy(192.168.200.11)服务器 1. 安装haproxy 2. haproxy 配置中分成五部分内容 3. 配置HAproxy(192.168.2…...
升级ubuntu22.10到24.04
将所有kinetic换成noble,noble是24.04源,sed或手动改。 cd /etc/aptgrep -nr kinetic将old-releases.ubuntu.com替换成国内的地址,因为2210国内源没找到,没有了,但是现在更新到24.04,国内是有的。 apt up…...
YOLO好像也没那么难?
“学YOLO的念头是想整个游戏外挂!” 目录 基本原理 模型推理 IOU交并比 NMS非极大值抑制 模型训练 损失函数LOSS 代码实现 YOLO学习渠道 基本原理 模型推理 学习一个新的神经网络结构,作者认为整明白输入和输出是怎么回事就OK了,至于…...
html编写贪吃蛇页面小游戏(可以玩)
<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>贪吃蛇小游戏</title><style>body {…...
【淘宝购买的源码靠谱吗】
文章目录 前言一、项目需求二、卖家评价三、价格质量四、源码细节五、技术支持六、合法性七、市场环境八、风险评估总结 前言 在淘宝上购买的源码质量和可靠性存在不确定性。淘宝作为一个综合性电商平台,提供了各种各样的商品和服务,包括源代码。然而&a…...
C++ | list
前言 本篇博客讲解cSTL中的list 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见📝 🎉欢迎大家点赞&…...
Vue3 v-bind 指令用法
在 Vue 3 中,v-bind 指令用于将表达式的值绑定到 DOM 元素的属性上。这个指令的语法与 Vue 2 相同,但有一些细微的变化和改进。 以下是 Vue 3 中 v-bind 指令的基本用法: 基本用法: <button v-bind:class"{ active: isActive }"…...
通过Go示例理解函数式编程思维
一个孩子要尝试10次、20次才肯接受一种新的食物,我们接受一种新的范式,大概不会比这个简单。-- 郭晓刚 《函数式编程思维》译者 函数式编程(Functional Programming, 简称fp)是一种编程范式,与命令式编程(Imperative Programming)、面向对象编…...
刷题DAY7
三角形面积 题目:已知三角形的边长a,b和从、,求其面积 输入:输入三个实数a,b,c,表示三边长 输出:输出面积,保留三位小数 输入:1 2 2.5 输出࿱…...
离线数据开发流程小案例-图书馆业务数据
参考 https://blog.csdn.net/m53931422/article/details/103633452 https://www.cnblogs.com/jasonlam/p/7928179.html https://cwiki.apache.org/confluence/display/Hive/LanguageManualUDF https://medium.com/jackgoettle23/building-a-hive-user-defined-function-f6abe9…...
GPT-5:未来已来,你准备好了吗
GPT-5:未来已来,你准备好了吗? 在人工智能的浩瀚星空中,自然语言处理(NLP)技术如同璀璨星辰,不断引领着技术革新的浪潮。而在这股浪潮中,OpenAI的GPT(Generative Pre-tr…...
广州代做网站/关键词优化公司哪家效果好
1修改出图方向Layout View 中,在空白区域点击鼠标右键。点击“Page and Print Setup”Orientation(方向):Portrait——竖向Landscape——横向Ps.修改布局视图的外框大小也是在这里,Page——WidthHeight2一幅图包含多幅子图(1)新建空白地图文档…...
合肥瑶海区政府网站官网/网站推广工具
1.使用服务的目的: 服务是为不同组件之间共享信息提供的方法, 如组件不应该直接获取或者保存数据,不应了解是否展示假数据, 而(组件)更应该聚焦数据展示,把数据访问的职责委托给某个服务&#x…...
注册外国网站/网站制作推广电话
操作系统启动后,会自动启动一些服务与程序。其中有些程序并非服务器正常运行所必须。对于服务器而言,运行多余的服务与程序,这些不会给服务器加分,反而会带来其他的隐患:1.占用资源:每运行多一个服务&#…...
做网站做注册登录的难点/网络营销的企业有哪些
1. vi与vim的关系 在windows下的默认编辑器是记事本(notepad),然而功能太low,所以我一般使用的是notepad这个文本编辑器软件。可以类比得到,vi是linux的默认编辑器,vim则是其升级版本,vim是推荐…...
南和企业做网站/站长综合查询工具
ISIS将网络层又分了两个层: 子网独立子层(subnetwork independent sublayer)(为传输层提供统一服务); 子网依赖子层(subnetwork dependent sublayer)(存取数据链路层提供…...
wordpress环境包/网络广告营销有哪些
关注公众号“AI算法修炼营”,选择“星标”公众号。精选作品,第一时间送达在图像几何变换时,无法给有些像素点直接赋值,例如,将图像放大两倍,必然会多出一些无法被直接映射的像素点,对于这些像素…...