目录
DDL(Data Definition Language) 数据定义语言
DML(Data Manipulation Language) 数据操作语言
DCL (Data Control Language) 数据控制语言
DQL (Data Query Language) 数据查询语言
字符处理函数:(很好用的函数,但是要考虑到怎么用到实践中,含义和名称还是要记忆的)
SQL语句介绍:
维基百科的定义:
SQL(Structured Query Language,结构性查询语句)是一种特定目的编程语言,用于 管理关系数据库管理系统,或在关系流数据管理系统中进行流处理。 SQL基于关系代数和元组关系演算,包括一个数据定义语言和数据操作语言。SQL的范围包 括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。
SQL语句分类:(记忆点)
DDL(Data Definition Language) 数据定义语言
用于定义或修改数据库中的对象,如:表、索引、视图、数据库、存储过程、触发器、自定义 函数等.
DML(Data Manipulation Language) 数据操作语言
用于对数据库表中的数据进行操作,如插入,更新和删除。
SQL语句分类:
DCL (Data Control Language) 数据控制语言
用来设置或更改数据库事务、保存点操作、授权操作(用户或角色授权,权限回收,创建角色, 删除角色等)、锁表、锁实例等。
DQL (Data Query Language) 数据查询语言
用来查询数据库内的数据,如查询数据、合并多个select语句的结果集、子查询。
数据类型(重点)【具体什么用什么数据类型需要再整理】
常用数据类型
数值类型、字符类型、日期类型等。
非常用数据类型
布尔类型、空间数据类型、JSON数据类型等、
常用数据类型:
数值类型:
字符类型:
日期类型:
非常用的数据类型:
习题
系统函数:
数值计算函数:
字符处理函数:(很好用的函数,但是要考虑到怎么用到实践中,含义和名称还是要记忆的)
concat 有点像Python种map+split
时间日期函数:
类型转换函数:
代码解释:
在MySQL中,SELECT CAST('125e342.83' AS signed);
是一条使用 CAST()
函数进行数据类型转换的SQL语句。具体解释如下:
CAST()
函数: CAST()
是MySQL中的一个内置函数,用于将一个表达式的值从一种数据类型转换为另一种数据类型。其基本语法为 CAST(expression AS data_type)
。
表达式: 在此语句中,表达式为 '125e342.83'
,这是一个以字符串形式提供的数值。
数据类型: 目标数据类型由关键字 AS
后面指定,这里是 signed
。在MySQL中,“signed”通常用来指代整数类型,特别是指可以表示正负整数的类型,如 SIGNED INT
或简写为 INT
。当在 CAST()
函数中单独使用“signed”时,它通常隐含地指代一个合适的整数类型,具体取决于上下文和所转换数值的大小。
转换过程: CAST('125e342.83' AS signed)
表示将字符串 '125e342.83'
转换为一个有符号整数。然而,这个字符串不是一个常规的十进制数,而是包含科学计数法表示的数值。125e342.83
表示 125
乘以 10
的 342.83
次方。在实际应用中,由于整数类型不能存储带有小数点的指数部分,MySQL在执行类型转换时会按照某种规则处理这个值:
-
截断非整数部分:对于转换为整数类型,小数点后的部分(包括指数的小数部分)会被忽略,因为整数类型无法容纳这些信息。
-
科学计数法解释:对于指数部分,MySQL会计算
125
乘以10
的342
次方(忽略小数点后的83
),因为整数类型的转换不会考虑指数的小数部分。 -
数值溢出检查:转换后的结果必须能够适应目标整数类型的最大值。如果结果超出范围,MySQL可能会抛出错误或者根据具体配置返回特定的最大或最小允许值。
基于上述规则,'125e342.83'
在转换为整数时实际上会被解释为 125 * 10^342
,即 125
乘以 10
的 342
次方。但由于整数类型无法存储如此巨大的数值(远超过任何标准整数类型的上限),实际上转换过程中很可能会导致数值溢出错误。然而,根据您提供的查询结果,似乎MySQL在这种情况下选择了截断超出其表示能力的部分,简单地将 '125e342.83'
视作 '125'
并将其转换为整数 125
。
结论: 尽管提供的 '125e342.83'
字符串表示了一个极大的数值,但在 SELECT CAST('125e342.83' AS signed);
查询中,MySQL似乎由于某种原因(可能是处理异常或旧版本的行为)没有正确解析科学计数法,而是仅取了数值的开头部分 125
,并将之转换为整数 125
。正常情况下,尝试将这样一个超大数值转换为整数类型应该会导致溢出错误。如果您在实际操作中遇到这样的查询结果,建议检查您的MySQL版本、服务器配置以及是否存在特定的错误处理设置,以了解为何会出现这种不符合预期的转换行为。在现代版本的MySQL中,执行相同的查询很可能引发错误,而不是简单地截断数值。
系统信息函数:
操作符:
逻辑操作符:
补充:
逻辑与(AND) 和 逻辑或(OR) 是逻辑运算中的两种基本操作,它们在数学、计算机科学、电子工程等多个领域广泛使用,尤其在编程、数据库查询、逻辑电路设计等方面扮演着核心角色。下面分别对这两种逻辑运算进行详细解释:
逻辑与(AND)
定义: 逻辑与,通常用符号 &&
(在某些编程语言中)或 &
(在某些特定上下文中,如位运算或某些编程语言)表示,也可以用英文单词 "and" 或 "AND" 表达。它描述的是两个或多个逻辑变量或表达式之间的关系,要求所有参与运算的条件都必须为真(即逻辑值为 true
),整个逻辑与表达式的结果才为真。如果其中任意一个条件为假(即逻辑值为 false
),则整个逻辑与表达式的结果即为假。
真值表: 逻辑与的真值表清晰地展示了所有可能的输入组合及其对应的输出结果:
第一操作数 | 第二操作数 | 结果 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
特性:
- 短路性质:在某些编程语言中,逻辑与运算具有短路特性。这意味着,如果第一个操作数为假,则无需评估第二个操作数,因为无论第二个操作数如何,整个表达式的结果已经确定为假。这种特性有助于提高效率,避免不必要的计算,并且在某些情况下可以防止潜在的副作用(例如避免对未初始化变量的访问或调用可能抛出异常的函数)。
逻辑或(OR)
定义: 逻辑或,通常用符号 ||
(在许多编程语言中)或 |
(在某些特定上下文中,如位运算或某些编程语言)表示,也可以用英文单词 "or" 或 "OR" 表达。它描述的是两个或多个逻辑变量或表达式之间的关系,只要其中至少有一个条件为真,整个逻辑或表达式的结果即为真。只有当所有参与运算的条件都为假时,整个逻辑或表达式的结果才为假。
真值表: 逻辑或的真值表如下所示:
第一操作数 | 第二操作数 | 结果 |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
特性:
- 短路性质:同逻辑与一样,逻辑或运算在很多编程语言中也具有短路性质。如果第一个操作数为真,那么无需评估第二个操作数,因为不论第二个操作数的值如何,整个逻辑或表达式的结果都已经确定为真。这种特性同样有利于优化计算效率并避免不必要的副作用。
总结:
- 逻辑与(AND):要求所有操作数均为真时结果才为真,有一个为假则结果为假。
- 逻辑或(OR):只要有至少一个操作数为真,结果即为真;只有所有操作数均为假时结果才为假。
- 短路性质:在逻辑与和逻辑或的运算中,如果通过评估前几个操作数就能确定整个表达式的结果,那么后续的操作数将不再被评估,这就是短路性质。这一特性在编程中尤为重要,有助于提升效率并避免潜在问题。
这些逻辑运算在编程、算法设计、数据查询、硬件逻辑门电路设计等方面有着广泛应用,是构建复杂逻辑结构的基础。
比较操作符:
算术操作符:
测试操作符: