MYSQL--存储引擎、数据类型、约束条件、
存储引擎:
不同的数据应该有不同的处理机制
mysql存储引擎
Innodb:默认的存储引擎 查询速度相比于myisam慢 但是更安全
myisam:mysql老版本用的存储引擎
memory:内存引擎(数据全部存在内存中)
blackhole:无论存什么都立刻消失(黑洞)
show engines;
数据类型:
创建表的完整语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);
注意:
1、字段名和字段类型都是必须的 中括号内的参数都是可选的参数
2、同一张表中字段名不能重复
3、最后一个字段后面不能加括号
宽度:(使用数据库的准则:尽可能让它少干活)
对存储数据的限制
char(1) 只能存一个字符如果超过了mysql会自动帮你截取或者直接报错(mysql中的严格模式)
alter table tablename modify name char not null; not null(该字段不能为空)
类型和中括号内的约束:
类型约束的是数据的存储类型
而约束是基于类型之上的额外的限制
字段类型:
整形: SMALLINT TINYINT INT BIGINT
TINYINT:默认是带有符号的(-128,127),超出这个限制之后会存最大值或最小值
create table tablename(id TINYINT);
not null 不能为空
unsigned 无正负符号
zerofill 0填充多余的位数
char后面的数字是用来限制存储数据的长度的
特例:只有整型后面的数字不是用来限制存储数据的长度的 而是用来控制展示数据的位数的
int(8) 够/超8位有几位存几位,不够8位就用空格填充
强调:对于整型来说,数据类型后的宽度并不是存储限制,而是限时限制,所以在创建表的时候,如果字段采用的是int类型,完全可以不指定限时宽度,默认的限时宽度,足够显示完整当初存放的数据
模糊匹配:
like
%:匹配任意多个字符
_:匹配任意一个字符
set session 临时有效 只在你当前操作的窗口有效
set global全局有效 终生有效
设置完成之后,你需要重新退出再次登陆就OK了
浮点型
float(255,30) 总共255位 小数部分占30位
double(255,30) 总共255位 小数部分占30位
decimal(65,30) 总共65位 小数部分占30位
create table t12(id FLOAT(255,30));
create table t13(id DOUBLE(255,30));
create table t14(id DECIMAL(65,30));
精确度:float < double < decimal
字符类型
char(4):最大只能存4个字符超出就会直接报错 如果少了 会自动用空格填充
varchar(4):最大只能存4个字符 超出就会直接报错 如果少了 有几个就存几个
create table t15(name char(4));
create table t16(name varchar(4));
char_length():
msyq在存储char类型字段的时候 硬盘上确确实实存在的是固定长度的数据,但是在取出来的那一瞬间,mysql就会自动将填充的空格去除(可以通过严格模式,来修改该机制 让其不做自动去处处理)
char与varchar的区别:
char取的时候方便直接按固定的长度取就可以
varchar:取得时候比较繁琐,无法是知道数据到底有多长
char定长:
1、浪费空间
2、存取速度快
varchar变长:
1、节省空间
2、存取速度慢(相对于char比较慢)
存的时候 需要献给数据将一个记录长度的报头
取的时候 需要先读取报头才能读取真是数据
日期类型
date:年月日
datetime:年月日时分秒
year:年
time:时分秒
枚举和集合类型
枚举:enum限制某个字段能够存储的数据类型
集合:set限制某个字段能够存储的数据内容
约束条件:
not null:不能为空
unique:唯一
单列唯一:
限时某一个字段是唯一的
联合唯一:
在语句的最后用括号的形式,表示哪几个字段组合的结果是唯一的
default:给某个字段设置默认值(当用户写了就用写的,没有的话就用默认的)
create table t17(id int,name char(16) default 'william
primary key:主键
限制效果跟not null + unique 组合效果一致 非空且唯一
create table t18(id int primary key);
primary key也是innodb引擎查询必备的索引,索引可以当成书的目录
innodb引擎在创建表的时候 必须要有一个主键,当你没有指定主键的时候:
1、会将非空且唯一的字段自动升级为主键
2、当你的表中没有任何的约束条件的时候 innodb会采用自己的内部默认的一个主键字段,该主键字段你在查询的时候是无法使用的,查询数据的速度就会变得很慢,就好像是一页一页翻书
通常每张表都应该有一个id字段,并且应该将id设置为表的主键字段
联合主键:多个字段联合起来作为表的一个主键, 本质还是一个主键!!!
ps:innodb引擎中一张表有且只有一个主键
auto_increment:自动递增
delete from :仅仅是删除数据没 不会重置主键
truncate:初始化表 会重置主键
MYSQL--存储引擎、数据类型、约束条件、的更多相关文章
- MySQL存储引擎、基础数据类型、约束条件
MySQL存储引擎 存储引擎 # 存储引擎可以堪称是处理数据的不同方式 # 查看存储引擎的方式 show engines; # 需要掌握的四个存储引擎 MyISAM MySQL5.5之前的默认的存储引 ...
- MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述
MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...
- MySQL存储引擎总结
MySQL存储引擎总结 作者:果冻想 字体:[增加 减小] 类型:转载 这篇文章主要介绍了MySQL存储引擎总结,本文讲解了什么是存储引擎.MyISAM.InnoDB.MEMORY.MERGE等内 ...
- 数据库 --> MySQL存储引擎介绍
MySQL存储引擎介绍 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然 ...
- MySQL存储引擎对比
MySQL存储引擎对比 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的存储引擎 大家应该知道MySQL的存储引擎应该是表级别的概念,因为我们无法再创建databas ...
- MySQl学习-——Mysql体系结构与Mysql存储引擎
Mysql体系结构与Mysql存储引擎 Mysql体系结构 mysql体系结构图:
- MYSQL存储引擎介绍--应用场景
MySQL存储引擎通常有哪3种?各自分别有什么特点?应用场景是哪些? MySQL5.5以后默认使用InnoDB存储引擎,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表.若要修改默 ...
- Mysql存储引擎的选择
Mysql存储引擎概述 mysql的存储引擎是插件式的,用户可以根据需求选择如何存储和索引数据是否使用事务等. Mysql支持多种存储引擎,用户可以选择不同的引擎来提高应用的效率,灵活的存储方案,存储 ...
- MYSQL初级学习笔记二:数据表相关操作及MySQL存储引擎!(视频序号:初级_5,7-22|6)
知识点三:数据表相关操作(5,7-22) --------------------------------整型--------------------------------- --测试整型 CREA ...
- mysql 存储引擎学习
现在我们常用的MySQL存储引擎主要是两种:InnoDB and MyISAM. 1.MyISAM 执行效率高 不支持事务 不支持外键 每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同, ...
随机推荐
- ~~Python解释器安装教程及环境变量配置~~
进击のpython Python解释器安装教程以及环境变量配置 对于一个程序员来说,能够自己配置python解释器是最基础的技能 那么问题来了,现在市面上有两种Python版本 Python 2.x ...
- 手写 Spring
手写 Spring 不多说,简历装 X 必备.不过练好还是需要求一定的思维能力. 一.整体思路 思路要熟练背下来 1)配置阶段 配置 web.xml: XDispatchServlet 设定 init ...
- vs查看派生类
把类名拷贝到类视图中,点“派生类型”可看到此类的所有派生类.
- 洛谷:P2952 [USACO09OPEN]牛线Cow Line:题解
题目链接:https://www.luogu.org/problemnew/show/P2952 分析: 这道题非常适合练习deque双端队列,~~既然是是练习的板子题了,建议大家还是练练deque, ...
- 个人永久性免费-Excel催化剂功能第102波-批量上传本地图片至网络图床(外网可访问)
自我突破,在100+功能后,再做有质量的功能,非常不易,相对录制视频这些轻松活,还是按捺不住去写代码,此功能虽小,但功课也做了不少,希望对真正有需要的群体带来一些惊喜. 背景介绍 图床的使用,一般是写 ...
- linux初学者-DNS集群篇
linux初学者-DNS集群篇 DNS服务器一般在使用时,为了缓解服务器的压力,多使用一个主DNS服务器,多个副DNS服务器,这些DNS服务器就组成了一个DNS集群. 在DNS主服务器配置好后,需要另 ...
- linux初学者-磁盘分区方式篇
linux初学者-磁盘分区方式篇 一般的计算机都会采用mbr分区方式,这种分区方式只能够建立四个主分区,如果还需要或更多的分区,就需要将其中一个主分区建立成一个扩展分区,在里面建立逻辑分区,这些分区信 ...
- google、谷歌浏览截图
对于前端好用的浏览器---谷歌浏览器(没有插件)截取全屏很难受! 特备是前端,想截图下来,好好的量一下容器之前的尺寸(手动恼火) 对于程序员来说不一定需要插件,有很多大佬应该都知道, 小白记忆不好,每 ...
- 移动端H5多终端适配解决方案
推荐三篇文章: 1.来自手淘团队的开源技术flexibal.js github地址:https://github.com/isHelenaChan/flexible 2.来自“大漠”(就职于淘宝,也是 ...
- 【linux日志】【日志分析】linux系统各日志文件的含义
前段时间太忙,没有来得及管博客,最近时间充裕了,开始更新博客. 因为最近在看linux日志相关内容,把心得分享给大家 linux系统日志文件默认存放路径/var/log/ ls查看此路径下有哪些日志文 ...