Mysql-6-数据类型和运算符
1.mysql数据类型
(1)数值数据类型:包括整数类型tinyint、smallint、mediumint、int、bigint,浮点小数类型float和double,定点小数类型decimal。
(2)日期/时间类型:包括year、time、date、datetime和timestamp。
(3)字符串类型:包括char、varchar、binary、varbinary、blob、text、enum和set等
(4)二进制类型:包括bit、binary、varbinary、tinyblob、blob、mediumblob和longblob。
2.整数类型
|
类型名称 |
说明 |
存储类型 |
|
tinytin |
很小的整数 |
1个字节 |
|
smallint |
小的整数 |
2个字节 |
|
mediumint |
中等大小的整数 |
3个字节 |
|
int |
普通大小的整数 |
4个字节 |
|
bigint |
大整数 |
8个字节 |
3.浮点数类型和定点数类型(表示小数)
|
类型名称 |
说明 |
存储需求 |
|
float |
单精度浮点数 |
4个字节 |
|
double |
双精度浮点数 |
8个字节 |
|
decimal |
压缩的“严格”定点数 |
M+2个字节 |
decimal不同于float和double,其是以字符串存储的。
例:mysql> create table ex2(a float(4,1),b double(4,1),c decimal(4,1));
mysql> insert into ex2 values(4.23,4.26,4.234);
mysql> select * from ex2;
+------+------+------+
| a | b | c |
+------+------+------+
| 4.2 | 4.3 | 4.2 |
+------+------+------+
1 row in set (0.02 sec)
M成为精度:表示总共的位数;D成为标度:表示小数的位数。
4.日期与时间类型
|
类型名称 |
日期格式 |
日期范围 |
存储需求 |
|
year |
yyyy |
1901-2155 |
1个字节 |
|
time |
hh:mm:ss |
-838:59:59 |
3个字节 |
|
date |
yyyy-mm-dd |
3个字节 |
|
|
datetime |
yyyy-mm-dd hh:mm:ss |
8个字节 |
|
|
timestamp |
yyyy-mm-dd hh:mm:ss |
4个字节 |
insert into ex4 values (now());表示现在的时间。
5.字符串类型
|
类型名称 |
说明 |
存储需求 |
|
char |
固定长度非二进制字符串 |
M字节,1<=m<=255 |
|
varchar |
变长非二进制字符串 |
L+1字节,在此L<=M且1<=m<=255 |
|
tinytext |
非常小的非二进制字符串 |
L+1字节,在此L<28 |
|
text |
小的非二进制字符串 |
L+2字节,L<28 |
|
mediumtext |
||
|
longtext |
||
|
longtext |
枚举类型,只能有一个枚举字符串值 |
1或2个字节 |
|
set |
一个集合,字符串对象可以有零个或多个 |
6.二进制类型
|
类型名称 |
说明 |
|
bit |
位字段类型 |
|
binary |
固定长度的二进制字符集 |
|
varbinary |
可变长度的二进制字符串 |
|
tinyblob |
非常小的blob |
|
blob |
小blob |
|
mediumblob |
中等大小的blob |
|
longblob |
非常大的blob |
7.如何选择数据类型
(1)整数和浮点数
如果插入的数据不需要小数部分,则用整数类型存储数据;如果需要小数部分,则使用浮点数类型。
(2)浮点数和定点数
浮点数float和double与定点型decimal的不同是,在长度固定的情况下,浮点型能表示的范围更大。对于精确度要求比较高时,要使用定点型decimal来存储。
一定要注意,如果进行数值比较时,最好使用定点型decimal。
(3)日期和时间类型
a.根据实际需要选择能够满足应用的最小存储的日期类型。
b.如果要记录年月日时分秒,并且记录的年代久远,最好使用datetime。
c.如果记录的日期需要让不同时区的用户使用,使用timestamp
(4)char与varchar
char属于固定长度的字符串,而varchar属于可变长度的字符类型。
(5)enum和set
enum只能取单值,它的数据列表时一个枚举类型。set可以取多个值。都是以字符串形式出现的,但在mysql内部,实际是以数值索引的形式存储它们。
(6)blob和text
一般保存少量字符串的时候,可以选择char或者varchar,而在保存大文件时,通常选择使用text或者blob,差别:blob能用来保存二进制数据,如照片、音频信息等;而text只能保存字符数据,如一篇文章或日记。
8.常见运算符
|
运算符 |
作用 |
|
+ |
加法运算 |
|
- |
减法运算 |
|
* |
乘法运算 |
|
/ |
除法运算,返回商 |
|
% |
求余运算,返回余数 |
mysql> insert into tmp14 value(99);
mysql> select num,num+1 from tmp14;
+------+-------+
| num | num+1 |
+------+-------+
| 99 | 100 |
+------+-------+
9.比较运算符
|
运算符 |
作用 |
|
= |
等于 |
|
<=> |
安全等于(可以比较null) |
|
<>(!=) |
不等于 |
|
<= |
小于等于 |
|
=> |
大于等于 |
|
< |
小于 |
|
> |
大于 |
|
is null |
判断一个值是否为null |
|
is not null |
判断一个值是否不为null |
|
least |
在有两个或多个参数时,返回最小值 |
|
createst |
当有两个或多个参数时,返回最大值 |
|
between and |
判断一个值是否落在两个值之间 |
|
isnull |
与is null相同 |
|
in |
判断一个值是in列表中的任意一值 |
|
not in |
判断一个值不是in列表中的任意一值 |
|
like |
通配符匹配 |
|
regexp |
正则表达式匹配 |
例子:
mysql> select 1=2,3=3,4>5,9>2;
+-----+-----+-----+-----+
| 1=2 | 3=3 | 4>5 | 9>2 |
+-----+-----+-----+-----+
| 0 | 1 | 0 | 1 |
+-----+-----+-----+-----+
1 row in set (0.00 sec)
10.逻辑运算
|
运算符 |
作用 |
|
not或者! |
逻辑非 |
|
and或者&& |
逻辑与 |
|
or或者|| |
逻辑或 |
|
xor |
逻辑异或 |
例:mysql> select not 2,not (2-2);
+-------+-----------+
| not 2 | not (2-2) |
+-------+-----------+
| 0 | 1 |
+-------+-----------+
11.位运算符:用来对二进制字节中的位进行测试、位移或者测试处理。
|
运算符 |
作用 |
|
| |
位或 |
|
& |
位与 |
|
^ |
位异或 |
|
<< |
位左移 |
|
>> |
位右移 |
|
~ |
位取反,反转所有比特 |
例:mysql> select 10|15,9|4|2;
+-------+-------+
| 10|15 | 9|4|2 |
+-------+-------+
| 15 | 15 |
+-------+-------+
1 row in set (0.00 sec)
12.运算符的优先级:决定了不同运算符在表达式中计算的先后顺序。
|
优先级 |
运算符 |
|
最低 |
=赋值运算 |
|
||,or |
|
|
xor |
|
|
&&,and |
|
|
not |
|
|
between and,case,when,then,else |
|
|
=比较运算,<=>,,,,,is like regexp in |
|
|
| |
|
|
& |
|
|
<<,>> |
|
|
-,+ |
|
|
*,/,% |
|
|
^ |
|
|
~ |
|
|
最高 |
! |
Mysql-6-数据类型和运算符的更多相关文章
- 03 MySQL之数据类型和运算符
01-数据类型 MySQL支持多种数据类型,主要有 数值类型.日期/时间类型和字符串类型. 1.1 整数类型 1.2 浮点数类型和定点数类型 单精度浮点类型(FLOAT)和双精度浮点类型 (DOUBL ...
- PostgreSQL自学笔记:5 数据类型和运算符
5 数据类型和运算符 5.1 PostgreSQL 数据类型介绍 5.1.1 整数类型 整型类型 字节 取值范围 smallint 2字节 -2^15 ~ 2^15 int integer 4字节 - ...
- IOS开发新手教程(一)-数据类型和运算符
OC语法入门(一) 数据类型和运算符 1.1凝视 凝视和其它语言一样,同意单行 ,多行凝视,一份规范的代码里面须要有一些正式的凝视,例如以下凝视: /* 这是多行 凝视 */ //这是多行凝视 OC语 ...
- Java 第二章 变量、数据类型和运算符
第二章 变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...
- Java1变量数据类型和运算符
day02_变量数据类型和运算符 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class jh_01_数据类型说明 { public ...
- Java中的变量,数据类型和运算符
变量,数据类型和运算符 1.变量是一个数据存储空间的表示,它是储存数据的基本单元. 如何理解这句话,下面用一个表格可以形象的表达: 变量与房间之间的对应关系 房间名称 变量名 房间类型 变量类型 入住 ...
- 使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的变量.数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算 ...
- 第四章 MySQL数据类型和运算符
5.1 MySQL数据类型介绍 一.数据类型简介 (1) 数据表由多列字段构成,每一个字段指定了不同的数据类型,指定了数据类型之后,也就决定了向字段插入的数据内容 (2) 不同的数据类型也决定了 My ...
- MySQL基础之数据类型和运算符
早些年学习MySQL的笔记,发在博客园上,以便后续回顾学习: 1. 数据类型为int(11),注意到后面的数字11,这表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的个数.其他数据类型也可 ...
- MySQL数据类型和运算符
mysql支持多种数据类型,主要有下面三种: 数值数据类型 日期/时间类型 字符串类型 整数类型 不同数据类型有不同的取值范围,可存储的值的范围越大,则所需的存储空间也越大. 整数类型主要有: tin ...
随机推荐
- hadoop_异常_01_ Unable to determine address of the host-falling back to "localhost" address java.net.UnknownHostException: rayner
一.异常现象 安装好hadoop之后,执行格式化namenode命令时,抛出以下异常: // :: WARN net.DNS: Unable to determine local hostname - ...
- Spring源码分析_01_ idea搭建spring源码阅读环境
二.参考资料 1.Intellij Idea如何导入spring源码
- redisCheckMem脚本
最近维护的redis cluster需要扫描每个实例的内存使用率,首先我们需要获取实例已经使用的内存,获取实例的最大内存配额,两个值相比就能获取到内存使用比例. 实例的最大内存获取方法: $REDIS ...
- Popular Cows
传送门(poj):http://poj.org/problem?id=2186 (bzoj):http://www.lydsy.com/JudgeOnline/problem.php?id=1051 ...
- 用VBA计算两个日期之间的工作日(去掉周末两天)
最近公司HR和Finance想算员工的工作天数,想让我帮忙写些VBA,自己从网上找了下代码,自己再改改,以下来自网络. 计算两个日期之间的工作日,用VBA,因量大,最好用数组做 Sub kk() Di ...
- 使用Rancher搭建K8S测试环境
使用Rancher搭建K8S测试环境 http://blog.csdn.net/csdn_duomaomao/article/details/75316926 环境准备(4台主机,Ubuntu16.0 ...
- NSSet 用法
//集合NSSet //集合也是储存对象,和字典一样也是无序存储 //集合中里面的元素不能重复 //集合里面的元素可以随机取出 //用数组放到集合中 NSArray *a10 = @[p1 , p2 ...
- asp.net C#操作存储过程读取存储过程输出参数值
这段时间在做一个价格平台的项目时候,同事让我写一个存储过程.该存储过程是根据查询条件得出一组新数据,并且返回该组数据的总条数,此处的存储过程我用到了分页,其中主要知识点和难点是之前做项目的时候没有用到 ...
- JVM插码之三:javaagent介绍及javassist介绍
本文介绍一下,当下比较基础但是使用场景却很多的一种技术,稍微偏底层点,就是字节码插庄技术了...,如果之前大家熟悉了asm,cglib以及javassit等技术,那么下面说的就很简单了...,因为下面 ...
- Lua虚拟机初始化
转自:http://www.cnblogs.com/ringofthec/archive/2010/11/09/lua_State.html 1. 创建lua虚拟机 lua_State *lua_ne ...