Mysql_数据类型
Posted 月牙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql_数据类型相关的知识,希望对你有一定的参考价值。
一、数据库分为两种:
? 1. 关系型 :需要有表结构
? 2. 非关系型 :key-value 进行存储的,没有表结构
二、mysql支持的存储引擎:
1. Innodb存储引擎:支持事务,mysql默认引擎
2. MyISAM :不支持事务,存储速度比innodb快
3. memory :只存储在内存中,一旦mysql进行重启,数据会全部丢失
4. blackhole 黑洞存储引擎:存入就没了
三、指定表的类型/引擎类型
create table t1(id int,name char(10)) engine=innodb;
四、创建字段
语法:字段名1 类型[(宽度) 约束条件
注意:字段名与类型是必须要有的,其他可选
create table t1(id int(长度) 约束条件例如:primary key);
五、复制表的3中方法:
- 复制表结构与内容
create table t5 select * from t1;
- 只复制表结构 : 这里要添加一个条件进行复制,但是mysql语句里面不能用bool值,只能使用条件,值为false就只复制表结构
create table t5 select * from t1 where 1>2;
- 还有一种只拷贝表结构,不拷贝表内容的方法 like
create table t5 like db2.t1;
五、函数
function | info |
---|---|
now() | 获取当前的时间 |
char_length() | 获取字符长度 |
length() | 获取字节数 |
六、数据类型:
1、整形
tinyint 这个一般用于布尔值的时候tinyint(1) 与 tinyint(0)
int 一般这个比较常用
bigint
2、浮点型 m必须大于d ,m为数值的位数,d为小数保留位数,m必须要大于d
float(m,d) 计算精度小
double(m,d) 计算精度比单浮点型要高
decimal(m,d) 计算精度比前面两个都要高
3、日期与时间
year
date
datetime
time
timestmp
create table t9(born_year year,born_date,born_time time,born_datetime datetime);
insert into t8 values(now(),now(),now(),now());
select * from t8;
4、char 与varchar
char类型:定长,简单粗暴,浪费空间,存取速度快,但是会填充空格来满足固定长度,查询的时候会把后面的空格删掉进行显示,但是存储的时候是补充了一堆的空格在里面
varchar类型:变长,精准,节省空间,存取速度慢
注意:尽量使用char来代替varchar,因为varchar影响效率
查看当前mysql模式
select @@sql_mode;
其他字符串系列(效率:char>varchar>text)
5、枚举类型与集合类型
enum 多里选一个 比如性别 enum( ‘男’,‘女’ )
set 多里选多个 比如爱好: hobby set (‘篮球’,‘足球’)
create table t1(id int primary key auto_increment,sex enum('男','女') not null)
create table t1(id int primary key auto_increment,hobby set('篮球','游泳') not null)
6、无符号unsigned 与 用0进行填充 zerofill
zerofill :用0进行补充长度 ,也等同于unsigned + zerofill
create table t1(id int primary key auto_increment,age int unsigned )
create table t1(id int primary key auto_increment,is_true int zerofill)
以上是关于Mysql_数据类型的主要内容,如果未能解决你的问题,请参考以下文章