mysql建表以及列属性
一、整型( int, tinyint, smallint 等 )
------------------------------------------------------------------------------------------------------------------------------------------------------
#创建表
CREATE TABLE t1 (
num TINYINT
)CHARSET utf8 ENGINE MYISAM;
#添加一列num2,类型为tinyint, 属性为unsigned
ALTER TABLE t1 ADD num2 TINYINT UNSIGNED;
#添加一列num3,类型为tinyint, 属性为zerofill填充, 宽度为4,这个4,并不是限制范围的
ALTER TABLE t1 ADD num3 TINYINT( 4 ) ZEROFILL;
#增加一列num4,类型为int,宽度为4
ALTER TABLE t1 ADD num4 TINYINT( 4 );
#把num4的列类型,改成int
ALTER TABLE t1 MODIFY num4 INT( 4 );
#字段最大值( 溢出 )测试
INSERT INTO t1 VALUES( 200 );
INSERT INTO t1 VALUES( -128 );
INSERT INTO t1 VALUES( -129 );
INSERT INTO t1 VALUES( -1, 200 );
INSERT INTO t1 VALUES( -1, 256 );
INSERT INTO t1 VALUES( -128, -1, 2 );
二、浮点型( float, double, decimal )
------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE TABLE t2(
num FLOAT( 6, 2 )
)CHARSET utf8 ENGINE MYISAM;
#num FLOAT( 6, 2 ), 6表示最大的位数,2表示小数点位数,所以他能表示的最大值为9999.99
INSERT INTO t2 VALUES( 1234.56 );
#下面12340溢出,这个位置最大只能存9999
INSERT INTO t2 VALUES( 12340 );

注意:float与double有精度损失, decimal是定点型,不会损失精度
三、字符型( char, varchar, text, enum 等 )
------------------------------------------------------------------------------------------------------------------------------------------------------
char型如果不够M个字符,后面用空格补齐,取出时,把右边的空格去掉
注意:这表明,如果数据本身右侧有空格,将会丢失
#char型与varchar型测试
CREATE TABLE t3 (
n1 CHAR( 10 ),
n2 VARCHAR( 10 )
)CHARSET utf8 ENGINE MYISAM;
INSERT INTO t3 VALUES( ' ghostwu ', ' ghostwu ' );
select concat( '(', n1, ')' ), concat( '(', n2, ')' ) from t3;
从下图可知:n1列存储的值,由于是定长,取出来的时候,右边的空格丢失了

CREATE TABLE t4(
gender ENUM( '男', '女' )
)CHARSET utf8 ENGINE MYISAM;
INSERT INTO t4 VALUES( '男' );
INSERT INTO t4 VALUES( '女' );
#man不在枚举范围内,插入不了
INSERT INTO t4 VALUES( 'man' );
四、时间类型测试( year, time, date, datetime, timestamp, unsigned int )
------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE TABLE t5(
t1 YEAR,
t2 TIME,
t3 DATE,
t4 DATETIME,
t5 TIMESTAMP
) CHARSET utf8 ENGINE MYISAM;
INSERT INTO t5( t1 ) VALUES( '32' );
INSERT INTO t5( t1 ) VALUES( '1932' );
INSERT INTO t5( t1 ) VALUES( '2032' );
INSERT INTO t5( t1, t2, t3, t4 ) VALUES( '2100', '20:02:34', '2018-03-12', '2018-03-12 20:02:34' );
注:一般时间都用int型存储,便于计算,timestamp类型会自动插入当前的时间

