MySQL语法及常用数据类型

一、SQL语言概述

对数据库进行查询和修改操作的语言叫做SQL。SQL的含义就是结构化查询语言(Structured Query Language)。SQL包含以下4个部分:

1、数据定义语言(DDL):DROP、CREATE、ALTER等语句;

2、数据操作语言(DML):INSERT、UPDATE、DELETE语句;

3、数据查询语言(DQL):SELECT语句;

4、数据控制语言(DCL):GRANT、REVOKE、COMMIT、ROLLBACK的语句。

二、SQL语句的书写规范

1、在数据库系统中,SQL语句不区分大小写(建议用大写) ,但字符串常量区分大小写。

2、SQL语句可单行或多行书写,以“;”结尾。

3、关键词不能跨多行或简写。

4、用空格和缩进来提高语句的可读性。

5、子句通常位于独立行,便于编辑,提高可读性。

6、MySQL注释:使用“#”来注释

三、SQL语句执行过程

1、连接层

(1)提供连接协议:TCP/IP 、SOCKET;

(2)提供验证:用户、密码,IP,SOCKET;

(3)提供专用连接线程:接收用户SQL,返回结果。

通过以下语句可以查看到连接线程基本情况

mysql> show processlist;

2、SQL层

(1)接收上层传送的SQL语句;

(2)语法验证模块:验证语句语法,是否满足SQL_MODE;

(3)语义检查:判断SQL语句的类型

        DDL :数据定义语言、 DCL :数据控制语言、DML :数据操作语言、DQL: 数据查询语言等;

(4)权限检查:用户对库表有没有权限;

(5)解析器:对语句执行前,进行预处理,生成解析树(执行计划),说白了就是生成多种执行方案;

