MySQL的SQL分类与数据类型

news2024/11/16 17:53:06

MySQL是一款广泛使用的关系型数据库管理系统,开源、免费且跨平台,常用于存储、管理和检索结构化数据,并通过SQL语言支持高效的数据操作与管理。

文章目录

    • 何为SQL
    • SQL分类
      • DDL
      • DML
      • DCL
      • TCL
      • DQL
    • MySQL的数据类型
      • 数值型
      • 日期型
      • 字符串型
      • 二进制型
      • 其他类型

何为SQL

在MySQL中提到的“SQL”指的是“结构化查询语言”(Structured Query Language)。MySQL是一个关系型数据库管理系统(RDBMS),而SQL是用于与这种类型的数据库交互的标准语言。通过SQL,用户可以执行以下操作:数据定义、数据查询、数据操作、数据控制等操作。

在MySQL的上下文中,SQL是用户与MySQL数据库系统之间进行通信的关键工具,用于执行所有核心的数据库功能。MySQL实现了SQL标准,并在此基础上扩展了一些特定于MySQL的功能和语法。

SQL分类

SQL语句分为DQL、DML、DDL、DCL和TCL五大类。

DDL

数据定义语言(Data Definition Language,简称DDL):DDL用于定义数据库的结构,包括创建、修改和删除数据库、表、索引、视图等元素。常用的DDL语句包括CREATE、ALTER和DROP,也是我们常说的创建、删除、修改对象。

DML

数据操作语言(Data Manipulation Language,简称DML):DML用于对数据库中的数据进行操作,包括插入、更新和删除数据。常用的DML语句包括SELECT、INSERT、UPDATE和DELETE,通俗一点就是对数据的增删改查操作。

DCL

数据控制语言(Data Control Language,简称DCL):DCL用于控制数据库中数据的访问权限和数据完整性的约束,包括授权和回收权限、创建用户和角色等。常用的DCL语句包括GRANT和REVOKE。对用户的权限管理、事务管理,就需要用到数据控制语句。

TCL

事务控制语言(Transaction Control Language,简称TCL):TCL用于控制事务的提交和回滚,保证数据库的一致性和完整性。常用的TCL语句包括COMMIT和ROLLBACK。COMMIT和ROOLBACK都是需要特别注意风险控制的。

DQL

数据查询语言(Data Query Language,简称DQL):DQL用于从数据库中获取数据,进行数据的查询和检索。常用的DQL语句是SELECT。也是我使用最多的语句。

MySQL的数据类型

在MySQL中,常见的数据类型包括数值型、字符串型、二进制型、日期型和其他类型。

数值型

MySQL支持多种数值型数据类型,包括整数型、小数型和布尔型。

整数型
整数类型:如TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT等,用于存储整数值。

类型描述
TINYINT1字节,取值范围为-128到127或0到255。
SMALLINT2字节,取值范围为-32768到32767或0到65535。
MEDIUMINT3字节,取值范围为-8388608到8388607或0到16777215。
INT4字节,取值范围为-2147483648到2147483647或0到4294967295。
BIGINT8字节,取值范围为-9223372036854775808到9223372036854775807或0到18446744073709551615。

小数型
小数型:用于存储带有小数部分的数值。

类型描述
FLOAT4字节,单精度浮点数,精度为7位。
DOUBLE8字节,双精度浮点数,精度为15位。
DECIMAL可变长度,用于存储精确的小数,精度和数据长度可以自定义。

布尔型
MySQL支持布尔型数据类型,即BOOLEAN或BOOL。它只占用1位,取值为TRUE或FALSE。

日期型

类型描述
DATE用于存储日期,格式为YYYY-MM-DD。
TIME用于存储时间,格式为HH:MM:SS。
DATETIME用于存储日期时间,格式为YYYY-MM-DD HH:MM:SS。
TIMESTAMP用于存储时间戳,格式为YYYY-MM-DD HH:MM:SS。
YEAR用于存储年份,格式为YYYY。

字符串型

类型描述
CHAR用于存储固定长度的字符串,长度为0到255个字符。
VARCHAR用于存储可变长度的字符串,长度为0到65535个字符。
TEXT用于存储大量的文本数据,最大长度为65535个字符。
BLOB用于存储大量的二进制数据,最大长度为65535个字节。
ENUM用于存储枚举类型的数据,如性别、状态等。

