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

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 条评论
登录 后参与评论

相关文章

  • 科学家呼吁关注人工智能和神经技术四大伦理问题(上)

    《自然》杂志发表了由哥伦比亚大学、中科大、谷歌等机构的科研人员联合撰写的文章,围绕人工智能和神经技术探讨了四方面的伦理问题。该文主要内容如下: 请设想一下下述场...

    企鹅号小编
  • react.js 学习笔记

    单向数据流驱动,父节点传递到子节点 react最重要是组件 ReactJS官方地址:https://facebook.github.io/react/ GitH...

    企鹅号小编
  • 最具颠覆性的七大未来科技!你希望哪个能最快实现?

    延缓衰老:虽然长生不老并不现实,不过延缓衰老还是可以想象一下的。其实,目前很多影响衰老快慢的基因已经在酵母细胞、果蝇及蠕虫内被发现。如果能对这些基因进行研究改造...

    企鹅号小编
  • GEO数据挖掘流程+STRING VS R in KEGG/GO

    In molecular biology, STRING (Search Tool for the Retrieval of Interacting Genes...

    生信技能树
  • IdentityServer Topics(7)- 注销

    晓晨
  • 实测超轻量中文OCR开源项目,总模型仅17M

    光学字符识别(OCR)现在已经有很广泛的应用了,很多开源项目都会嵌入已有的 OCR 项目来扩展能力,例如 12306 开源抢票软件,它就会调用其它开源 OCR ...

    用户7118204
  • Kosaraju算法、Tarjan算法分析及证明--强连通分量的线性算法

    一、背景介绍 强连通分量是有向图中的一个子图,在该子图中,所有的节点都可以沿着某条路径访问其他节点。强连通性是一种非常重要的等价抽象,因为它满足 自反性:顶点V...

    老白
  • 张高兴的 .NET Core IoT 入门指南:环境配置、Blink、部署

    如何在 Raspberry Pi 的 Raspbian 上构建使用 GPIO 引脚的 IoT 程序?你可能会回答使用 C++ 或 Python 去访问 Rasp...

    张高兴
  • LeetCode 1430. 判断给定的序列是否是二叉树从根到叶的路径(递归)

    给定一个二叉树,我们称从根节点到任意叶节点的任意路径中的节点值所构成的序列为该二叉树的一个 “有效序列” 。 检查一个给定的序列是否是给定二叉树的一个 “有效...

    Michael阿明
  • ETCD etcdctl操作

    问天丶天问

扫码关注云+社区

领取腾讯云代金券