MySQL 基础入门教程
参考视频地址:一小时MySQL教程 bilibili
SQL 基础
数据库分为关系型数据库和非关系型数据库
常见的关系型数据库:
- MySQL、PostgreSQL、Oracle、SQL Server等。
非关系型数据库:
- MongoDB(文档型数据库)、Redis(键值型数据库)、Cassandra(列族数据库)、Neo4j(图形数据库)等。
在关系型数据库中,SQL(Structured Query Language) 语言 用于操作表中的数据,SQL 不区分大小写,但是一般来说,我们将关键字大写,表名、列名和其他名称小写。SQL 语言可以分为以下几类:
- DDL (Data Definition Language) 数据定义语言:
CREATE、DROP、ALTER、TRUNCATE等 - DML (Data Manipulation Language) 数据操作语言:
INSERT、UPDATE、DELETE、CALL等 - DQL (Data Query Language) 数据查询语言:
SELECT等 - DCL (Data Control Language) 数据控制语言:
GRANT、REVOKE等
- 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件)
- 表(table):某种特定类型数据的结构化清单
- 模式(schema):关于数据库和表的布局及特性的信息
- 列(column):表中的一个字段。所有表都是有一个或多个列组成的
- 数据类型(datatype):每个表列都有相应的数据类型
- 行(row):表中的一个记录
- 主键(primary key):一列(或一组列),其值能够唯一区分表中的每个行
SQL 数据类型
一、整数类型
- INT:用于存储整数数据(4个字节)。
- SMALLINT:存储范围较小的整数(2个字节)。
- TINYINT:存储范围更小的整数
- BIGINT:用于存储非常大的整数(8个字节)。
二、浮点类型
- FLOAT:用于存储单精度浮点数。
- REAL:在某些数据库系统中,REAL是FLOAT的同义词,或用于表示另一种浮点类型。
- DOUBLE:用于存储双精度浮点数,精度高于FLOAT。
三、字符数据类型
- CHAR(n):固定长度字符数据,n表示字符数。
- VARCHAR(n):可变长度字符数据,n表示最大字符数,节省存储空间。
- TEXT:用于存储大量文本数据,长度通常超过VARCHAR的限制。
四、Unicode数据类型
- NCHAR(n):固定长度Unicode字符数据,n表示字符数。
- NVARCHAR(n):可变长度Unicode字符数据,n表示最大字符数。
- NTEXT:用于存储大量Unicode文本数据。
五、日期和时间数据类型
- DATE:仅存储日期。
- TIME:仅存储时间。
- DATETIME:存储日期和时间。
- TIMESTAMP:存储时间戳,通常用于记录时间变更或事件。
六、数值类型
- NUMERIC(p, s) 或 DECIMAL(p, s):用于精确存储小数数据,p表示总位数,s表示小数点后位数。
七、货币数据类型
- MONEY:用于存储货币数据,通常要求8个存储字节。
- SMALLMONEY:用于存储较小范围的货币数据,通常要求4个存储字节。
八、二进制数据类型
- BINARY(n):固定长度二进制数据,n表示字节数。
- VARBINARY(n):可变长度二进制数据,n表示最大字节数。
- BLOB(Binary Large Object):用于存储大量二进制数据,如图片、音频、视频文件等。
九、其他数据类型
- BOOL 或 BOOLEAN:用于存储逻辑真或假,值通常为TRUE或FALSE,1或0。
- ENUM:枚举类型,用于存储一组预定义的值。
- ARRAY、SET、JSON等集合类型:用于存储一组数据。
需要注意的是,不同的数据库管理系统(如MySQL、PostgreSQL、SQL Server等)可能支持的数据类型及其特性略有差异。因此,在选择数据类型时,应参考具体数据库系统的文档和指南。
创建数据库
显示当前所有数据库:SHOW DATABASES;
创建数据库:CREATE DATABASE [name];
删除数据库:DROP DATABASE [name];
使用数据库:USE DATABASE [name];
创建表
显示数据库内的表:SHOW TABLES;
显示列:SHOW COLUMNS FROM [tablename];
创建表:
CREATE TABLE player(id INT,name VARCHAR(10),level INT,exp INT,gold DECIMAL(10,2)
)
显示表的信息:DESC player 或者 DESCRIBE player

