MySQL数据库应用总结(六)—MySQL数据库的数据类型和运算符(上)

SQL语法预览:

创建表字段数据类型:【createtable 表名(字段名称 数据类型); 】

插入字段值:【insert into表名 values(值1,值2,...,值n);】

查看格式化值:【select* 或 【格式1,格式2,...,格式n】from 表名;】

详解:

MySQL数据类型介绍

MySQL支持多种数据类型,主要有数值类型、日期类型、时间类型和字符串类型。

1

整数类型

数据类型主要用来存储数字,MySQL提供多种可供选择的整数类型,用整数作为数据类型的字段可以设置auto_increment自增约束条件。

案例

创建数据库db_demo2,创建表tb_temp1,其中包含字段a、b、c、d、e的数据类型分别为tinyint、smallint、mediumint、int(Integer)、bigint,SQL语句:

命令语句

create database db_demo2;

use db_demo2;

create table tb_temp1(a tinyint,b smallint,c mediumint,d int,e bigint);

desc temp1;

执行结果如下:

2

浮点和定点数据类型

MySQL中使用浮点数和定点数来表示小数。浮点有分为单浮点和双浮点。

案例

创建数据表tb_temp2,其中包含字段x、y、z的数据类型依次为float(5,1)、double(5,1)和decimal(5,1),向表中插入数据5.12、5.15和5.123,SQL语句:

命令语句

create table tb_temp2(x float(5,1),y double(5,1),z decimal(5,1));

insert into tb_temp2 values(5.12,5.15,5.123);

执行结果如下:

3

日期与时间类型

(1)YEAR

YEAR类型是一个单字节类型,用于表示年,在存储时只需要1个字节。可以使用各种格式指定YEAR值,如下所示:

以4位字符串或者4位数字格式表示的YEAR,范围为1901~2155。输入格式‘YYYY’或者YYYY。

以2位字符串格式表示的YEAR,范围为00到99。00~69转换为2000~2069;70~99转换为1970~1999;

以2位数字表示的YEAR值,范围为1~99。1~69值是2001~2069;70~99范围值转换为1970~1999,而在这里0值被转换为0000;

案例

创建数据表tb_temp3,定义字段类型为YEAR的字段y,向表中插入数值2017,'2017','0','00','77','10','78' 和'11',SQL语句:

命令语句

create table tb_temp3(y YEAR);

insert into tb_temp3 values(2017),('2017'),('0'),('00'),('77'),('10'),('78'),('11');

执行结果如下:

(2)TIME

TIME类型用于表示时间信息,在存储时需要3个字节。表示某一事件过去的时间和两个事件之间的时间间隔。可以大于24甚至为负值。

'D HH:MM:SS'格式的字符串。有'HH:MM','D HH:MM','D HH','SS' 。D表示日,可以取0~34之间的值。在插入数据库时D被转换为小时保存(D*24+HH)。

'HHMMSS'格式的数值,会自动分成HH:MM:SS但各自有取值范围,超过则输入不合法。

案例

创建数据表tb_temp4,定义字段类型为TIME的字段t,向表中插入数值'10:05:05' ,'23:23' ,'2 10:10' ,'3 02' ,'10' ,'101112' ,'0' ,和'106010',SQL语句:

命令语句

create table tb_temp4(t TIME);

insert into tb_temp4 values('10:05:05'),('23:23'),('2 10:10'),('3 02'),('10'),('101112'),('0'),('106010');

执行结果如下:

(3)DATE

DATE只用于输入日期,没有时间,在存储时需要3个字节。日期格式为:'YYYY-MM-DD' 。

以'YYYY-MM-DD'或者'YYYYMMDD'字符串格式表示日期,取值范围是'1000-01-01'~'9999-12-03' 。

以'YY-MM-DD'或者'YYMMDD'字符串格式表示日期,取值范围与年数相关,00~69年值范围是2000~2069,70~99年值范围是1970~1999。

以YY-MM-DD或者YYMMDD数字格式表示日期,取值范围与年数相关,00~69年值范围是2000~2069,70~99年值范围是1970~1999。

使用current_date或者now(),插入当前系统日期。

案例

创建数据表tb_temp5,定义字段类型为DATE的字段d,向表中插入数值'2017-12-02' ,'20101010' ,'99-09-09' ,'000101' ,'111111' ,121212和171203 ,SQL语句:

命令语句

create table tb_temp5(d DATE);

insert into tb_temp5 values('2017-12-02'),('20101010'),('99-09-09'),('000101'),('111111'),(121212),(171203);

执行结果如下:

(4)DATETIME

DATETIME用于同时输入日期和时间信息,在存储时需要8个字节。格式为:'YYYY-MM-DD HH:MM:SS', 只要符合格式使用字符串和数字类型均可。

以'YYYY-MM-DD HH:MM:SS'或者'YYYYMMDDHHMMSS'字符串格式表示日期,取值范围是'1000-01-01 00:00:00'~'9999-12-03 23:59:59'。

以'YY-MM-DD HH:MM:SS'或者'YYMMDDHHMMSS'字符串格式表示日期,取值范围与年数相关,00~69年值范围是2000~2069,,70~99年值范围是1970~1999。

以YYYYMMDDHHMMSS或者YYMMDDHHMMSS数字格式表示日期,取值范围与年数相关,00~69年值范围是2000~2069,,70~99年值范围是1970~1999。

使用now(),插入当前系统日期时间

案例

创建数据表tb_temp6,定义字段类型为DATETIME的字段dt,向表中插入数值'2017-12-02 20:33:33' ,'20101010101010','09-09-09 09:09:09' ,'121212121212'和111111111111 SQL语句:

命令语句

create table tb_temp6(dt DATETIME);

insert into tb_temp6 values('2017-12-02 20:33:33'),('20101010101010'),('09-09-09 09:09:09'),('121212121212'),(111111111111);

执行结果如下:

(5)TIMESTAMP

TIMESTAMP的显示格式与DATETIME相同,显示宽度是19个字符。存储需要4个字节,格式为:'YYYY-MM-DD HH:MM:SS' 。但是TIMESTAMP列的取值范围小于DATETIME的取值范围,为'1970-01-01 00:00:01'UTC~'2038-01-19 03:14:07' UTC。其中UTC(Coordinated Universal Time)世界标准时间,因此在插入数据时要保证在合法取值范围内。

案例

创建数据表tb_temp7,定义字段类型为TIMESTAMP的字段ts,向表中插入数值'20170101010101' ,'20050607080910' ,'08-08-08 09:09:09' ,'12@12@12 12@12@12' ,111111111111和now(),SQL语句:

命令语句

create table tb_temp7(ts TIMESTAMP);

insert into tb_temp7 values(’20170101010101’),('20050607080910'),('08-08-08 09:09:09'),('12@12@12 12@12@12'),(111111111111),(now());

执行结果如下:

未完待续...

SQL语法总结:

创建表字段数据类型:【createtable 表名(字段名称 数据类型); 】

插入字段值:【insert into表名 values(值1,值2,...,值n);】

查看格式化值:【select* 或 【格式1,格式2,...,格式n】from 表名;】

end

欢迎关注互动|未来科技008

欢迎关注互动|十年之前diary

十年之前diary

文学随笔,生活点滴

广读胸中有本,勤写笔下生辉

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171208G11BUU00?refer=cp_1026

扫码关注云+社区