版本声明:本文转载于公众号TeachPlus
MYSQL的数据类型与运算符
数据存储完整性
数据存储完整性的定义:
可靠性 + 准确性 = 数据完整性。
如果存在不准确不正确的数据,数据库失去了完整性。
完整性分类
数据实体完整性
字段完整性
引用完整性
自定义完整性
MYSQL的数据类型
数值列类型
MySQL为除了NULL值外的所有通用数据类型提供了列类型。
列类型是一种手段,通过这种手段可以描述表的列可以包含什么样类型的值。
所有数值列类型的类型名及其说明和所占的字节数见下表:
数值列类型包括整型和浮点型
说明:TINYINT, SAMLLINT, MEDIUMINT, INT, BIGINT每个数据类型的取值范围不同,故分别可以表示不同的数值范围。
在定义整型列时,可以指定可选的显示尺寸M(见上表),M是从1到255的值,它表示显示列中值的字符数。
字符串类型
字符串:CHAR类型
由单引号或者双引号括起来的字符或者数字。
如:”abc”,‘abc10’
由单引号或者双引号括起来的字符或者数字。
如:”abc”,‘abc10’
字符串中要用转义字符才能表示的特殊符号
日期和时间类型
NULL值
是一种无类型的值,表示“空,什么也没有”。
日期和时间值
是存储如“2005 -1-1” 或者“12:00:00”这样的数值的值。在MySQL中日期是按”年-月-日”的顺序。
所有时间和日期列类型的类型名及其说明和所占的字节数见下表:
特别说明:
每个时间和日期列类型都有一个零值,当插入非法数值时就用零值来添加
表示日期时必须先按:年,月,日的顺序给出
DATE,TIME,DATETIME分别是存储日期,时间与日期和时间的组合,其格式为“YYYY-MM-DD”,
“hh:mm:ss”和“YYYY-MM-DD hh:mm:ss”,对于DATETIME类型,日期和时间部分都需要
“hh:mm:ss”和“YYYY-MM-DD hh:mm:ss”,对于DATETIME类型,日期和时间部分都需要
TIMESTAMP
时间戳列类型以YYYYMMDDhhmmss的格式来表示值,其取值范围是
19700101000000到2037年的某个时间,主要用于记录更改或创建某个记录
常用的数据类型如下图:
MYSQL运算符
算数运算符
比较运算符
比较运算符允许我们对表达式的左边和右边进行比较。
一个比较运算符的结果总是1(真),0(假),或是为NULL(不能确定)。
比较运算符可以用于比较数字和字符串。
数字作为浮点值比较,而
字符串以不区分大小写的方式进行比较(除非使用特殊的BINARY二进制关键字)
不等运算符
对于<>运算符,如果表达式两边不相等返回真值,相等返回假值。还可以比较字符串
BETWEEN运算符
用于检验一个值(或者一个求值表达式)是否存在一个指定的范围内:
IN运算符
用于检验一个值(或者一个求值表达式)是否包含在一个指定的值集合中。
NULL安全的等于
可以使用ISNULL或者IS NOT NULL运算符来测定是否为空。
可以使用特殊的<=>运算符,MySQL称为”NULL安全的等于”运算符。
这意味着即使当包含在比较运算符中的表达式含有一个NULL值时,
MySQL也会为比较运算符返回一个真值或假值。
MYSQL数据库中的通配符
“%” (百分号) 代表任意长度(长度可以为0)的字符串
举例: a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab 等都满足该匹配串
举例: a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab 等都满足该匹配串
“_ ”(下横线) 代表任意单个字符
举例: a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串
举例: a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串
LIKE运算符
如果想执行通配符数据搜索,应该使用LIKE运算符。
它通过在表达式中允许使用专门的通配字符,可以找出
与指定搜索字符串全部或部分匹配的记录。
默认情况下,比较是不区分大小写的方式执行的。然而,以前我们注意到,可以
添加BINARY关键字让MySQL执行区分大小写的比较。
逻辑运算符