二进制型

类型描述
BIT用于存储比特位,长度为1到64个比特位。
BINARY用于存储固定长度的二进制数据,长度为0到255个字节。
VARBINARY用于存储可变长度的二进制数据,长度为0到65535个字节。

其他类型

类型描述
SET用于存储一组可选值,最多可以有64个选项。
JSON用于存储JSON格式的数据。
Geometry用于存储几何类型的数据,如点、线、面等。

每种数据类型都有其特定的存储需求、占用空间大小和允许的操作。正确地为数据选择合适的数据类型是数据库设计关键点之一,为数据选择合适的数据类型有助于确保数据的准确性、完整性,并且有利于优化查询性能和存储效率。
在这里插入图片描述

MySQL作为广泛使用的开源关系型数据库管理系统,用户可以免费下载、使用和修改其源代码,可以在多种操作系统平台上运行,包括Windows、Linux、Mac OS等,所以适用于大多数Web应用、中小型项目以及部分大型项目,但针对特定的复杂业务场景或高度垂直化的行业需求,可能需要根据具体情况进行权衡和定制化调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1409762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java多线程--对比创建多线程的两种方式

文章目录 一、对比两种方式(1)对比(2)Runnable的好处1、案例12、案例2(3)区别和联系(4)补充说明二、笔试题(1)题1(2)题2一、对比两种方式 (1)对比 <1> 两种方式步骤如下: 方式一:继承Thread类 方式二:实现Runnable接口 <2> 演示代码:计算…

uniapp 用css animation做的鲤鱼跃龙门小游戏

第一次做这种小游戏&#xff0c;刚开始任务下来我心里是没底的&#xff0c;因为我就一个‘拍黄片’的&#xff0c;我那会玩前端的动画啊&#xff0c;后面尝试写了半天&#xff0c;当即我就给我领导说&#xff0c;你把我工资加上去&#xff0c;我一个星期给你做出来&#xff0c;…

Idea 连接 mysql 数据库

前言 为了方便直接在 idea 开发工具中直接使用数据库&#xff0c;如查看数据等&#xff0c;可以在 idea 中配置数据库相关属性&#xff0c;实现操作数据库。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 使用步骤 点击最右面的 database&#xff0…

手把手系列!无需 OpenAI 即可搭建 RAG 应用

OpenAI 是时下最火爆的大语言模型&#xff08;LLM&#xff09;&#xff0c;不过除了 OpenAI 以外&#xff0c;还有许多不同的 LLM。此前&#xff0c;我们发布的许多篇文章中都介绍了如何使用 LangChain、Milvus 和 OpenAI 搭建众多 RAG 应用&#xff0c;这次我们来试试不一样的…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1(附项目源码)

本篇最终效果演示 文章目录 本篇最终效果演示系列目录前言环境素材绘制地形 实现人物移动指示显示物品名称源码完结 系列目录 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1&#xff08;附项目源码&#xff09; 【制作100个unity游戏之23】实现类似七日杀、森…

在FreeRTOS上使用软定时器的ESP32开发指南

在FreeRTOS上使用软定时器的ESP32开发指南 在ESP32的开发中&#xff0c;使用FreeRTOS实时操作系统可以有效地提高多任务处理和系统稳定性。其中&#xff0c;软定时器是一项非常有用的功能&#xff0c;它可以让我们在系统中创建定时任务&#xff0c;而无需硬件定时器的支持。 …

基于cubeMX的正点原子miniSTM32对W25Q64的存储使用

一、实现目标 使用cubeMX建立项目工程&#xff0c;结合正点原子提供的hal库对W25Q64闪存调用的例程&#xff0c;实现W25Q64的读写。 二、实现过程 1、首先建立cubeMX工程&#xff0c;其他项设置不再叙述&#xff0c;只看连接W25Q64的SPI设置&#xff0c;这里使用SPI1&#xf…

css display 左右对齐 技巧

.list_number{ display: flex; } .list_name_number{ width:100px; } //左边固定width .list_name_type{ //右边给flex:2 自动撑开 flex:2; }

docker(上)

笔记资料参考与尚硅谷 前提知识课程介绍课程定位学习建议 1前提知识 boot cloud git push pull redis nginx mysql... Linux centos ubuntu 2课程介绍 2.1 2018 vs 2022 2.2 k8s&#xff08;雷峰崖&#xff09; 2.3 大纲 3课程定位&#xff08;因材施教量体裁衣…

