mysql引擎模式_mysql引擎,完整的见表语句,数据库模式, 常用数据类型,约束条件...
引擎
show engines : 查看引擎
innodb(默认引擎):支持事务,行级锁,外键myisam:查询效率由于innodb,不需要支持事务,行级锁,外键,可以选用myisam来优化数据库
mysql> create table t1(id int)engine=innodb;
mysql> create table t2(id int)engine=myisam;
mysql> create table t3(id int)engine=blackhole;
mysql> create table t4(id int)engine=memory;
eg:
create table t1(name char,id int) engine=innodb
insert into t1 values(1)
一个完整的建表语句
create table 表名 (
字段名1 类型[(宽度)约束条件],
字段名2 类型[(宽度)约束条件],
字段名3 类型[(宽度)约束条件],
)engine=innodb charset="utf8";
#engine 指引擎,charset指字符编码集
数据库模式:
严格模式:超出范围报错 非严格模式:超出范围不报错
show variables like "%sql_mode%" 查看当前数据库模式,%代表模糊查找
setglobal sql_mode="strict_trans_tables"; 设置数据库模式
no_engine_substitution:非安全性,默认
strict_trans_tables:安全模式(严格模式)
mysql数据类型
规定数据存放的哪些数据
整形 浮点型 字符型 时间类型 枚举类型 集合类型
整形:(长度默认是11)
整形: 不同类型所占字节数不一样,决定所占空间及存放数据大小限制
tinyint:1字节-128 到 127smallint:2字节
mediumint:3字节
int:4字节
bigint:8字节
形式 tinyint smallint mediumint int bigint
字节 1(255) 2 3 4 8
宽度:
1.不能决定整形存放数据的宽度,超过宽度可以存放,最终由数据类型所占字节决定
2.如果没有超过宽度,且有zerofill限制,会用0填充前置位的不足为
3.没有必要规定整形的宽度,默认设置的宽度就为最大宽度
整形的限制:不是容量限制,而是显示宽度
create table t1(id int(5) zerofill) 当查看的数是小于长度5,用0补上
浮点型
float double decimal
字节 4 8 (自定义)
float:4字节 精度最低,最常用
double:8字节 精度高,占位多
decimal:自定义字节字符串存,全精度
float(M,D) M为总位数,D为小数位
根据总位数可以算出整数位的位数
float(6,3)
字符集
char:定长 一定按规定存放数据,以规定宽度读取数据
varchar:不定长 首先根据数据长度计算宽度,并在数据开始以数据头方式将宽度信息保存起来,计算耗时
宽度:
char(4):以四个字符长度存储,超出报错浪费空间,以空间换取时间效率,减少IO
varchar(4):数据长度决定字符长度,但也不能超出长度,节省空间
总结:数据长度相近的数据提倡用char来存取数据,数据需要高速存取,异空间换时间char(3) 在硬盘保存为3 字符长度
yxx exx lxx zxx char(3)
如果是char类型 ,数据不足,空格补全
smysql自动去除空格 select *from t1 where name='yh'
char 存取效率高/ 浪费存储空间
varchar 存取效率低于char/节省存储空间
字符串现出原形:
char_length(x) 字符的个数
我们可以设置sql模式 来让它现出原形
setglobal sql_mode = "PAD_CHAR_TO_FULL_LENGTH,STRICT_TRANS_TABLES"设置完成后重启msyql 再次查询长度
时间类型
year:年 yyyy(1901/2155)
date:年-月-日 yyyy-MM-dd
time:时分秒 HH:mm:ss
datetime:年月日时分秒 yyyy-MM-dd HH-mm-ss 可以为空,不依赖时区
timestamp:年月日时分秒 yyyy-MM-dd HH-mm-ss 不能为空,默认位当前时间,依赖时区
共同点: 时间存取通过字符串类型 都可以使用now()函数来插入当前时间
create table student(
id int primary key auto_increment,
name char(16),
born_year year,
birth date,
class_time time,
reg_time datetime
);
insert into student value(2,'zxx',2000,2018-11-11,now(),now());
枚举与集合
枚举 enum:单选
集合 set:多选
性别:单选
爱好:多选
create table t1 (
sex enum('male',"female","wasai") not null default "wasai"", #枚举
hobbies set("play","read","music") #集合
);
insert into t1(sex,hobbit) values("male","play,read");
约束条件
foreign ket:外键(联合索引)
主键: 表默认都有主键
primary key:主键(不为空,唯一性)
单例主键:
create table t1(id int primary key)
联合主键:
create table t1(ip char(16),port int,primary key(ip,port))
唯一性:
unique key: 唯一性约束,联合唯一
单列唯一(单个字段不能重复)
create table t1(id int unique)
联合唯一(指联合的字段不能同时重复)
create table t1(
ip char(16),
port int,
unique(ip,port)
)
自增:
auto_increment:自增,只能跟key字段连用
create table t1(id int primary key auto_increment )notnull:不能为空
default:默认值
unsigned : 无符号
zerofill : 0填充
mysql引擎模式_mysql引擎,完整的见表语句,数据库模式, 常用数据类型,约束条件...相关推荐
- MySQL 引擎 阿里_MySQL引擎讲解-阿里云开发者社区
MySQL支持三个引擎:ISAM.MyISAM和HEAP,根据需求不同来选择不同的引擎 数据库的引擎到决于 MySQL 在安装的时候是如何被编译的,要添加一个新的引擎,就必须重新编译 --with-p ...
- mysql binlog 权限_MySQL如何开启binlog?binlog三种模式的分析
前提,创建表t,并插入数据,语句如下: CREATE TABLE `t` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `t_modified` ...
- mysql 快速复制_MySQL中快速复制数据表方法汇总
本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: ...
- mysql navicate查询_Mysql Navicate 基础操作与SQL语句 版本5.7.29
SQL数据的增删改查:此部分所有SQL语句在navicat中与mysql命令行执行效果一样,只是mysql服务端在命令行执行,而navicat只是在客户端的图形化打开操作. 一.进入数据库 .连接数据 ...
- mysql系统特性_MySQL · 引擎特性 · InnoDB 事务系统
前言 关系型数据库的事务机制因其有原子性,一致性等优秀特性深受开发者喜爱,类似的思想已经被应用到很多其他系统上,例如文件系统等.本文主要介绍InnoDB事务子系统,主要包括,事务的启动,事务的提交,事 ...
- mysql引擎测试_mysql引擎性能简单测试
[硬件配置] CPU : AMD2500+ (1.8G) 内存: 1G/现代 硬盘: 80G/IDE [软件配置] OS : Windows XP SP2 SE : PHP5.2.1 DB : MyS ...
- mysql myisam 优点_mysql引擎Innodb和Myisam对比介绍和优缺点
一.myisam引擎 1.mysql默认引擎,不支持事务* 2.表级锁定,更新时,锁定机制是整张表被锁定,其它连接无法更新表的数据,效率比较低下.锁的机制成本很少,但大大降低了并发性能* 3.读写互相 ...
- mysql引擎机制_MySQL引擎特性:InnoDB同步机制
towake up possible hanging threads if they are missed inmutex_signal_object. */ if (mutex->waiter ...
- mysql public权限_MySQL · 引擎特性 · Binlog encryption 浅析
背景介绍 为了保障数据安全,MySQL 在 5.7 版本就支持了 InnoDB 表空间加密,之前写了一篇月报介绍过,参考InnoDB 表空间加密.文章开头也提到过,MariaDB 除了对表空间加密,也 ...
最新文章
- 【Pandas库】(3) DataFrame的创建方法及基本操作
- python爬虫教程视频-13天搞定Python分布爬虫
- 【设计模式】原型模式 ( 概念简介 | 使用场景 | 优缺点 | 基本用法 )
- Java集合HashMap
- 阿里云yum源安装SVN失败的问题
- 我的女朋友漏电了–论C++中的失败(failure),缺陷(bug)和异常(exception)
- String类基础的那些事!
- git pull没有更新成功_git冲突平滑解决的巧方法
- 微信开发者工具的下载以及项目的创建
- 关于通信知识的思维导图
- 如何更好地吸收维生素矿物质?
- zabbix报警邮件qq邮箱收不到的问题
- flappy bird用java实现_java实现Flappy Bird游戏源代码
- 不错的json在线编辑器
- Metasploit入侵win7系统
- C++ 雇员信息保存及查询
- python 12306查询不到车次_过年回家抢不到火车票?Python 开发 12306 查票神器
- 从阴阳五行,四书五经到国学的理解
- 文件上传漏洞靶场upload-labs学习(pass11-pass15)
- (三)基于Multisim的电台发射系统:高频功率放大器的设计
热门文章
- R语言基础入门(9)之因子类型
- C++ PAT 乙级 ——1002 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
- 简述使用计算机对会计工作的影响,简述使用计算机对会计工作的影响。
- mysql中对比月_详解Mysql中日期比较大小的方法
- 聚类算法 距离矩阵_谱聚类
- feedburner怎么用_FeedBurner PRO 現在免費使用
- STL15-map/multimap容器
- POJ 3614 Sunscreen
- 编写函数digit(num, k),函数功能是:求整数num从右边开始的第k位数字的值,如果num位数不足k位则返回0。...
- django之上传图片