美文网首页
MySQL数据库基础培训笔记

MySQL数据库基础培训笔记

作者: 拾壹北 | 来源:发表于2017-03-02 19:47 被阅读0次

    1、SQL中的字符串都要用单引号

    不用单引号也可能会执行,但是会有类型转换,而类型转换设计函数操作,引起索引失效或逻辑错误的问题。

    2、SQL书写顺序和逻辑顺序要一致

    • order by要放在句末
    • select a,b from t order by c ,c不在select项中,数据库引擎是怎么处理的?
      MySQL进行数据的逻辑存储,以page为单位,会抽取所有数据。
    • select id1 as fid from t where fid = 2 能执行吗?
      不能;执行顺序是先where,再select。

    3、内连接与外链接

    • 内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)
      包括相等联接和自然联接。
      内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。

    • 外联接
      外联接可以是左向外联接、右向外联接或完整外部联接。
      在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:
      1)LEFT JOIN或LEFT OUTER JOIN
      左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
      2)RIGHT JOIN 或 RIGHT OUTER JOIN
      右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
      3)FULL JOIN 或 FULL OUTER JOIN
      完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

    • 考虑这个SQL语句:

      select count(*) from a2 left join b2 on a2.id = b2.id
      

    这个语句没有意义:因为a2作为左表,数据项都会被显示,而count将每次都得到相同的结果。

    • 外链接的内部处理方式:(可以从扩展执行计划中查看具体的执行过程,类似于单步调试)
      有where条件的left join查询,内部将以内连接处理。

    4、语法细节

    • update同时更新多条,以逗号“,”将update的值分隔,一并执行:

      update a1 set a = 1,b = 2 where ...
      
    • delete from t where id;
      可以正常执行:id有值的数据都满足。

    • truncate和delete *
      truncate是原子事务,没有日志记录(或者说只有一条语句执行的日志),所以不能进行事务回滚。
      delete操作将产生详细的日志,IO频繁,支持事务回滚。

    5、Quanr数据库命名规范

    库、表、字段命名
    • 必须使用小写字母,并采用下划线分割;
    • 不超过32个字符;
    • 必须见名知意,与事务、产品线相关;
    • 禁用MySQL保留字;
    • 临时表以tmp_做前缀,日期做后缀,如:tmp_hourse_xxx_20170301
    • 备份表以bak_做前缀,日期做后缀,如:bak_hourse_xxx_20170301
    索引命名
    • 小写字母,下划线分割,禁用驼峰式;
    • 非唯一索引:idx_字段名称[_字段名称]
    • 唯一索引:uniq_字段名称[_字段名称]

    6、Quanr数据操作基础规范

    • 使用INNODB存储引擎并且使用业务不相关自增ID为主键;
    • 使用UTF8 / UTFMB4字符集;
    • 所有表、字段都要加注释;
    • 禁止在数据库中存放图片、文件等;
    • 每张数据表数据量控制在5000W以内;
    • 禁止在线上做数据库压力测试;
    • 禁止从测试、开发环境直连数据库。

    相关文章

      网友评论

          本文标题:MySQL数据库基础培训笔记

          本文链接:https://www.haomeiwen.com/subject/gbykgttx.html