数据操作 DML 语句
建表属于 DDL 语句,表结构的增删改 create, drop, alter …
在每个数据库 DB 都中都有数据表对应的 frm 结构文件
frm 结构文件来自 innodb 存储引擎,innodb 存储引擎
表的创建及数据类型 建表属于 DDL 语句,表结构的增删改 create, drop, alter … 在每个数据库 DB 都中都有数据表对应的 frm 结构文件 frm 结构文件来自 innodb 存储引擎,innodb 存储引擎所有的文件都存储在外部的 ibdata 文件中 基本语法
显示数据库结构
表结构 显示长度:指数据在显示的时候最多显示的长位 zerofill: 0 填充自带 unsigned 浮点数 定点数 year 可以 2 位数【69,70界限】插入或者 4 位数插入年份 两个数据处理函数 mysql的日期格式: char 查询效率比 varchar 高 数据超 255 一般使用 text 比如: tinytext 注意二进制类型需要使用IO流
字符串枚举类型,最多可以包含 65,535 个枚举值。插入的数据必须位于列表中,并且只能命中其中一个值;如果不在,将插入一个空值 大小 1~2 字节
字符串集合类型,最多可以列出 64 个值。插入的数据可以命中其中的一个或者多个值,如果没有命中,将插入一个空值 ENUM 类型相当于单选题,SET 类型相当于多选题 数据库中数据表的名字通常有前缀,取数据库的前两个字母 + _ 基本语法
复制其它表
基础语法
修改表选项
已经存在数据,尽量不要修改
数据操作 DML 语句 基本语法
字段列表省略,需要值列表全部对应表的所有字段进行填写 对于日期格式,使用 %Y-%m-%d 是直接插入 多数据插入
提取数据插入数据表
如果没有条件,是全表更新 limit 数量限制
基本语法
注意:不带 where 条件筛选mysql数据表,意味着删除全部数据【慎用】 快速删除全部数据 truncate
比较 delete 与 truncate 约束 constraint 保障:表中数据有效性和完整性 分类:
注意:在 MySQL 中一个字段同时被 not null 与 unique 约束,该字段自动被视为 主键 相关术语 任何一张表都应该有主键,没有主键表无效 主键值特性:唯一不空
主键分类: 常用自然主键 注意: 相关术语 外键由表中的一个字段或者多个字段构成,一个表的外键用来指向另一个表的主键 Primary Key 包含外键的表称为从表,被指向的表称为主表; 注意: 从表的外键类型,必须与主表的主键类型 一致 作用:从表的数据受到主表的约束,向从表中插入或者更新数据时,外键的值必须存在于主表的主键中;外键约束用于防止破坏两个表之间的关联性,保证数据的完整性和一致性 创建时语法
约束模式 常用约束模式:on update casade, on delete set null
数量:一个表可以有多个外键,但是只能有一个主键 注意逻辑顺序: 外键需求: 数据库的存储引擎决定了表在计算机中的存储方式,不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能 [En] The storage engine of the database determines how the table is stored in the computer. Different storage engines provide different storage mechanisms, indexing skills, locking levels and other functions. Specific functions can also be obtained by using different storage engines. MySQL 支持的存储引擎:使用 show engines \G 常用存储引擎: 事务 transaction 一个事务其实就是一个完整的业务逻辑 事务是必须满足4个条件 (ACID): 只有 insert, delete, update 三个语句才和事务相关,即 DML 语句 为了数据安全 本质,一个事务就是多条 DML 语句同时成功或失败 事务执行过程 增加回滚点
删除回滚点
查看隔离级别:
事务隔离等级(由低到高) 大多数据库都是二档起步 MySQL 默认三档 在数据库标的字段上添加,类似目录提高查询效率 一张表的一个字段可以添加一个索引,也可以多个字段联合起来添加索引 [En] One field of a table can add an index, or multiple fields can be combined to add an index. 使用索引将会造成滥用 缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE;因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件 MySQL索引使用 B-Tree 数据结构 任何数据库当中 主键都会自动添加索引对象 注意:MySQL中主键、 unique字段都会自动添加索引 应用需求 记忆不要随便添加索引,索引需要被维护 索引数 索引字段属性 . . . 唯一性比较弱的字段,添加索引用处不大 实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录 [En] In fact, an index is also a table that holds the primary key and index fields and points to the records of the entity table
使用 EXPLAIN 解释 SQL 视图 view 什么是视图? 站在不同角度去看待同一份数据 视图是一张虚拟表
注释:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据
我们可以面向视图进行增删改查 (对视图对象的增删改查,会导致原表被操作) 视图起到 简化SQL的复杂度 增删查改:CRUD DBA 常用命令 专门备份:mysqldump.exe,备份与还原是 在命令窗口 备份不适用于文件特别大,或变换频繁的数据
或者数据导入 在 mysql 中
授权 grant
取消 revoke
刷新 flush
数据库设计三范式 根据用户需求,三范式为理论【冗余可以换速度】 技巧: 一对一 关系唯一匹配,两张表使用同样主键 一对多 子表添加类字段 多对多 中间表
基本语法
当前用户,当前客户端生效 变量赋值符 := 定义变量
作用于 begin end 局部变量使用 declare 关键字声明
流程结构
复杂语块
结构标识符
type: day/hour/minute/second 修改语句临时结束符
通常是使用 $$ 通过 delimiter 修改后 ; 将变更
变量赋值是唯一可用
存储过程 stored procedure 存储过程是一组为了完成特定功能的 SQL 语句集合 使用存储过程的目的是将常用或复杂的工作预先用 SQL 语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程
触发器 trigger 特殊的存储过程 给一些表的记录绑定一段代码 触发器的优点如下: 触发器的缺点如下:
类似编程中的 事件概论 一张表中对应类型只有一种,最多只有 6 个触发器 记录关键字 Original: Author: shadow_D Title: MySQL 笔记二 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |