当前位置:主页 > SEO优化 >

1000行 MySQL 学习笔记不怕你不会就怕你不学!

作者: 奕星SEO 分类: SEO优化 发布时间: 2019-10-12 22:50 内容来源:网络整理阅读量:

  表在管理数据时采用的不同的数据结构,结构不同会导致处理方式、提供的特性操作等不同

  RENAMETABLE原表名TO库名.表名 (可将表移动到另一个数据库)

  MODIFY[COLUMN] 字段名 字段属性-- 支持对字段属性进行修改,不能修改字段名(所有原有属性也需写上)

  - 显示宽度,如果某个数不够定义字段时设置的位数,则前面以0补填,zerofill 属性修改

  - 1表示bool值线表示bool值假。MySQL没有布尔类型,通过整型0和1表示。常用tinyint(1)表示布尔型。

  浮点型既支持符号位 unsigned 属性,也支持显示宽度 zerofill 属性。

  M既表示总位数(不包括小数点和正负号),也表示显示宽度(所有显示符号均包括)。

  varchar 是变长的,需要利用存储空间保存 varchar 的长度,如果数据小于255个字节,则采用一个字节来保存长度,反之需要两个字节来保存。

  最大有效长度是65532字节,因为在varchar存字符串时,第一个字节是空的,不存在任何数据,然后还需两个字节来存放字符串的长度,所以有效长度是64432-1-2=65532字节。

  类似于char和varchar,用于保存二进制字符串,也就是保存字节字符串而非字符字符串。

  枚举值在保存时,以2个字节的整型(smallint)保存。每个枚举值,按保存的位置顺序,从1开始逐一递增。

  最多可以有64个不同的成员。以bigint存储,共8个字节。采取位运算的形式。

  2. 如果需计算,查找等,可存储为4个字节的无符号int,即unsigned

  ip2long可转换为整型,但会出现携带符号问题。需格式化为无符号的整型。

  -- 此时表示将第一个字段的值设为null, 取决于该字段是否允许为null

  作用:保持数据一致性,完整性,主要目的是控制存储在外键表(从表)中的数据。

  此时需要检测一个从表的外键需要约束为主表的已存在的值。外键在没有关联的情况下,可以设置为null.前提是该外键列,没有not null。

  如果指定了 onupdate或ondelete:在删除或更新时,有如下几个操作可以选择:

  1.cascade,级联操作。主表数据被更新(主键值更新),从表也被更新(外键值更新)。主表记录被删除,从表相关记录也被删除。

  2.setnull,设置为null。主表数据被更新(主键值更新),从表的外键被设置为null。主表记录被删除,从表相关记录外键被设置成null。但注意,要求该外键列,没有notnull属性约束。

  group_concat 返回带有来自一个组的连接的非NULL值的字符串结果。组内字符串连接。

  having 字段必须是查询出来的,where 字段必须是数据表存在的。

  where 不可以使用字段的别名,having 可以。因为执行WHERE代码时,可能尚未确定列值。

  SQL标准要求HAVING必须引用GROUP BY子句中的列或用于合计函数中的列。

  仅对处理好的结果进行数量限制。将处理好的结果的看作是一个集合,按照记录出现的顺序,索引从0开始。

  每个select查询的字段列表(数量、类型)应一致,因为结果中的字段名以第一条select语句为准。

  on 表示连接条件。其条件表达式与where类似。也可以省略条件(表示条件永远为真)

  可以省略对列的指定,要求values() 括号内,提供给了按照列顺序出现的所有字段的值。

  可以指定在插入的值出现主键(或唯一索引)冲突时,更新其他非主键列的信息。

  视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

  对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。

  视图是存储在数据库中的查询的sql语句,它主要出于两种原因:安全原因,视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和使用。

  - 视图可以使用select语句查询到的列名,也可以自己指定相应的列名。

  UNDEFINED 未定义(默认),指的是MySQL自主去选择相应的算法。

  事务是指逻辑上的一组操作,组成这组操作的各个单元,要不全成功要不全失败。

  - 需要利用 InnoDB 或 BDB 存储引擎,对自动提交的特性支持完成。

  多个用户并发访问数据库时,一个用户的事务不能被其它用户的事物所干扰,多个并发事务之间的数据要相互隔离。

  3. 整组操作完成后,都成功,则提交;如果存在失败,选择回滚,则会回到事务开始的备份点。

  1.数据定义语言(DDL)语句不能被回滚,比如创建或取消数据库的语句,和创建、取消或更改表或存储的子程序的语句。

  - 如果关闭了,那普通操作的结果对其他客户端也不可见,需要commit提交后才能持久化数据操作。

  - 也可以关闭自动提交来开启事务。但与STARTTRANSACTION不同的是,

  SETautocommit是永久改变服务器的设置,直到下次再次修改该设置。(针对当前连接)

  而STARTTRANSACTION记录开启前的状态,而一旦事务提交或回滚后就需要再次开启事务。(针对当前事务)

  trigger_time是触发程序的动作时间。它可以是before或after,以指明触发程序是在激活它的语句之前或之后触发。

  tbl_name:监听的表,必须是永久性的表,不能将触发程序与TEMPORARY表或视图关联起来。

  trigger_stmt:当触发程序激活时执行的语句。执行多个语句,可使用BEGIN...END复合语句结构


本文链接地址:http://www.seohuizhou.com/seoyouhua/13299.html
上一篇:<<web开发进阶推荐书单15本你看了哪几本?
下一篇:IIS60下建立FTP“用户隔离”站点>>