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

安装环境: 操作系统版本:RHEL 6.5 版本:MYSQL 5.5 常见的信息种类: 数值型:一般用于体重、身高、成绩、工资 字符型:一般用于姓名、工作单位、通信地址 枚举型:一般用于兴趣爱好、性别 日期时间型:出生日期、注册日期

一、数值类型 1.1整数型 PS:工作中一般使用INT类型就够了 关于整数型字段 -使用UNSIGNED修饰时,对应的字段只保存正数 -数值不够指定宽度时,在左边填空格补位 -宽度仅仅是显示宽度,存数值的大小由类型决定 -使用关键字ZEROFILL时,填0代替空格补位 -当字段值与类型不匹配时,字段值作为0处理 -数值超出范围时,仅保存最大/最小值

表字段的设置

从左至右依次为: 字段名 | 字段类型 | 是否为空 | 是否为主键 | 默认值 | 描述信息

1.2 浮点类型 关于浮点型字段 -定义格式:float(总宽度,小数位数) -当字段值与类型不匹配时,字段值作为0处理 -数值超出范围时,仅保存最大/最小值

mysql> create table t2(
    -> name varchar(20),
    -> pay float(7,2)
    -> );
Query OK, 0 rows affected (0.00 sec)
 
mysql> desc t2;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(20) | YES  |     | NULL    |       |
| pay   | float(7,2)  | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

二、、字符类型 1、定长:char(字符数) -最大长度255字符 -不够指定字符数时在右边用空格补齐 -自动截断超出指定字符数的数据

2、变长:varchar(字符数) -按数据实际大小分配存储空间 -自动截断超出指定字符数的数据

3、大文本类型:text/blob -字符数大于65535存储时使用

mysql> create table t3(
    -> name char(10),
    -> addr varchar(50),
    -> content text
    -> );
Query OK, 0 rows affected (0.00 sec)
 
mysql> desc t3;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | char(10)    | YES  |     | NULL    |       |
| addr    | varchar(50) | YES  |     | NULL    |       |
| content | text        | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

三、日期时间类型 1、 DATATIME -占用8个字节 -范围:1000-01-01 00:00:00.000000~9999-12-31 23:59:59.999999

2、 TIMESTAMP -占用4个字节 -范围:1970-01-01 00:00:00.000000~2038-01-19 03:14:07.999999

3、 DATE -占用4个字节 -范围:0001-01-01~9999-12-31

4、YEAR -占用1个字节 -范围:1901-2155

5、TIME -占用3个字节 -格式:HH:MM:SS

例子:

mysql> create table shijian(
    -> datetime DATETIME,
    -> timestamp TIMESTAMP,
    -> date DATE,
    -> year YEAR,
    -> time TIME
    -> );
Query OK, 0 rows affected (0.00 sec)
mysql> insert into shijian values("2016-07-31 10:24:00.000000","2035-1-19 03:14:17.999999","2036-1-1","2037","03:59:00");
Query OK, 1 row affected (0.00 sec)
 
mysql> select * from shijian;
+---------------------+---------------------+------------+------+----------+
| datetime            | timestamp           | date       | year | time     |
+---------------------+---------------------+------------+------+----------+
| 2016-07-31 10:24:00 | 2035-01-19 03:14:17 | 2036-01-01 | 2037 | 03:59:00 |
+---------------------+---------------------+------------+------+----------+
1 row in set (0.00 sec)

6、 关于日期时间字段 当未给TIMESTAMP字段赋值时,自动以当前时间赋值,而DATETIME字段默认赋值为0 4.7 YEAR年份的处理 -默认用4位数字表示 -当只用2位数字赋值时,00-69视为2000~2069年,而70-99视为1970~1999年。

7、 时间函数

-使用select指定输出函数结果

mysql> select now(),sysdate(),curdate();
+---------------------+---------------------+------------+
| now()               | sysdate()           | curdate()  |
+---------------------+---------------------+------------+
| 2016-07-31 10:37:25 | 2016-07-31 10:37:25 | 2016-07-31 |
+---------------------+---------------------+------------+
1 row in set (0.00 sec)

四、枚举类型 1、从给定值集中选择单个值-ENUM -定义格式:

enum(值1,值2,值N)

2、 从给定值集合中选择一个或者多个值-SET -定义格式:

set(值1,值2,值N)

例子:

mysql> create table meiju(
    -> name varchar(20),
    -> gender enum("boy","girl"),
    -> interest set("book","film","music","football")
    -> );
Query OK, 0 rows affected (0.01 sec)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python

表的数据类型

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

22470
来自专栏jeremy的技术点滴

实例变量的懒初始化

34740
来自专栏跟着阿笨一起玩NET

sql server 获取每一个类别中值最大的一条数据

SELECT  * FROM    (           SELECT    * ,                     ROW_NUMBER() OVE...

48010
来自专栏Clive的技术分享

PHP实现单例模式

<?php /** * 单例模式实现 */ class Singleton { //静态变量保存全局实例 private static $ins...

34070
来自专栏机器学习原理

图数据库neo4j介绍(3)——CypherCreateMatchSetDELETE REMOVE

Match (n:Person {id:'baba'}) set n.name='张三',n.age=50 return n

10920
来自专栏企鹅号快讯

谈谈 MySQL 隐式类型转换

来源:andyqian www.andyqian.com/2017/11/11/database/MySQLConvert/ 前言 今天我们继续回到MySQL系...

557110
来自专栏CodingToDie

MySql Hash 索引

Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 ...

34630
来自专栏C/C++基础

C++ Hash表模板

利用C++类模板实现任意类型的Hash表,提供的功能有: (1)指定shmkey或内存地址创建Hash表; (2)获取指定key元素; (3)遍历指...

63140
来自专栏开发与安全

从零开始学C++之对象的使用(三):static 与单例模式、auto_ptr与单例模式、const 用法小结、mutable修饰符

一、static 与单例模式 单例模式也就是简单的一种设计模式,它需要: 保证一个类只有一个实例,并提供一个全局访问点 禁止拷贝 #include <i...

25200
来自专栏乐沙弥的世界

PL/SQL 集合的方法

    PL/SQL中提供了常用的三种集合联合数组、嵌套表、变长数组,而对于这几个集合类型中元素的操作,PL/SQL提供了相应的函数或过程来操 纵数组中的元素...

9030

扫码关注云+社区

领取腾讯云代金券