MYSQL学习笔记 (一)
每次面试后,都决定一改前非。事实上依然和那些发誓再吃最后一份美食的胖子一样。不管这次是不是三分钟热度但是至少我开始。
MYSQL引擎
说到MYSQL引擎我又想起研二时候去面试的第一家公司——大脉。当时懵懵懂懂的就去了,然后被那个面试官问我开发的那个系统
MYSQL数据库采用的什么引擎。现在想起了也好笑,明明当时有了解过这个,却到关键的时候忘了。好了不题外话了,进入主题。
MYSQL引擎有9种,我们通常用到的主要是INNOB和MYISAM。其实INNOB支持事务处理,支持外键,在插入、更新操作时只对数据行进行
锁定。在SELECT操作较多并且不需要事务处理的情况下使用MYISAM比较多,它不支持外键,并且在插入、更新操作时对数据包进行锁定。另外
二种存储引擎的存储 结构也不同。
MYSQL字符串char与varchar的区别
varchar为变长字符串类型,这就意味着字符串占有的存储空间为自身的大小。例如对于中文简体字符集gbk的字符串而言,varchar(255)
表示可以存储255个汉字。而每个汉字占用两个字节的存储空间。假若这个字符串没有那么多的汉字,例如仅仅包括一个“中”字,那么varchar(255)仅仅占用一个字符(2个字节)的存储空间,如果不考虑其他开销。而char(255) 必须占用255个字符长度的存储空间,哪怕里面只存储一个汉字。
但是对于char而言,即使只有2个字节也会占用全部的存储空间。
DATETIME与DATESTAMP的区别
datetime与datestamp格式差不多,但是datetime的范围远远大于datestamp。datestamp到 2037年就玩完了。另外 datestamp类型的数据在不赋值时默认为当前日期时间。
WHERE与HAVING的区别
作用的对象不同。WHERE 子句作用于表和视图,HAVING 子句作用于组。WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算),而 HAVING 在分组和聚集之后选取分组的行。。因此,WHERE 子句不能包含聚集函数; 因为试图用聚集函数判断那些行输入给聚集运算是没有意义的。相反,HAVING 子句总是包含聚集函数。(严格说来,你可以写不使用聚集的 HAVING 子句,但这样做只是白费劲。同样的条件可以更有效地用于 WHERE 阶段。)
最新文章
- js禁用右键菜单、选中、复制、剪切、粘贴
- SQL模仿Split 功能
- ORA-03113: end-of-file on communication channel
- BZOJ 1068: [SCOI2007]压缩
- jQuery.fn.extend与jQuery.extend到底区别在哪?
- php使用redis存储
- Access“存储过程";参数顺序要与执行代码生成的参数顺序一致
- Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing--转
- ReiserFS与EXT3的比较
- 使用padding-top实现自适应背景图片
- 关闭窗口(window.close)
- linux之SQL语句简明教程---AND OR
- 无法编辑的word解密
- solr4.9r+ Eclipse 4.3+ tomcat 7.5 +winds7(二)
- iOS开发中常见bug!(内附解答方法)
- Attention Model(注意力模型)思想初探
- kali linux学习笔记(四) : 网络端口大全介绍
- 今天俺要说一说工厂方法模式(Factory)
- Dirichlet's Theorem on Arithmetic Progressions POJ - 3006 线性欧拉筛
- Python之线程 3 - 信号量、事件、线程队列与concurrent.futures模块