mysql create table - data_type length -- clwu

mysql create table 时,有时需要指定  data_type length

http://dev.mysql.com/doc/refman/5.5/en/create-table.html

但 类型的长度很多开发并不理解,理解上可以分为两种

1)数字类型:

如 int 是 4个byte,32个bit,

对于 signed int     它的最大值是 2**32-1=4294967295,带符号显示为 +4294967295 刚好是 11 个字符,

对于 unsigned int 它的最大值是 2**31-1=2147483647,显示为 2147483647 刚好是 10 个字符

如下图所示,第一条 CREATE TABLE sql 是我手写的,第二条 CREATE TABLE sql 是通过 SHOW CREATE TABLE 返回的,第二条只比第一条多了 int 的  (length)  10、11,但它们是等价的。

对于 数字类型 指定的  (length) 是不影响 存储空间的,有  (length)  存在时只影响他的显示长度,什么叫显示长度,C语言的printf 就可以指定格式化参数的输出长度,这个输出长度就是这儿的所谓显示长度。

2)非数字类型

如 CHAR,当类型为 CHAR(33) 时,它就指明了这个字段的存储空间为 33 个【字符】的长度,忘记mysql 从 5.几 开始 这个字符不再是指 字节长度了,意思是如果你用utf8,那么这儿是33个中文的长度。

时间: 2024-11-01 11:58:37

mysql create table - data_type length -- clwu的相关文章

Mysql Create Table 语句中Date类型

Mysql创建语句中的数据类型包括时间类型,有一下几类: | DATE  | TIME[(fsp)]  | TIMESTAMP[(fsp)]  | DATETIME[(fsp)]  | YEAR 这几个类型中,特别值得注意的是DATE,DATETIME,TIMESTAMP有什么区别? DATE mysql> select get_format(date,'ISO');     +------------------------+ | get_format(date,'ISO') | +-----

【SQL篇章--CREATE TABLE】

[SQL篇章][SQL语句梳理 :--基于MySQL5.6][已梳理:CREATE TABLE][会坚持完善] SQL : 1. Data Definition Statements: 1.3 CREATE TABLE 格式:3种建表语句 1.简单SQL表明结构: CREATE TABLE t7(id INT ,NAME VARCHAR(20), PRIMARY KEY(`id`)) ENGINE=INNODB; 格式: CREATE [TEMPORARY] TABLE [IF NOT EXIS

SQL CREATE TABLE 语句\SQL 约束 (Constraints)\SQL NOT NULL 约束\SQL UNIQUE 约束

CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... ) 数据类型(data_type)规定了列可容纳何种数据类型.下面的表格包含了SQL中最常用的数据类型: 数据类型 描述 integer(size) int(size) smallint(size) tinyint(size) 仅容纳整数.在括号内规定数字的最

[转]分析MySQL数据类型的长度【mysql数据字段 中length和decimals的作用!熟悉mysql必看】

你看到的这个文章来自于http://www.cnblogs.com/ayanmw 转载自:http://blog.csdn.net/daydreamingboy/article/details/6310907 分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length).VARCHAR(Length).TINYINT(Length).SMALLINT(Length).MEDIUMINT(Length).INT(Length).BIGINT(L

create table xxx as select 与 create table xxx like

create table xxx as select xxx,创建新表,没有原表的完整约束,会把原表的数据拷贝一份,如下:mysql> desc stu;+------------+--------------+------+-----+---------+----------------+| Field      | Type         | Null | Key | Default | Extra          |+------------+--------------+------

myql查询创建表语句SHOW CREATE TABLE table_name

技术背景:刚开始学习MySQL时候,有时偷懒,会用SHOW CREATE TABLE 表名\G来复制表创建语句,可是当运行的时候总会因为"表名和列名上有单引号",提示语法错误不能运行.问题列表:1,为什么会出错呢?2,有什么解决方法?解决问题:1,分析show create table拷贝的语句出错原因1.1 重现过程1.1.1 创建测试表test,并通过show create table test取得表的创建语句,可见表名,列名都用引号包着.mysql> create tabl

Mysql create constraint foreign key faild.trouble shooting method share

mysql> create table tb_test (id int(10) not null auto_increment primary key,action_id int(10) not null,error_code int(10) not null default 0,desc_key varchar(64) not null default 'audit.log.default',INDEX(action_id),constraint `FK_ACTIONID` foreign k

create table like 和create table select 比较

语法: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name     [(create_definition,...)]     [table_options] [select_statement]   CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name     [(] LIKE old_tbl_name [)]; 测试过程: 原数据表: mysql> show create table test_or

ERROR 1005 (HY000): Can't create table 'sakila.book2' (errno: 150)

mysql> create table user2(     -> id int,     -> name varchar(10),     -> primary key(id))     -> engine=innodb; Query OK, 0 rows affected (0.02 sec) mysql>  create table book2(     ->  id int,     ->  bookname varchar(10),     -&g