数据类型
1,数值类型
2,字符串类型
3,日期和时间
4,ENUM和SET
5,几何数据类型
数据类型选项
unsigned 无负值
zerofill 数值显示有影响,会前置0来填充不足位数的数据。对值无影响,只是在输出是进行了格式化输出
auto_increment 自动递增
serial default value==声明auto_increment not null
tinyint -128----127
smallint -32768----32767
mediumint -8388608-----8388607
int(integer) -2147483648----2147483647
bigint -9223372036854775808----9223372036854775807
浮点数
float 4字节 正负1.175494351E-38-----正负3.402823466E+38
double 8字节 正负2.2250738585072014E-308---正负1.7976931348623157E+308
定点数
DEC
DECIMAL
BIT
字符型
char 0-255
varchar 0-65535
tinyblob 0-255
blob 0-65535
mediumblob 0-167772150
longblob 0-4294967295
tinytext 0-255
text 0-65535
mediumtext 0-167772150
longtext 0-4294967295
二进制字符,只能是二进制的字符
varbinary 0-M
binary 0-M
时间类型
datetime 占8个字节 可以显示日期同时显示时间 yyyy-mm-dd hh:mm:ss
显示范围 1000-01-01 00:00:00----9999-12-31 23:59:59
可用格式
2011-01-01 00:01:10
2011/01/01 00+01+10
20110101000110
11/01/01/ 00@01@10
mysql5.5版本之前日期类型无法精确到微秒级别
date 占3个字节 显示日期
显示范围 1000-01-01----9999-12-31
timestamp 占用4个字节 1970 10 10 80001----2038-01-19 03:14:07
timestamp 和datetime显示结果一样
但是显示范围不同,其次建表时timestamp格式可以设置默认值,datetime不行
更新表时可以设置timestamp类型的列自动更新为当前时间
time -838:59:59 ----838:59:59
year 1901----2155 可以使用year(2)和year(4)
与时间相关的函数
now current_timestamp sysdate
1,now和current_timestamp是同样的
2,sysdate函数返回执行当前函数时的时间,而now返回的事执行sql语句时的时间
时间加减
如果出现目标年份是闰月,会自动加减1天
date_add(date,interval expr unit)
date_sub(date,interval expr unit)
date_add(now(),interval 1 day)
unit 可以是如下数据
year
month
day
week
hour
minute
second
microsecond
date_format()函数,其作用是按用户需求格式化打印日期,如果查询条件使用建议使用时间索引。
select date_format(now() ,'%Y%m%d') as datetime ;
字符集
mysql字符集在选择字符集是
_ci 大小写不敏感
_cs 大小写敏感
_bin 二进制
字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。
常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。
字符编码(Character Encoding):是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。即在符号集合与数字系统之间建立对应关系,它是信息处理的一项基本技术。通常人们用符号集合(一般情况下就是文字)来表达信息。而以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。
Unicode(统一码、万国码、单一码、标准万国码)是业界的一种标准,它可以使电脑得以体现世界上数十种文字的系统。
可以这样理解:Unicode是字符集,UTF-32/ UTF-16/ UTF-8是三种字符编码方案。