Web08--JavaScript高级

1、BOM对象 BOM&#xff1a;browser object model 浏览器对象模型 BOM对象包括window对象、screen对象、history对象、location对象、navigator对象。 1.1 window对象 所有的浏览器都支持window对象。它表示的浏览器窗口 window对象是js中的顶层对象&#xff0c;所有的j…

DOS经典软件,落下帷幕,国产新一代中文编程体系兴起

互联网的演变犹如狂风巨浪&#xff0c;一些我们以为早已遗忘的软件却深深烙印在心底&#xff0c;特别是对于那些经历了DOS到Windows时代变革的人们来说&#xff0c;这种感觉尤为强烈。 DOS软件&#xff0c;曾是80后青春岁月中的璀璨星辰&#xff0c;如今虽已成为历史的遗迹&am…

Redis内存空间节省小技巧

背景&#xff1a;为提升会员对当前等级的权益感知&#xff0c;需对用户仍未领取的权益进行弹框或消息位置推荐&#xff0c;会员需推荐权益有10项&#xff0c;且项权益均需需校验当日推荐次数并做推送限制&#xff0c;推荐次数记入Redis缓存&#xff0c;会员数据庞大&#xff0c…

[实战]加密传输数据解密

前言 下面将分享一些实际的渗透测试经验&#xff0c;帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主&#xff0c;技巧为辅&#xff0c;进入逆向的大门。 技巧 开局先讲一下技巧&#xff0c;掌握好了技巧&#xff0c;方便逆向的时候可以更加快速的找到关键函数…

代码随想录 Leetcode226.翻转二叉树

题目&#xff1a; 代码(首刷看解析 2024年1月25日&#xff09;&#xff1a; class Solution { public:TreeNode* invertTree(TreeNode* root) {if(root nullptr) return root;swap(root->left,root->right);invertTree(root->left);invertTree(root->right);retu…

Java面试提纲

JDK 1 jdk1.8版本后的新特性有哪些? Java Development Kit (JDK) 1.8&#xff08;也称为Java 8&#xff09;在2014年3月发布&#xff0c;引入了许多重要的新特性&#xff0c;以下是其中的一些关键特性&#xff1a; Lambda表达式&#xff1a; Java 8引入了lambda表达式&#x…

java大数据hadoop2.9.2 Linux安装mariadb和hive

一、安装mariadb 版本centos7 1、检查Linux服务器是否已安装mariadb yum list installed mariadb* 2、如果安装了&#xff0c;想要卸载 yum remove mariadb rm -rf /etc/my.cnf rm -rf /var/lib/mysql 才能完全删除 3、安装mariadb 在线网络安装 yum install -y mari…

java常见的面试问题

目录 一、异常 1、 throw 和 throws 的区别&#xff1f; 2、 final、finally、finalize 有什么区别&#xff1f; 3、try-catch-finally 中哪个部分可以省略&#xff1f; 4、try-catch-finally 中&#xff0c;如果 catch 中 return 了&#xff0c;finally 还会执行吗&#…

vue3 实现自定义radio

需求背景解决效果bgRadio.vue 需求背景 实现一个自定义选中样式的 radio 解决效果 bgRadio.vue <!--/** * author: liuk * date: 2024/01/25 * describe: 背景单选框 * email: 1229223630qq.com */--> <template><div class"radio-wrap"><l…

Linux 互斥锁、读写锁、条件变量以及信号量

互斥锁 同步与互斥概述 现代操作系统基本都是多任务操作系统&#xff0c;即同时有大量可调度实体在运行。在多任务操作系统中&#xff0c;同时运行的多个任务可能&#xff1a; 都需要访问/使用同一种资源多个任务之间有依赖关系&#xff0c;某个任务的运行依赖于另一个任务 …

AP5216 平均电流型LED降压恒流驱动IC 手电筒汽车摩托车灯芯片

产品描述 AP5216 是一款 PWM工作模式, 高效率、外围简单、内置功率管&#xff0c;适用于5V&#xff5e;100V输入的高精度降压 LED 恒流驱动芯片。输出最大功率可达9W&#xff0c;最大电流 1.0A。AP5216 可实现全亮/半亮功能切换&#xff0c;通过MODE 切换&#xff1a;全亮/半亮…