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.hqwc.cn/news/72621.html

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

相关文章

Mysql复制类型、主从复制集群种类、主从复制原理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 主从复制原理主从复制原理图一、概述二、为什么要读写分离?三、mysql支持的复制类型1、基于语句的复制statement:2、基于行的复制row&#x…

智能合约 -- 常规漏洞分析 + 实例

1.重入攻击 漏洞分析 攻击者利用合约漏洞,通过fallback()或者receive()函数进行函数递归进行持续取钱。 刚才试了一下可以递归10次,貌似就结束了(version: 0.8.20)。 直接看代码: 银行合约:有存钱、取钱、查看账户余额等函数。攻击合约:…

收集的一些比较好的git网址

1、民间故事 https://github.com/folkstory/lingqiu/blob/master/%E4%BC%A0%E8%AF%B4%E9%83%A8%E5%88%86/%E4%BA%BA%E7%89%A9%E4%BC%A0%E8%AF%B4/%E2%80%9C%E6%B5%B7%E5%BA%95%E6%8D%9E%E6%9C%88%E2%80%9D%E7%9A%84%E6%AD%A6%E4%B8%BE.md 2、童话故事 https://gutenberg.org/c…

前端开发,怎么解决浏览器兼容性问题? - 易智编译EaseEditing

解决浏览器兼容性问题是前端开发中常见的挑战之一。不同的浏览器可能对网页元素的渲染和功能支持有所不同,因此需要采取一些策略来确保您的网页在不同浏览器上都能正常运行和呈现。以下是一些解决浏览器兼容性问题的方法和策略: 使用CSS Reset&#xff…

字节跳动测试岗面试挂在2面,复盘后,我总结了失败原因,决定再战一次...

先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,字节的游戏专场又是最早开始的,就投递了&#xf…

后端返回图片资源错误404,前端使用默认图片

后端返回的图片资源可能会因为各种原因(后台误删,地址更改未及时更新,损毁)出现无法展示的情况,比如这种报错 就会导致图片资源错误,页面出现这种情况 用户体验很不好,为了改善这种情况&#xf…

流弊的docker

docker就是隔离式运行软件组(多个软件),docker分为dockerfile文件,images 镜像,容器,本地仓库,远程仓库。 构建dockerFile文件,可以获得images镜像 运行镜像获得容器 || 容器提交获得…

Spring Bean的生命周期总结(包含面试题)

目录 一、Bean的初始化过程 1. 加载Spring Bean 2. 解析Bean的定义 3. Bean属性定义 4. BeanFactoryPostProcessor 扩展接口 5. 实例化Bean对象 6. Aware感知 7. 初始化方法 8. 后置处理 9. destroy 销毁 二、Bean的单例与多例模式 2.1 单例模式(Sin…

小航助学GESP_C++一级模拟测试卷第3套(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号)_程序猿下山的博客-CSDN博客 需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号)_程序猿下山的博客-CSD…

05-微信小程序常用组件-表单组件

05-微信小程序常用组件-表单组件 文章目录 表单组件button 按钮案例代码 form 表单案例代码 image 图片支持长按识别的码案例代码 微信小程序包含了六大组件: 视图容器、 基础内容、 导航、 表单、 互动和 导航。这些组件可以通过WXML和WXSS进行布局和样式设…

计算机视觉的应用10-图片中的表格结构识别与提取实战

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用10-图片中的表格结构识别与提取实战,表格结构识别在信息处理领域中具有广泛应用,但由于表格的多样性和复杂性,以及难以准确解析的布局和格式,传统的方…

C#__使用Type类反射数据的基本用法

// 简单介绍 // 元数据(metadata):与程序及其类型有关的数据。 // 反射:一个运行的程序查看本身元数据或其他程序集中的元数据的行为 // Assembly类:允许访问给定程序集的元数据,包含了可以加载和执行程序…