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中方法:

  1. 复制表结构与内容
create table t5 select * from t1;
  1. 只复制表结构 : 这里要添加一个条件进行复制,但是mysql语句里面不能用bool值,只能使用条件,值为false就只复制表结构
create table t5 select * from t1 where 1>2;
  1. 还有一种只拷贝表结构,不拷贝表内容的方法 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_数据类型)