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

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java小白

MySQL WHERE子句内使用正则表达式搜索

1325
来自专栏别先生

mysql存储过程的学习(mysql提高执行效率之进阶过程)

1:存储过程: 答:存储过程是sql语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理;存储过程存储在数据库内,可以由应用程序调用执行,而且允许用户声...

2166
来自专栏Kevin-ZhangCG

Oracle学习笔记四

在写java程序中有集合的概念,那么在pl/sq中也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回的多条数据。

422
来自专栏Python爬虫实战

MySQL从零开始:05 MySQL数据类型

距离上次更新 MySQL 从零开始系列,已经过去了十几天,时间隔得有点长,由于我选用的是 MySQL 的最新版本,网上的教程大多停留在 MySQL 5.x,所以...

943
来自专栏运维技术迷

MySQL数据库(三):数据类型

安装环境: 操作系统版本:RHEL 6.5 版本:MYSQL 5.5 常见的信息种类: 数值型:一般用于体重、身高、成绩、工资 字符型:一般用于...

3475
来自专栏Python

表的数据类型

一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob....

1807
来自专栏linjinhe的专栏

MySQL数据类型

1784
来自专栏Java Edge

2018-08-24

函数可以嵌入在sql中使用的,可以在select中调用 存储过程要让sql的query 可以执行, 需要把 mysql_real_connect 的最后一个参...

412
来自专栏C#

奇妙的NULL值,你知道多少

《NULL值的多义性分析》       谈到NULL值,很多人都是很熟悉,但是深入了解后,又感觉到陌生,对其含义和用法,都无法很准确的理解。NULL在数据库和...

1705
来自专栏风口上的猪的文章

.NET面试题系列[9] - IEnumerable

IEnumerable及IEnumerable的泛型版本IEnumerable<T>是一个接口,它只含有一个方法GetEnumerator。Enumerable...

822

扫码关注云+社区