(6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划

         代价模型:资源(CPU IO MEM)的耗损评估性能好坏;

(7)执行器:根据最优执行计划,执行SQL语句,产生执行结果

         执行结果:在磁盘的xx位置上;

(8)提供查询缓存(默认是没开启的),会使用redis tair替代查询缓存功能;

(9)提供日志记录(日志管理章节):binlog,默认是没开启的;

         存储引擎层(类似于Linux中的文件系统);

         负责根据SQL层执行的结果,从磁盘上拿数据;

         将16进制的磁盘数据,交由SQL结构化化成表,

         连接层的专用线程返回给用户。

四、常用数据类型

1、整数类型

取值范围

eg:

mysql> create table a1 (-> id int(10),-> stu_id tinyint-> );

2、浮点数和定点数类型

注:不论是定点数还是浮点类型,如果用户指定精度超出精度范围,则会四舍五入进行处理。

 eg:

mysql> create table a2 (-> a float,-> b double,-> c decimal(4,2)-> );
mysql> insert into a2 values -> (6.5,8.9,4.506),-> (7.5555,888.888,2.33)-> ;

 

3、日期与时间类型 

mysql> create table a3 (-> year year, #第一个为字段名  第二个为字段类型-> time time,-> date date,-> datetime datetime,-> timestamp timestamp-> );
mysql> insert into a3 values (2001,'12:34:54','2023-08-18','20230801122345','20050709184534');

 4、文本类型

ENUM类型:是一个字符串对象,其值为表创建时在列规定中枚举的一列值。枚举最多可以有65535个元素。

SET类型:是一个字符串对象,可以有零个或多个值,SET列最多可以有64个成员,其值为表创建时规定的一列值,指定包含多个SET成员的SET值时,各成员之间用逗号(,)间隔开。

eg:

mysql> create table a4 (-> a char(2),-> b varchar(4),-> c text,-> d enum('1','2','3'),-> e set('a','b','c','d')-> );
mysql> insert into a4 values-> ('22','rr','123456789','2','b,d')-> ;

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins 日志输出显示时间戳的方式

网上很多方式比较片面,最新版插件直接使用即可无需更多操作。 使用方式如下: 1.安装插件 Timestamper 2.更新全局设置 系统设置-找到 Timestamper 勾选 Enabled for all Pipeline builds 也可修改时间戳格式。 帮助信息中显示 When checked, timesta…

ARM--day5(C语言点灯实验、总线、串口通信信息、串口通讯协议)

函数分装实现点灯 gpio.c: #include "gpio.h" //函数功能:GPIO引脚初始化操作 //参数1:GPIO组号 //参数2:引脚编号 //参数3:初始化内容 void hal_gpio_init(volatile gpio_t*gpiox,unsigned int pin,gpio_init_t* ini…

rabbitmq的死信队列

目录 成为死信的条件 消息TTL过期 队列达到最大长度 消息被拒 延迟队列 延迟队列使用场景 消息设置 TTL 队列设置 TTL 两者区别 producer 将消息投递到 broker 或者直接到 queue 里了, consumer 从 queue 取出消息 进行消费,但某些时候由…

最新Win10离线安装.NET Framework 3.5的方法(附离线包2022/3/22)

win10系统安装软件时,可能需要.net framework3.5的运行环境,当我们安装某些软件的时候会提示“你的电脑上的应用需要使用以下Windows功能:.NET Framework 3.5(包括.NET 2.0和3.0)。如果系统默认的是4.0以上的版本,当软件需要.net framework3.…

LVS+Keepalived集群

keepalived Keepalived及其工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务…

提升管班小诀窍

在传统教育中,将考试结果告知家长一直是一项相对麻烦的任务。老师们不得不一个一个的打电话或发短信,耗费大量时间和精力。然而,现在有了易查分,老师们可以轻松地创建自己的成绩查询系统,大大简化了这项任务。 好消息&…

【STM32】高效开发工具CubeMonitor快速上手

工欲善其事必先利其器。拥有一个辅助测试工具,能极大提高开发项目的效率。STM32CubeMonitor系列工具能够实时读取和呈现其变量,从而在运行时帮助微调和诊断STM32应用,类似于一个简单的示波器。它是一款基于流程的图形化编程工具,类…

LeetCode--HOT100题(35)

目录 题目描述:23. 合并 K 个升序链表(困难)题目接口解题思路1代码解题思路2代码 PS: 题目描述:23. 合并 K 个升序链表(困难) 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合…

视频汇聚/视频云存储/视频监控管理平台EasyCVR提升网络稳定小tips来啦!

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

HummingBird 基于 Go 开源超轻量级 IoT 物联网平台

蜂鸟(HummingBird) 是 Go 语言实现的超轻量级物联网开发平台,包含设备接入、产品管理、物模型、告警中心、规则引擎等丰富功能模块。系统采用GoLang编写,占用内存极低, 单物理机可实现百设备的连接。 在数据存储上&…

系统架构师---软件重用、基于架构的软件设计、软件模型

目录 软件重用 构件技术 基于架构的软件设计 ABSD方法与生命周期 抽象功能需求 用例 抽象的质量和业务需求 架构选项 质量场景 约束 基于架构的软件开发模型 架构需求 需求获取 标识构件 需求评审 架构设计 架构文档 架构复审 架构实现 架构演化 前言&…

Spring项目使用Redis限制用户登录失败的次数以及暂时锁定用户登录权限

文章目录 背景环境代码实现0. 项目结构图(供参考)1. 数据库中的表(供参考)2. 依赖(pom.xml)3. 配置文件(application.yml)4. 配置文件(application-dev.yml)5…

ChatGPT和Claude的能力全测评

创造性思维/语言 提示:“写一首 4 行诗,每行只有 3 个词,描写重庆” ChatGPT写诗👇 Claude写诗👇 仁者见仁,您怎么看谁更强? 提示: "如果你随机选择这个问题的答案,…

【高危】企业微信私有化2.5-2.6.93版本后台API未授权访问漏洞

漏洞描述 企业微信私有化2.5.x版本及2.6.930000版本以下后台中存在接口未授权访问漏洞,攻击者通过访问/cgi-bin/gateway/agentinfo接口可获得Secret,从而利用开放API获取企业通讯录等敏感信息及企业微信内应用权限。 漏洞名称企业微信私有化2.5-2.6.93…

Unity C# 引用池 ReferencePool

Unity C# 引用池 ReferencePool 1.目的 对于多次创建的数据使用new 关键字是十分消耗性能的,使用完成后由GC去自动释放,当一个类型的数据频繁创建可以使用引用池进行管理。 2.实现 项目目录 IReference 接口 要放入引用池的数据只需要继承这个接口…

如何提升城市空气质量?一招教会你

空气质量监控,作为保障人类健康和维护环境可持续的关键手段,在现代社会发挥着重要作用。通过实时监测、数据采集和分析,我们能够深入了解空气中各种污染物的浓度以及气象参数的变化,从而评估空气质量的状况。 空气质量监控通过科学…

开放网关架构演进

作者:庄文弘(弘智) 淘宝开放平台是阿里与外部生态互联互通的重要开放途径,通过开放的产品技术把阿里经济体一系列基础服务,像水、电、煤一样输送给我们的商家、开发者、社区媒体以及其他合作伙伴,推动行业的…

系统架构设计专业技能 · 系统工程与系统性能

系列文章目录 系统架构设计专业技能 网络技术(三) 系统架构设计专业技能 系统安全分析与设计(四)【系统架构设计师】 系统架构设计高级技能 软件架构设计(一)【系统架构设计师】 系统架构设计高级技能 …

设计模式十七:迭代器模式(Iterator Pattern)

迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供了一种访问聚合对象(例如列表、集合、数组等)中各个元素的方法,而无需暴露其内部表示。迭代器模式将遍历元素和访问元素的责任分离开来&#xff0…

Python“牵手”淘宝商品详情数据采集方法,淘宝API申请步骤说明

淘宝平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范。 淘宝API接口是指通过编程的方式,让开发者能够通过HTTP协议直接访问淘宝平台的数据,包括商品信息、店铺信息、物流信息等,从而实现淘宝平台的数据开…