SQL ②-库操作 | 数据类型
这里是Themberfue
SQL语法
数据库术语
- DATABASE:数据库,保存有组织的数据的容器(通常是一个文件或一组文件)。
- TABLE:表,某种特定类型数据的结构化清单。
- SCHEMA:模式,关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。数据库和表都有模式。
- COLUMN:列,表中的一个字段。所有表都是由一个或多个列组成的。
- ROW:行,表中的一个记录,就是一行数据。
- PRIMARY KEY:主键,一列(或一组列),其值能够唯一标识表中每一行。
建库
- SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI SQL。各个 DBMS 都有自己的实现,如 PL/SQL、Transact-SQL 等。
- SQL 语句不区分大小写,但是数据库表名、列名和值是否区分,依赖于具体的 DBMS 以及配置。例如:
SELECT
与select
、Select
是相同的。- 多条 SQL 语句必须以分号(;)分隔。
- 处理 SQL 语句时,所有空格都被忽略。
SQL注释
## 注释1 -- 注释2 /* 注释3 */
我们从创建数据库开始:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ...create_option: [DEFAULT] {CHARACTER SET [=] charset_name| COLLATE [=] collation_name| ENCRYPTION [=] {'Y' | 'N'} }
- 大写的表示是关键字
{} 里的是必须要填写的
[] 里的则是选择性填写
| 表示选一个即可
db_name 表示数据库名
CHARACTERSET 表示指定数据库采⽤的字符集编码
COLLATE 表示指定数据库字符集的校验规则
ENCRYPTION 表示数据库是否加密,MySQL8.0.16中引入的新选项
使用该 SQL 语句可以查看当前创建的所有数据库:
SHOW databases;
show charset; # 查看数据库⽀持的字符集编码 show collation; # 查看数据库⽀持的排序规则 show warnings; # 查看警告信息 show variables like '%character%'; # 查看系统默认字符集和排序规则
修改数据库:
ALTER {DATABASE | SCHEMA} [db_name] alter_option ...alter_option: {[DEFAULT] CHARACTER SET [=] charset_name| [DEFAULT] COLLATE [=] collation_name| [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}| READ ONLY [=] {DEFAULT | 0 | 1}}
删除数据库:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
数据类型
在进入对表的操作的讲解之前,我们先来说说 SQL 中的数据类型:
类型 分类 数据类型 说明 存储大小 整数类型 数值 TINYINT
8位整数(-128 ~ 127 / 0 ~ 255) 1 字节 SMALLINT
16位整数(-32,768 ~ 32,767) 2 字节 MEDIUMINT
24位整数(-8,388,608 ~ 8,388,607) 3 字节 INT / INTEGER
32位整数(-2^31 ~ 2^31-1) 4 字节 BIGINT
64位整数(-2^63 ~ 2^63-1) 8 字节 浮点数类型 数值 FLOAT(M, D)
单精度浮点数(近似值存储) 4 字节 DOUBLE / REAL
双精度浮点数(近似值存储) 8 字节 DECIMAL(M, D)
/NUMERIC(M, D)
定点数,精确存储(适用于财务计算) 变长 字符类型 字符串 CHAR(N)
固定长度字符串(最多 255 个字符) N 字节 VARCHAR(N)
可变长度字符串(最多 65535 个字符) 实际长度 + 1字节 TEXT
/TINYTEXT
存储文本数据(最多 255 / 65535 字符) 1~4 字节指针+实际内容 BLOB
存储二进制数据(图片、文件等) 1~4 字节指针+实际内容 日期时间类型 日期/时间 DATE
仅存储日期(YYYY-MM-DD) 3 字节 TIME
仅存储时间(HH:MM:SS) 3 字节 DATETIME
日期+时间(YYYY-MM-DD HH:MM:SS) 8 字节 TIMESTAMP
1970-01-01 开始的时间戳 4 字节 布尔类型 逻辑值 BOOLEAN
仅支持 TRUE
/FALSE
(本质上是TINYINT(1)
)1 字节 JSON / XML 复杂数据 JSON
存储 JSON 格式数据 变长 XML
存储 XML 格式数据 变长 特殊类型 其他 ENUM
枚举类型(单选值) 1~2 字节 SET
多选集合类型 1~8 字节 CHAR与VARCHAR的区别
- CHAR 固定长度的字符串, N 表示以字符为单位的列⻓度,取值范围 0 ~ 255 ,省略则长度为 1 ,在存储时总是用空格向右填充到指定的长度,获取列的值时会从尾部删除空格。允许定义 CHAR(0),此时列的值只能为 NULL 或 空字符串,主要的目的是为了旧系统兼容,比如类中必须有这个属性,但不使用这个属性的值,也就是说值并没有意义,但列又不能没有。
- VARCHAR 可变长度字符串。 N 表示以字符为单位的最大列长度,取值范围 0 ~ 65,535 (在所有列中共享),有效长度取决于实际字符数和使用的字符集,并且用额外的⼀或两个字节记录实际使用的字节数,当实际字节数不超过255个字节用⼀个字节记录长度,超过255个字节时,使⽤两个字节记录⻓度,获取列的值时不会从尾部删除空格,插入数据时会删除超出长度的空格。
如何选择CHAR和VARCHAR
- 如果数据确定长度都⼀样,就使用定长 CHAR 类型,比如:身份证,md5,学号,邮编。
- 如果数据长度有变化,就使用变长 VARCHAR,比如:名字,地址,但要规划好长度,保证最长的字符串能存的进去。
- 定长 CHAR 类型比较浪费磁盘空间,但是效率高,且会直接开辟好对应的存储空间。
- 变长 VARCHAR 类型比较节省磁盘空间,但是效率低,在不超过定义长度范围的情况下⽤多少则开辟多少存储空间。
VARCHAR与TEXT的区别
- 容量大小:VARCHAR 最大支持 65535 个字节;TEXT 最大支持 65535 个字节,在指定 TEXT 长度时,当超过 65535 时自动转换为 MEDIUMTEXT 类型,当超过 16,777,215 时自动转换为 LONGTEXT 类型。
- 存储位置:VARCHAR 类型的列实际内容小于 768 个字节时存在当前行,⼤于 768 时存在溢出页, 当前行保存溢出页的地址; TEXT 类型的列整体保存在溢出页,当前行只保存溢出页地址。
- 查询性能:对于频繁查询的 VARCHAR 列可以创建索引,提升查询性能;TEXT 类型的列无法直接创建普通索引,但可以使用 FULLTEXT 索引,由于索引的支持和存储位置的不同,VARCHAR 列的性能高于 TEXT 类型的列。
- 适用场景:如果存储的数据长度较小且需要创建索引进行检索,可以选择 VARCHAR 类型,比如姓名,用户,邮箱等;如果存储的数据长度较大且不需要频繁以该列为条件进行检索可以选择 TEXT 类型,比如文章内容等。
- 毕竟不知后事如何,且听下回分解
- ❤️❤️❤️❤️❤️❤️❤️
相关文章:
SQL ②-库操作 | 数据类型
这里是Themberfue SQL语法 数据库术语 DATABASE:数据库,保存有组织的数据的容器(通常是一个文件或一组文件)。TABLE:表,某种特定类型数据的结构化清单。SCHEMA:模式,关于数据库和表…...
云轴科技ZStack CTO王为@中国GenAI大会:AI原生实践重构AI Infra新范式
4月1-2日,2025中国生成式AI大会(GenAICon 2025)在北京举办,该会议已成为国内AI领域最具影响力的产业峰会之一。来自学术界与产业界的50位嘉宾围绕GenAI应用、大模型、AI智能体、具身智能、DeepSeek R1与推理模型等话题,…...
处理甘特图启动依赖报错。
处理甘特图启动报错 一、修改甘特图下载地址1.1 配置修改1.2 修改地址(https://registry.npmmirror.com) 二、安装依赖1.1 安装sass-loader1.2 适配安装dhtmlx-gantt 一、修改甘特图下载地址 1.1 配置修改 npm config get registry1.2 修改地址(https://registry.npmmirror.c…...
JSX、支持HTML标签、Ref的使用、虚拟DOM的使用
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…...
leetcode376-摆动序列
leetcode 376 思路 变量定义: prediff:记录上一次相邻元素的差值。用于判断当前差值与上一个差值的关系curdiff:记录当前相邻元素的差值result:记录当前的摆动序列的长度,初始化为 1,因为至少一个元素就…...
内网渗透(杂项集合) --- 中的多协议与漏洞利用技术(杂项知识点 重点) 持续更新
目录 1. NetBIOS 名称的网络协议在局域网中内网渗透中起到什么作用 2. 使用 UDP 端口耗尽技术强制所有 DNS 查找失败,这个技术如何应用在局域网内网渗透测试中 3. 在本地创建一个 HTTP 服务来伪造 WPAD 服务器 什么是 WPAD 服务器?这个服务器是干嘛的…...
14-产品经理-维护计划
产品经理的另一个职责是制定计划。古人云,凡事预则立,不预则废。 产品需要做规划,才能有轻重缓急,才能正确的做事。因此对于产品经理而言,计划是必需的。 对于产品经理自己而言,发布计划可以帮助他规划产…...
12-产品经理-维护模块
需求模块是帮助产品经理进行需求的分类和维护。 1. 维护模块 在具体产品的“研发需求”页面左侧,点击“维护模块”。也可以在具体产品的“设置”-“模块”下进行维护。 点击保存后,返回模块页面。还可以点击“子模块”对已有模块进行子模块的维护。 点击…...
解析HiveQL的ALTER TABLE ADD/REPLACE COLUMNS语句
阅读以下ALTER TABLE的ADD/REPLACE COLUMNS语句的语法,用C#编写解析函数,一个一个字符解析,所有关键字不区分大小写,一个或多个空格、Tab和换行的组合都可以是关键词之间的分隔,表名和字段名可能包含空格和Tab…...
MySQL-SQL-DML语句、INSER添加数据、UPDATE更新数据、DELETE删除数据
一. DML 1. DML的英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。 2. 添加数据(INSERT);修改数据(UPDATE);删除数据(DELETE) 二. DML-INSER添加数据 -- DML insert -- 指定字段添加数…...
学透Spring Boot — 017. 处理静态文件
这是我的《学透Spring Boot》专栏的第17篇文章,了解更多内容请移步我的专栏: Postnull CSDN 学透 Spring Boot 目录 静态文件 静态文件的默认位置 通过配置文件配置路径 通过代码配置路径 静态文件的自动配置 总结 静态文件 以前的传统MVC的项目…...
Linux进程间通信——共享内存
1.概念 共享内存(Shared Memory)就是允许多个进程访问同一个内存空间,是在多个进程之间共享和传递数据最高效的方式。操作系统将不同进程之间共享内存安排为同一段物理内存,进程可以将共享内存连接到它们自己的地址空间中&#x…...
如何在大型项目中组织和管理 Vue 3 Hooks?
众所周知,Vue Hooks(通常指 Composition API 中的功能)是 Vue 3 引入的一种代码组织方式,用于更灵活地组合和复用逻辑。但是在项目中大量使用这种写法该如何更好的搭建结构呢?以下是可供参考实践的案例。 一、Hooks 组织原则 单一职责每个 Hook 应专注于完成单一功能,避…...
前后端开发的未来趋势
随着技术的不断进步,前后端开发模式也在不断演变。未来,微服务架构、Serverless、前后端融合(GraphQL、BFF)等趋势将深刻影响开发方式,使应用更高效、灵活、可扩展。 1. 微服务架构与 Serverless 1.1 微服务架构(Microservices Architecture) 微服务是一种软件架构模式…...
产品经理课程
原型工具 一、土耳其机器人 这个说法来源于 1770 年出现的一个骗局,一个叫沃尔夫冈冯肯佩伦(Wolfgang von Kempelen)的人为了取悦奥地利女皇玛丽娅特蕾莎(Maria Theresia),“制造”了一个会下国际象棋的机…...
【开源宝藏】30天学会CSS - DAY12 第十二课 从左向右填充的文字标题动画
用伪元素搞定文字填充动效:一行 JS 不写,效果炸裂 你是否曾经在设计页面标题时,觉得纯文字太寡淡?或者想做一个有动感的文字特效,但又不想引入 JS 甚至 SVG? 在这篇文章中,我们将通过 一段不到…...
Nginx 负载均衡案例配置
负载均衡案例 基于 docker 进行 案例测试 1、创建三个 Nginx 实例 创建目录结构 为每个 Nginx 实例创建单独的目录,用于存储 HTML 文件和配置文件 mkdir -p data/nginx1/html mkdir -p data/nginx2/html mkdir -p data/nginx3/html添加自定义 HTML 文件 在每个…...
Golang系列 - 内存对齐
Golang系列-内存对齐 常见类型header的size大小内存对齐空结构体类型参考 摘要: 本文将围绕内存对齐展开, 包括字符串、数组、切片等类型header的size大小、内存对齐、空结构体类型的对齐等等内容. 关键词: Golang, 内存对齐, 字符串, 数组, 切片 常见类型header的size大小 首…...
nginx中的limit_req 和 limit_conn
在 Nginx 中,limit_req 和 limit_conn 是两个用于限制客户端请求的指令,它们分别用于限制请求速率和并发连接数。 limit_req limit_req 用于限制请求速率,防止客户端发送过多请求影响服务器性能。它通过 limit_req_zone 指令定义一个共享内存…...
Python Cookbook-5.4 根据对应值将键或索引排序
任务 需要统计不同元素出现的次数,并且根据它们的出现次数安排它们的顺序——比如,你想制作一个柱状图。 解决方案 柱状图,如果不考虑它在图形图像上的含义,实际上是基于各种不同元素(用Python的列表或字典很容易处理)出现的次…...
U535982 J-A 小梦的AB交换
U535982 J-A 小梦的AB交换 - 洛谷 题目描述 小梦有一个长度为 2⋅n 的 AB 串 s,即 s 中只包含 "A" 和 "B" 两种字符,且其中恰好有 n 个 "A" 和 n 个 "B"。 他可以对 s 执行以下操作: 选择 i,j (…...
2025高频面试算法总结篇【排序】
文章目录 直接刷题链接直达把数组排成最小的数删除有序数组中的重复项求两个排序数组的中位数求一个循环递增数组的最小值数组中的逆序对如何找到一个无序数组的中位数链表排序从一大段文本中找出TOP K 的高频词汇 直接刷题链接直达 把一个数组排成最大的数 剑指 Offer 45. 把…...
计算机视觉基础4——特征点及其描述子
一、特征点检测 (一)特征点定义 图像中具有独特局部性质的点。 (二)特征点性质 具有局部性(对遮挡和混乱场景鲁棒)、数量足够多(一幅图像可产生成百上千个)、独特性(…...
React 初学者进阶指南:从环境搭建到部署上线
概览 环境搭建 核心概念 TodoList 实战 部署上线 一、快速搭建 React 开发环境 1. 选型:Vite 或 Create React App Vite:轻量、热更新速度快、可定制度高,适合追求更高效率的开发者。Create React App (CRA):社区支持全面,文档丰富,适合初学者上手。我使用的是Vite 提示…...
docker加docker compose实现软件快速安装启动
docker 下载镜像官网页面:https://hub.docker.com/ docker是什么? 加速应用构建、分享、运行 docker命令 镜像操作 容器操作 docker ps:查看运行中的容器 docker ps -a: 查看所有容器,包括停止的 除了docker run和docker exec两个命令其余执…...
使用人工智能大模型腾讯元宝,如何免费快速做工作总结?
今天我们学习使用人工智能大模型腾讯元宝,如何免费快速做工作总结? 手把手学习视频地址:https://edu.csdn.net/learn/40402/666429 第一步在腾讯元宝对话框中输入如何协助老师做工作总结,通过提问,我们了解了老师做工…...
【小兔鲜】day03 Home模块与一级分类
【小兔鲜】day03 Home模块与一级分类 1. Home-整体结构搭建和分类实现1.1 页面结构 2. Home-banner轮播图功能实现 1. Home-整体结构搭建和分类实现 1.1 页面结构 分类实现 2. Home-banner轮播图功能实现 轮播图实现 在HomeBanner.vue中写出轮播图的结构 在apis目录下新建h…...
c++使用gstreamer录屏+声音
说明: c使用gstreamer完成录制电脑桌面的功能 我希望用gstreamer录屏,默认10秒,自动保存录屏文件到本地 这里是不带声音的版本,仅录屏, step1:C:\Users\wangrusheng\source\repos\CMakeProject1\CMakeProject1\CMakeL…...
PowerToys:Windows高效工具集
Microsoft PowerToys 是微软官方推出的 免费开源效率工具集,专为 Windows 系统设计,通过模块化功能解决高频操作痛点,提升用户生产力。支持 Windows 10/11 系统,覆盖开发者、设计师及普通办公场景。 一、核心功能亮点 高…...
pulsar中的延迟队列使用详解
Apache Pulsar的延迟队列支持任意时间精度的延迟消息投递,适用于金融交易、定时提醒等高时效性场景。其核心设计通过堆外内存索引队列与持久化分片存储实现,兼顾灵活性与可扩展性。以下从实现原理、使用方式、优化策略及挑战展开解析: 一、核…...
import torch 失败
1. 使用 PyTorch 官方 Conda 频道安装 运行以下命令(根据你的 CUDA 版本选择): # CPU 版本 conda install pytorch torchvision torchaudio cpuonly -c pytorch# CUDA 11.8 版本 conda install pytorch torchvision torchaudio pytorch-cud…...
什么是异步?
什么是异步? 异步是一个术语,用于描述不需要同时行动或协调就能独立运行的流程。这一概念在技术和计算领域尤为重要,它允许系统的不同部分按自己的节奏运行,而无需等待同步信号或事件。在区块链技术中,异步是指网络中…...
Llama 4 家族:原生多模态 AI 创新新时代的开启
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
情感语音的“开源先锋”!网易开源
语音合成技术近年来取得了显著进步,特别是在语音克隆、语音助手、配音服务和有声读物等领域。然而,如何让合成的语音更具情感,更贴近人类的真实表达,一直是这一领域的重要研究方向。今天,我们将为大家介绍一款由网易有…...
消息队列基础概念及选型,常见解决方案包括消息可靠性、消息有序、消息堆积、重复消费、事务消息
前言 是时候总结下消息队列相关知识点啦!我搓搓搓搓 本文包括消息队列基础概念介绍,常见解决方案包括消息可靠性、消息有序、消息堆积、重复消费、事务消息 参考资料: Kafka常见问题总结 | JavaGuide RocketMQ常见问题总结 | JavaGuide …...
子类是否能继承
继承 父类: 子 类 构造方法 非私有 不能继承 私有(private)不能继承 成员变量 非私有 能继承 私有&…...
计算机系统--- BIOS(基本输入输出系统)
一、BIOS的定义与核心定位 BIOS(Basic Input/Output System)是计算机启动时运行的底层固件,存储在主板的ROM芯片中。它是连接硬件与操作系统的桥梁,负责初始化硬件、加载启动程序,并提供基础配置界面。其核心目标是&a…...
Ollama 与 llama.cpp 深度对比
Ollama 与 llama.cpp 深度对比 1. 定位与架构 维度llama.cppOllama核心定位Meta LLaMA 的 C 推理框架,专注底层优化基于 llama.cpp 的高层封装工具,提供一站式服务技术栈纯 C 实现,支持量化/内存管理/硬件指令集优化(AVX/NEON/M…...
C++ —— 智能指针
C ——智能指针 智能指针存在的必要性1. 解决内存泄漏问题2. 避免悬垂指针(Dangling Pointer)3. 异常安全性 std::unique_ptr (独占所有权)代码功能说明关键点解析内存管理流程对比传统指针为何使用 make_unique? uniq…...
Go语言的测试框架
Go语言测试框架详解 Go语言(Golang)自发布以来,因其简洁、高效和并发支持而受到广泛欢迎。在软件开发过程中,测试是确保代码质量与稳定性的重要环节。Go语言内置的测试框架为开发者提供了灵活而强大的测试工具,使得编…...
配置多区域集成IS-IS和抓包分析
基本概念 IS-IS区域结构: 使用两级层次结构:Level 1(区域内)和Level 2(区域间) Level 1路由器了解本区域拓扑 Level 2路由器在不同区域间传输流量 Level 1-2路由器同时执行两种功能 NSAP地址ÿ…...
网络原理 - HTTP/HTTPS
1. HTTP 1.1 HTTP是什么? HTTP (全称为 “超文本传输协议”) 是⼀种应用非常广泛的应用层协议. HTTP发展史: HTTP 诞生于1991年. 目前已经发展为最主流使用的⼀种应用层协议 最新的 HTTP 3 版本也正在完善中, 目前 Google / Facebook 等公司的产品已经…...
JavaScript逆向WebSocket协议解析与动态数据抓取
在JavaScript逆向工程中,WebSocket协议的解析和动态数据抓取是关键技能。本文将结合Fiddler、Charles Proxy和APIfox工具,详细讲解如何解析WebSocket协议并抓取动态数据。 一、WebSocket协议解析 (一)WebSocket协议的基本概念 …...
过滤震荡行行策略思路
本文讨论的是如何识别和过滤金融市场中的震荡行情,特别是对于趋势交易者来说,如何避免在震荡行情中频繁止损和资金回撤。 主要观点 震荡行情的定义 - 行情在有序与无序之间的中间状态,由多空力量不足导致的横盘。 震荡行情的分类 - 宽幅震…...
消息队列(kafka 与 rocketMQ)
为什么要使用消息队列?作用1: 削峰填谷(突发大请求量问题)作用2: 解耦(单一原则)作用3: 异步(减少处理时间) 如何选择消息队列(kafka&RocketMQ)成本功能性能选择 rocketMQ是参考kafka进行实现的为什么rocketMQ与kafka性能差距很大呢?kafka 的底层数据储存实现rocketMQ 的…...
Invalid bean definition with name ‘employeeMapper‘ defined in file。解决问题
求解决方法: Error starting ApplicationContext. To display the condition evaluation report re-run your application with debug enabled. 2025-04-06T15:23:24.87308:00 ERROR 30192 --- [ main] o.s.boot.SpringApplication : Appli…...
使用NVM管理nodejs
使用NVM管理nodejs 前言1. 先清空本地安装的node.js版本2. 下载nvm管理工具3. 安装nvm管理工具4. 输入命令查看nvm版本号5. 查看node.js版本号6. 安装对应版本6.1安装命令6.2使用命令(可以快速切换node版本)6.3成功之后就可以查看本地的node版本了 7. 查…...
第11课:Tiled DiffusionVAE高分辨率放大应用
文章目录 Part.01 Tiled Diffusion原理与基本操作Part.02 Tiled Diffusion超高分辨率升级Part.03 与ControlNet Tile配合使用显存和图片大小的对应关系 Part.01 Tiled Diffusion原理与基本操作 降低显存负担,用不到一半的显存消耗实现同一张大图的绘制,提高超过50%的出图效…...
APS相关知识
MRP 在系统中实现 MRP(物料需求计划) 的逻辑,需要基于 数据库 和 算法 进行自动计算,确保物料按时到达,以满足生产需求。以下是 MRP 的核心逻辑和实现步骤: 📌 MRP 系统实现流程 数据输入&…...
浮点数精度问题
目录 ieee754标准解决方法 和c语言一样,所有以ieee754标准的语言都有浮点数精度问题,js也有浮点数精度问题,并且因为是弱类型语言这个问题更严重,js的Number类型的数据都被视为浮点数 ieee754标准 js的数字类型就相当于c语言doub…...