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学习

面试题17(以下java程序输出什么?)

以下java程序输出什么? 有如下一段程序: public class Test{ private static int i=1; public int g...

2746
来自专栏PHP在线

mysql函数

四、日期和时间函数 //返回当前的日期 curdate()或current_date() select curdate(); // 2014-12-05 ...

2583
来自专栏yl 成长笔记

c# 读取 txt 文件中数据(int)

今天在学图的算法做测试是,需要读取文本文件中的点坐标,本来很简单的事情,折腾了半天,记录一下找到的一种简单粗暴的解决方法,以便以后查看。

2605
来自专栏加米谷大数据

Hive内置运算符

Hive有四种类型的运算符: 关系运算符 算术运算符 逻辑运算符 复杂运算符 关系运算符 这些操作符被用来比较两个操作数。下表描述了在Hive中可用的关系运...

3206
来自专栏码云1024

mysql 数据类型

3404
来自专栏代码拾遗

反射基础之Method

一个方法声明包括:方法名,描述符,参数,返回类型和异常。可以通过java.lang.reflect.Method类获取这些信息。 下面的例子说明了如何获取一个类...

823
来自专栏小灰灰

# Java 一步一步实现高逼格的字符串替换工具(二)

Java 一步一步实现高逼格的字符串替换工具(二) 上一篇实现了一个用于字符串替换的方法,主要是利用 正则 + jdk的字符串替换,本篇则会再之前的基础上...

1926
来自专栏运维技术迷

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

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

3515
来自专栏北京马哥教育

AWK处理日志入门

前言 这两天自己挽起袖子处理日志,终于把AWK给入门了。其实AWK的基本使用,学起来也就半天的时间,之前总是靠同事代劳,惰性呀。 此文仅为菜鸟入门,运维们请勿...

3084
来自专栏数据结构与算法

HDU6315 Naive Operations(线段树 复杂度分析)

设\(d_i\)表示\(i\)号节点还需要加\(d_i\)次才能产生\(1\)的贡献

624

扫码关注云+社区