MySQL语法及常用数据类型

news2025/1/23 17:41:23

一、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.coloradmin.cn/o/894932.html

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

相关文章

这些选品神器,跨境卖家都在用

相信许多跨境电商商家至今不懂得如何选品,不会选?选什么类目?在哪选? 今天给大家整理一波实用选品工具,赶紧来码住。 1、TikTok 在国外流行着这么一句话:“TikTok mademe buyit”。 TikTok有超过 20亿的流量&#x…

ReentrantLock源码解析

定义 可重入锁,对于同一个线程可以重复获得此锁。分为FailLock和NonfairLock。 加锁就是将exclusiveOwnerThread设置为当前线程,且将status加一,解锁就status-1,且exclusiveOwnerThread设置为null。 公平锁:根据先来后…

C# Linq源码分析之Take (三)

概要 本文在前两篇Take源码分析的基础上,着重分析Range参数中有倒数的情况,即分析TakeRangeFromEndIterator的源码实现。 源码及分析 TakeRangeFromEndIterator方法用于处理Range中的开始和结束索引存在倒数的情况。该方法位于Take.cs文件中。通过yie…

Android4:约束布局

创建项目My Constraint Layout 一般创建项目之后activity_main.xml文件默认就是采用约束布局&#xff0c;如&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayoutxmlns:android"http:…

FastDFS文件管理知识点+案例分析

一 介绍FastDFS 原理 FastDFS开源分布式文件系统由C语言编写实现, 可以通过专有API访问&#xff0c;目前提供了C、Java和PHP API。 FastDFS是一个开源的轻量级分布式文件系统&#xff0c;它对文件进行管理&#xff0c;功能包括&#xff1a;文件存储、文件同步、文件访问&#x…

scala中json4s 使用详解

预备知识 json4s的数据结构AST (Abstract Syntax Tree)。 sealed abstract class JValue case object JNothing extends JValue // zero for JValue case object JNull extends JValue case class JString(s: String) extends JValue case class JDouble(num: Double) extend…

企业需求如何精准对接科研院校科技成果?

一系列科技成果转化相关政策、法律法规的出台&#xff0c;正在破除高校科技成果转化机制上的桎梏。企业科技创新的需求也越来越大&#xff0c;也充分意识到与高校合作对于推动企业发展的重要性&#xff0c;对接科技成果的热情高涨&#xff0c;合作越来越频繁。但是也存在不成功…

SpringBoot 的 RedisTemplate、Redisson

一、Jedis、Lettuce、Redisson的简介 优先使用Lettuce&#xff0c; 需要分布式锁&#xff0c;分布式集合等分布式的高级特性&#xff0c;添加Redisson结合使用。 对于高并发&#xff0c;1000/s的并发&#xff0c;数据库可能由行锁变成表锁&#xff0c;性能下降会厉害。 1.1、…

linux中ubuntu安装hashcat方法以及使用GPU破解

一、linux安装hashcat git clone https://github.com/hashcat/hashcat.git make make install二、安装驱动 驱动版本安装大全&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive 查看自己显卡选择对应的版本&#xff0c;根据下面命令无脑安装就行了 wget https:/…

誉天华为数通Datacom HCIE认证课程

作为当前网络领域最具含金量的认证之一&#xff0c;华为Datacom HCIE认证不仅是网络工程师们技术能力的证明&#xff0c;也是未来行业趋势的风向标。 尽管经历了几度版本更迭、考题变化&#xff0c;但是誉天一直紧跟技术发展趋势&#xff0c;在专业领域和教学内容上始终与当前的…

生成国密密钥对

在线生成国密密钥对 生成的密钥对要妥善保管&#xff0c;丢失是无法找回的。

奇迹MU服务端IGC架设流程

奇迹MU服务端IGC架设流程 大家好我是艾西&#xff0c;今天跟大家简单聊下奇迹IGC服务端。IGC端是国外的东西全英文大家感兴趣的话也可以自己研究研究&#xff0c;整体的东西还是非常完整。扩展以及端的稳定性还是非常不错的就是有点费脑子........&#xff08;此教程为个人娱乐…

WebStorm运行vue项目

WebStorm运行vue项目&#xff08;vue2&#xff09; 1.安装webstorm 2. 需要安装node.js 环境&#xff0c;可以去官网下载 https://nodejs.org/en 3. 安装完需要查看 按winr 输入cmd进入 输入命令node -v 和npm -v 查看&#xff0c;会出现相应的版本号,代表安装成功 vue官网安…

IC设计中主要的EDA工具有哪些? (内附EDA虚拟机安装资源)

EDA工具的使用涵盖了芯片的功能设计、综合、验证、物理设计等环节&#xff0c;更是被称作“芯片设计的工作母机”。下面就来为大家具体介绍一下常见的EDA工具。&#xff08;需要EDA虚拟机安装资源文末可领取~&#xff09; 什么是EDA&#xff1f; EDA是电子设计自动化&#xf…

对象存储服务-MinIO基本集成

是什么 MinIO 是一个高性能的分布式对象存储服务&#xff0c;适合存储非结构化数据&#xff0c;如图片&#xff0c;音频&#xff0c;视频&#xff0c;日志等。对象文件最大可以达到5TB。 安装启动 mkdir -p /usr/local/minio cd /usr/local/minio# 下载安装包 wget https:/…

NextJs - Error Handling (错误处理)

Error.js 的作用 使用 error.js 文件规则&#xff0c;可以优雅地处理嵌套路由中的意外运行时错误。 在 React Error Boundary 中自动封装路由段及其嵌套子段。 使用文件系统层次结构来调整粒度&#xff0c;为特定网段量身定制错误 UI。 将错误隔离到受影响的网段&#xff0…

红帆OA SQL注入漏洞复现

0x01 产品简介 红帆iOffice.net从最早满足医院行政办公需求&#xff08;传统OA&#xff09;&#xff0c;到目前融合了卫生主管部门的管理规范和众多行业特色应用&#xff0c;是目前唯一定位于解决医院综合业务管理的软件&#xff0c;是最符合医院行业特点的医院综合业务管理平…

怎么修改图片的分辨率?

怎么修改图片的分辨率&#xff1f;很多人还不知道分辨率是什么意思&#xff0c;以为代表了图片的清晰度&#xff0c;然而并不是这样的&#xff0c;其实图片的分辨率就是图片尺寸大小的意思。修改图片的分辨率即改变图片的尺寸&#xff0c;通常以像素为单位表示。分辨率决定了图…

【腾讯云Cloud Studio实战训练营】使用Cloud Studio社区版快速构建React完成点餐H5页面还原

陈老老老板&#x1f9b8; &#x1f468;‍&#x1f4bb;本文专栏&#xff1a;生活&#xff08;主要讲一下自己生活相关的内容&#xff09; &#x1f468;‍&#x1f4bb;本文简述&#xff1a;生活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f468;‍&#x1f4bb;上一篇…

如何优雅做好项目管理?

导言 项目本身无好坏之分&#xff0c;项目管理有做好与做坏之别。在互联网大厂的体制下&#xff0c;想要做坏一个项目很难&#xff08;可以通过换人、追加资源等方式消除风险&#xff09;&#xff0c;想要做好一个项目不容易&#xff0c;需要团队及PM付出大量心血和精力。在这…