mysql建表以及列属性的更多相关文章
- 小贝_mysql建表以及列属性
mysql建表以及列属性 简要: 一.建表原则 二.具体的列属性说明 一.建表原则 建表: 事实上就是声明列的过程,数据终于是以文件的形式放在硬盘(内存) 列: 不同的列类型占的空间不一样. 选列的原 ...
- MySQL 建表语句 create table 中的列定义
MySQL 建表语句 create table 中的列定义: column_definition: data_type [NOT NULL | NULL] [DEFAULT default_value ...
- 【记录】Mysql 建表注意事项
博主最近打算搭建商城,由于之前对建表只有很浅显的理解,没有太过深入了解,建表过程中遇到一些问题,现记录如下, 如有问题请各位留言指正,感激不尽: 建表时设置如何设置联合主键?如下标红处: CREATE ...
- 基于表的数据字典构造MySQL建表语句
表的数据字典格式如下: 如果手动写MySQL建表语句,确认麻烦,还不能保证书写一定正确. 写了个Perl脚本,可快速构造MySQL脚本语句. 脚本如下: #!/usr/bin/perl use str ...
- mysql建表出现Timestamp错误
mysql建表时如果有两个或以上的字段为Timestamp,那么可能会出现如下错误: Incorrect table definition; there can be only one TIMESTA ...
- MySql 建表出现的问题:[ERR] 1064 - You have an error in your SQL syntax; check the manual.......
使用 MySql 建表出现的问题 在使用 Navicat Premium 运行 sql 语句进行建表时,MySQL 报错如下: 建表语句: DROP DATABASE IF EXISTS javawe ...
- 三种常用的MySQL建表语句
MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看. 1.最简单的: CREATE TABLE t1( ...
- 【转载】mysql建表date类型不能设置默认值
如题,mysql建表date类型的不能设置一个默认值,比如我这样: CREATE TABLE `new_table` ( `biryhday` datetime NULL DEFAULT '1996- ...
- Mysql建表通用写法
Mysql建表通用写法 CREATE TABLE IF NOT EXISTS stu( id ) PRIMARY KEY AUTO_INCREMENT,//主键 自增 stuname ) NOT NU ...
随机推荐
- C语言实现简单CMDShell
1.首先使用vc6编译器编译后门,并运行 #pragma comment(lib,"ws2_32.lib") #ifdef _MSC_VER #pragma comment( li ...
- 解决Fiddler抓不到HTPPS
刚开始启动Fiddler,设置代理后,直接打开浏览器,输入我们最记得的网址“baidu.com”,发现Fiddler什么都抓不到,这是为什么呢?难道是我的配置有问题,重新检查一下,浏览器的代理已经设置 ...
- 善用Intellij插件可大幅提升我们的效率
转自 :https://www.jianshu.com/p/686ba0ae4ac2 1. .ignore 生成各种ignore文件,一键创建git ignore文件的模板,免得自己去写 截图: 2. ...
- 李航统计学习方法——算法2k近邻法
2.4.1 构造kd树 给定一个二维空间数据集,T={(2,3),(5,4),(9,6)(4,7),(8,1),(7,2)} ,构造的kd树见下图 2.4.2 kd树最近邻搜索算法 三.实现算法 下面 ...
- docker学习实践之路[第二站]nginx镜像实践
上一篇文章中已经成功的拉取的nginx的镜像 在本篇文章中则详细介绍docker利用文件卷.断后映射然后进行nginx的配置. 输入一下命令: docker run -d --name mynginx ...
- Notepad++中代码格式化插件NppAStyle
本文以图片和说明,手把手教大家怎么让Notepad++中的代码风格看起来更美观. 工具/原料 Windows7 Notepad++ NppAStyle(Notepad++的一个插件) 方法/步骤 直 ...
- Android:一个高效的UI才是一个拉风的UI(二)
趁今晚老大不在偷偷早下班,所以有时间继续跟大伙扯扯UI设计之痛,也算一个是对上篇<Android:一个高效的UI才是一个拉风的UI(一)>的完整补充吧.写得不好的话大家尽管拍砖~(来!砸死 ...
- 全网最详细的再次或多次格式化导致namenode的ClusterID和datanode的ClusterID之间不一致的问题解决办法(图文详解)
不多说,直接上干货! java.io.IOException: Incompatible clusterIDs in /opt/modules/hadoop-2.6.0/data/tmp/dfs/da ...
- 【JAVA】内部类,内部接口
内部类: 内部类可以很好的实现隐藏,一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 内部类拥有外围类的所有元素的访问权限 可是实现多重继承 可以避免修改接口而实现 ...
- 编码算法-Base64
Base64是一种编码算法,因为这种算法只支持64个[可打印字符],所以叫做Base64. 为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换.编码表的大小为2^6=64, ...