mysql之数据类型

 所谓建表,就是声明列的过程:

  数据是以文件的形式放在硬盘中(也有放在内存里的)

 列:不同的列类型占的空间不一样

  选列的原则:够用又不浪费;

mysql的数据类型:

  整形:Tinyint(1字节)  Smallint(2个字节)  Mediumint(3个字节)  int(4个字节)  bigint(8个字节);

  Tinyint在mysql默认是有符号的(-128----127);

Tinyint(M) unsigned zerofill
unsigned : 是无符号,影响存储范围;
M代表宽度,(必须配合zerofill时才有意义)
Zerofill 零填充,如果某列是zerofill,默认是unsigned(类似00005);

insert into classs (name, age4)values (‘zhaoliu‘, 9);
列可以声明默认值,而且推荐声明默认值
Not NULL default 0

alter table class add age5 tinyint not null default 0;

小数型/浮点型定点型:
  Float(M, D)
  decimal(M, D)
  //M:精度(总位数,不包含点) D:标度(小数位)

create table goods(
name varchar(10) not null default ‘‘,
price float(6, 2) not null default 0.00) //9999.99, -9999.99
//price float(6, 2) unsigned not null default 0.00) //0-9999.99,
charset utf8;

inert into goods
(name, price)
values
(‘跑步机‘, ‘688,896’)
//记录在表中price的值为688.90

alter table goods add bigprice float(9.2) not null default 0.0;

alter table goods add deciprice decimal(9.2) not null default 0.0;

alter table goods (name, bigprice, deciprice)
values
(‘自行车‘, 1234567.23, 1234567.23);

字符型
char 定长字符串 char(M),M代表宽度,即可容纳的字符数;
Varchar 变长字符串 Varchar(M),M代表宽度,即可容纳的字符数;

区别:
char定长: M个字符如果存的小于M个字符,实占M个字符;利用率是100%
varchar变长: M个字符如果存的小于M个字符,假设为N,实占N个字符;
实占的字符需要记录消耗1--2个字符;实际占有(N+1~2)个字符;

char 与varchar选择原则:
1、空间利用效率;
2、速度;
四字成语表,char(4);
个人微博, varchar(140);

用户名:char,牺牲空间,提供速度;
text 文本串,比较大段文本,速度稍慢;
注意:text不要加默认值,加了也不生效;

create table stu(
name char(8) not null default ‘‘,
waihao varchar(16) not null default ‘‘
)charset utf8; //name最多容纳8个utf8字符;

insert into stu(name, waihao)
values
(‘zhangxiaosan‘, ‘saner‘); //拆入不进去,zhangxiaosan太长了;

insert into stu(name, waihao)
values
(‘zhangsan‘, ‘saner‘);

insert into stu(name, waihao)
values
(‘默罕默德买买提‘,‘异步拉欣’);

select concat (name, ‘!‘), concat(waihao, ‘!‘) from stu;

alter table std add info text not null default ‘‘;
//执行错误;不能默认值;

时间: 2024-07-31 04:16:23

mysql之数据类型的相关文章

mysql之数据类型以及操作数据表

数据类型: 数据类型是指列.存储过程的参数.表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型. —————————————————————————————————————————————————————————— 在mysql当中数据类型大概有以下几类: ———————————————————————————————————————————— 1.整型: ———————————————————————————————————————————————————————————

2Python全栈之路系列之MysQl基本数据类型

Python全栈之路系列之MySQL基本数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类: 数字类型 日期和时间类型 字符串类型 数字类型 类型 大小 用途 BIT - 二进制 TINYINT 1字节 小整数值 INT or INTEGER 4字节 大整数值 BIGINT 8字节 极大整数值 DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 小数值 FLOAT 4字节 单精度浮点数值 DOUBLE 8字

MySQL:MySQL日期数据类型、MySQL时间类型使用总结

MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间      日期格式                日期范围------------  ---------  --------------------- -----------------------------------------datetime      8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 ~ 9999-12-31 23:59:5

MYSQL的数据类型详解

mysql的数据类型 在mysql数据库当中,每一个库都是有多张表来组成的,每一个表都是由行和列来组成的. 所谓建表就是声明列的过程,数据是以文件的形式保存在系统上的.因此,不同的列类型,占用的空间不一样. 选列的原则:够用又不浪费即可 在选择数据类型时考虑如下因素: 1.占据空间 2.储存范围 在声明列的时候,为什么要声明某个字段的数据类型? 数据类型有如下意义: 1.确定该字段的值的类型 2.可以确定该字段所占据的空间 3.可以确定该字段是定长还是变长的 4.该字段如何进行比较以及排序 5.

MySQL的数据类型和建库策略详解

无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构.充分利用空间是十分必要的.这就要求我们对数据库系统的常用数据类型有充分的认识.下面我就将我的一点心得写出来跟大家分享. 一.数字类型 数字类型按照我的分类方法分为三类:整数类.小数类和数字类. 我所谓的"数字类",就是指DECIMAL和NUMERIC,它们是同一种类型.它严格的说不是一种数字类型,因为他们实际上是将数字以字符串形式保存的:他的值的每一位(包括小数点)占一个字节的存储空间,因此这种类型耗费空间比较大.

MySQL datetime数据类型设置当前时间为默认值

环境:MySQL Sever 5.1 + MySQL命令行工具 问题:MySQL datetime数据类型设置当前时间为默认值 解决: 方法一: 由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的.代替的方案是使用TIMESTAMP类型代替DATETIME类型. TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作.如果有多个TIMESTAMP列,只有第一个自动更新. 自

centos mysql 实战 第三节课 MySQL里的对象 mysql体系结构 mysql日志 数据类型

centos mysql  实战  第三节课   MySQL里的对象  mysql体系结构  mysql日志   数据类型 上两节课1. MySQL的安装2. MySQL启动方式 MySQL里的对象 今天第一个: MySQL里的对象 查看当前有那些数据库:show databases; drop database test;truncate table mysql.db; mysql里view当成Table对待了,没有单独的命令能备份视图,只能备份表 information_schema 字典库

MySQL日期数据类型、时间类型使用总结

1.MySQL的五种日期和时间类型 MySQl中有多种表示日期和时间的数据类型.其中YEAR表示年份,DATE表示日期,TIME表示时间,DATETIME和TIMESTAMP表示日期和实践.它们的对比如下: TEAR ,字节数为1,取值范围为“1901——2155” DATE,字节数为4,取值范围为“1000-01-01——9999-12-31” TIME,字节数为3,取值范围为“-838:59:59——838:59:59” DATETIME,字节数为8,取值范围为“1000-01-01 00:

MySQL日期数据类型和时间类型使用总结

转自: http://blog.chinaunix.net/space.php?uid=11327712&do=blog&id=32416 MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型 存储空间 日期格式 日期范围 ------------ --------- --------------------- ----------------------------------------- datetime 8 bytes YYYY-MM-DD HH:MM:SS 1