修改表结构,使用 ALTER 语句:
- 修改现有字段:
ALTER TABLE player MODIFY COLUMN name VARCHAR(8);ALTER TABLE player MODIFY COLUMN level INT DEFAULT 1;

- 增加字段:
ALTER TABLE player ADD COLUMN last_login DATETIME;

- 删除字段:
ALTER TABLE player DROP COLUMN last_login;
删除表:DROP TABLE [table_name];
重命名表:RENAME TABLE [last_name] TO [current_name];
增删改查
查询关键字:SELECT
查询语句一般格式:SELECT [column_name] FROM [table_name] LIMIT [start_line_num, total_line_nums];
通配符*可以用于检索所有列:SELECT * FROM [table_name]
ORDER BY 子句用于对检索出的数据进行排序,DESC 用于降序排序,ASC 用于升序排序
SELECT 子句顺序:
SELECTFROMWHEREGROUP BYHAVINGORDERED BYLIMIT
增加关键字:INSERT
修改关键字:UPDATE
删除关键字:DELETE
数据导入导出
数据导出:mysqldump
数据导入:
过滤数据
WHERE 关键字:SELECT [column_name1] FROM [table_name] WHERE [column_name2] IS NULL AND [column_name3] <= 3;
分组数据
GROUP BY 子句和 HAVING 子句;
子查询
表关联
索引
视图
相关文章:
MySQL 基础入门教程
参考视频地址:一小时MySQL教程 bilibili SQL 基础 数据库分为关系型数据库和非关系型数据库 常见的关系型数据库: MySQL、PostgreSQL、Oracle、SQL Server等。 非关系型数据库: MongoDB(文档型数据库)、Redis&am…...
俏生元将传统膳食智慧融入现代生活,自然成分绽放健康光彩
近年来,当代女性健康食品市场正经历快速发展和显著变化。随着女性健康意识的提升,市场对专门针对女性健康的产品需求快速上升。女性消费者对健康的关注不再局限于表面,而是越来越注重内在健康和生活质量的提升。此外,中式养生文化…...
腾讯云推流播放相关
直播的在线人数是否有上限? 腾讯云直播默认不限制观看直播的在线人数,只要网络等条件允许都可以观看直播。如果用户配置了带宽限制,当观看人数过多、超出了限制带宽时新的用户无法观看,此情况下在线人数是有限制的。 如何使用播…...
UE5运行时动态加载场景角色动画任意搭配-相机及运镜(二)
通过《MMD模型及动作一键完美导入UE5》系列文章,我们可以把外部场景、角色、动画资产导入UE5,接下来我们将实现运行时动态加载这些资产,并任意组合搭配。 1、运行时播放相机动画 1、创建1个BlueprintActor,通过这个蓝图动态创建1个LevelSequence,并Play 2、将这个Bluep…...
@JsonAlias和@JSONField序列化和反序列化
com.fasterxml.jackson.annotation.JsonAlias("expressCode") com.alibaba.fastjson.annotation.JSONField(name "expressCode") 这两个注解分别属于不同的JSON序列化框架:Jackson 和 Fastjson,它们的用途是处理JSON字段的名称映射…...
k8s1.27部署ingress 1.11.2
k8s1.27部署ingress 1.11.2 要求: 1、使用主机网络。 2、多节点部署,以来标签:isingressistrue ingress1.11.2支持版本 官方参考链接: https://github.com/kubernetes/ingress-nginx/ 官网yaml https://raw.githubuserconten…...
【运维】自动化运维详解
目录 引言一、什么是自动化运维?二、自动化运维的优势三、自动化运维的关键组成部分详解3.1 监控与告警3.2 部署与配置管理3.3 备份与恢复3.4 安全管理 总结 引言 在当今信息技术飞速发展的时代,企业对IT基础设施的依赖日益增强,传统的人工运…...
线控底盘技术介绍
随着汽车工业的不断发展,传统的机械控制系统逐渐向电子控制系统转变。线控底盘(Drive-by-Wire Chassis)作为这一转变的重要组成部分,正在改变汽车的操控方式和驾驶体验。本文将全面介绍线控底盘的概念、组成、工作原理、优缺点、应…...
DOM对象
DOM概述 官方定义: DOM是W3C制定的一个规范(标准),(Document Object Model,文档对象模型),是提供了访问和操作网页中各元素的方法,让程序可以动态的修改或改变网页元素的内容、样式、结构。 DOM是W3C制定的一个规范…...
[SQL] 数据库图形化安装和使用
一 安装 1.1 图形化安装 下载DataGrip安装包 点击此处一直下一步即可。点击免费使用。 进去界面后,选择新建一个项目 点击加号,创建一个Mysql连接。输入Mysql的连接信息。点击DownLoad下载Mysql的驱动 接下来点击创建的mysq项目中后面的三个点,选择…...
springboot 前后端处理日志
为了实现一个高效且合理的日志记录方案,我们需要在系统架构层面进行细致规划。在某些情况下,一个前端页面可能会调用多个辅助接口来完成整个业务流程,而并非所有这些接口的交互都需要被记录到日志中。为了避免不必要的日志开销,并…...
C++11 简单手撕多线程编程
如何使用线程库 std::thread 创建线程 thread1.join(); 阻塞主线程 thread1.detach(); 线程分离 #include<iostream> #include<thread>void helloworld(std::string msg) {for (int i 0; i < 10000; i){std::cout << i << std::endl;}//std::cou…...
刷c语言练习题7(牛客网)
1、函数fun的声明为int fun(int *p[4]),以下哪个变量可以作为fun的合法参数() A、int a[4][4]; B、int **a; C、int **a[4] D、int (*a)[4]; 答案:B 解析:如果是fun的合法参数,那么其类型应该与定义函数fun中的参数类型…...
Web Worker和WebSocket
Web Worker和WebSocket协议都是Web开发中用于处理多线程和实时通信的技术,但它们的应用场景和工作原理有所不同。 Web Worker Web Worker是HTML5引入的一项技术,它允许JavaScript代码在后台线程中运行,从而实现真正的多线程处理。Web Worke…...
【LeetCode】动态规划—712. 两个字符串的最小ASCII删除和(附完整Python/C++代码)
动态规划—712. 两个字符串的最小ASCII删除和 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化5. 小总结 代码实现PythonPython3代码实现Python 代码解释 CC代码实现C 代码解释 总结: 前言 在字符串处…...
wordpress Contact Form 7插件提交留言时发生错误可能的原因
WordPress Contact Form 7 插件提交留言时发生错误可能有以下几种原因,并提供相应的解决方案: 1. 表单字段验证失败 原因: 用户输入的数据未通过表单字段的验证规则。 解决方案: – 检查表单字段的验证规则是否设置正确。 –…...
uibot发送邮件:自动化邮件发送教程详解!
uibot发送邮件的操作指南?uibot发送邮件的两种方式? 在现代办公环境中,自动化流程的引入极大地提高了工作效率。uibot发送邮件功能成为了许多企业和个人实现邮件自动化发送的首选工具。AokSend将详细介绍如何使用uibot发送邮件。 uibot发送…...
【PostgreSQL】PG数据库表“膨胀”粗浅学习
文章目录 1 为什么需要关注表膨胀?2 如何确定是否发生了表膨胀?2.1 通过查询表的死亡元组占比情况来判断膨胀率2.1.1 指定数据库和表名2.1.2 查询数据库里面所有表的膨胀情况 3 膨胀的原理3.1 什么是膨胀?膨胀率?3.2 哪些数据库元…...
力扣(leetcode)每日一题 871 最低加油次数 | 贪心
871. 最低加油次数 题干 汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处。 沿途有加油站,用数组 stations 表示。其中 stations[i] [positioni, fueli] 表示第 i 个加油站位于出发位置东面 positioni 英里处,并且有 f…...
ppt压缩文件怎么压缩?压缩PPT文件的多种压缩方法
ppt压缩文件怎么压缩?当文件体积过大时,分享和传输就会变得困难。许多电子邮件服务对附件的大小有限制,而在网络环境不佳时,上传和下载大文件可能耗时较长。此外,在不同设备上播放时,较大的PPT文件还可能导…...
3分钟解锁Translumo:Windows平台屏幕实时翻译的终极解决方案
3分钟解锁Translumo:Windows平台屏幕实时翻译的终极解决方案 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 还…...
SolidWorks插件开发避坑指南:手把手教你搞定工具栏图标和菜单注册表清理
SolidWorks插件开发深度优化:图标管理与注册表清理实战 当你在SolidWorks插件开发中精心设计了功能完备的工具栏,却遭遇图标显示异常、工具栏名称重复或旧插件残留等问题时,那种挫败感每个开发者都深有体会。这些看似简单的界面问题背后&…...
从堆叠到双线性:手把手图解注意力机制的‘进化史’与PyTorch实现对比
从堆叠到双线性:手把手图解注意力机制的‘进化史’与PyTorch实现对比 在计算机视觉与自然语言处理的交叉领域,注意力机制早已从最初的简单加权求和发展为具有复杂交互能力的计算范式。本文将带您穿越注意力机制的进化长廊,通过PyTorch实战演示…...
从‘人脑理解’到‘图解表达’:我是如何拆解小米便签项目结构的(附避坑指南)
从混沌到清晰:解码小米便签架构的思维可视化实战 第一次打开小米便签的源码时,我仿佛闯入了一个陌生的城市。高耸的Activity大厦、错综复杂的Manager街道、隐藏在角落的Helper小巷...作为刚入门的Android开发者,面对这样一个成熟项目的代码库…...
告别JNI内存泄漏:实战中那些容易踩坑的字符串与数组操作(附完整代码示例)
告别JNI内存泄漏:实战中那些容易踩坑的字符串与数组操作(附完整代码示例) 在Android NDK开发和高性能Java服务中,JNI(Java Native Interface)作为连接Java与C的桥梁,其重要性不言而喻。然而&…...
关键字[Static]
一、static 的三种用法 1. 静态局部变量 * 特性: * - 只初始化一次(程序启动时) * - 函数返回后值保留(不销毁) * - 下次调用时保持上次的值 * - 存储在静态区,不在栈上 2. 静态全局变量(文件作用域限制) 仅在 xx.c 内可见,其他文件无法访问 3. 静态函数(文件作用域限…...
AI一键生成微信红包封面系统源码
内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 AI微信红包封面生成器源码是一款开源的微信红包封面生成工具,由前腾讯微信后台开发工程师「idoubi」开发并开源。项目名为“AI Cover”,旨在利用人工智能技术为用…...
如何3步解决Mac NTFS读写难题:Nigate终极免费开源方案
如何3步解决Mac NTFS读写难题:Nigate终极免费开源方案 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and management fo…...
如何免费使用AI图像放大神器Upscayl?一文掌握所有技巧
如何免费使用AI图像放大神器Upscayl?一文掌握所有技巧 【免费下载链接】upscayl 🆙 Upscayl - #1 Free and Open Source AI Image Upscaler for Linux, MacOS and Windows. 项目地址: https://gitcode.com/GitHub_Trending/up/upscayl 想要将模糊…...
3步掌握SacreBLEU:让机器翻译评估变得简单可靠
3步掌握SacreBLEU:让机器翻译评估变得简单可靠 【免费下载链接】sacrebleu Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons 项目地址: https://gitcode.com/gh_mirrors/sa/sacr…...
