随笔分类 -  MySQL必知必会

内容均来源《MySQL必知必会》,博主的读书笔记。
摘要:28.1 改善性能 数据库管理员把他们生命中的相当一部分时间花在了调整、试验以改善DBMS性能之上。在诊断应用的滞缓现象和性能问题时,性能不良的数据通常是最常见的祸因。 可以看出,下面的内容并不能完全决定MySQL的性能。我们只是想回顾一下前面各章的重点,提供进行性能优化探讨和分析的一个出发点。 首 阅读全文
posted @ 2018-01-16 12:50 _sanjun 阅读(132) 评论(0) 推荐(0)
摘要:27.1 备份数据 像所有数据一样,MySQL的数据也必须经常备份。由于MySQL数据库是基于磁盘的文件,普通的备份系统和例程就能备份MySQL的数据。但是,由于这些文件总是处于打开和使用状态,普通的文件副本备份不一定总是有效。 下面列出这个问题的可能解决方案。 使用命令行使用程序mysqldump 阅读全文
posted @ 2018-01-16 11:50 _sanjun 阅读(160) 评论(0) 推荐(0)
摘要:26.1 访问控制 MySQL服务器idea安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少。换句话说,用户不能对过多的数据具有过多的访问权。 可虑以下内容: 多数用户只需要对表进行读和写,但少数用户甚至需要能创建和删除表 某些用户需要读表,但可能不需要更新表 你可能想允许用户 阅读全文
posted @ 2018-01-16 10:50 _sanjun 阅读(151) 评论(0) 推荐(0)
摘要:25.1 字符集和校对顺序 数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。因此,MySQL需要适应不同的字符集,适应不同的排序和检索数据的方法。 语言和字符集的重要术语: __字符集__ 为字母和符合的集合 __编码__ 为某个字符集成员的内部表示 __校对__ 为规定 阅读全文
posted @ 2018-01-16 09:42 _sanjun 阅读(133) 评论(0) 推荐(0)
摘要:24.1 事务处理 __并非所有引擎都支持事务处理__ MyISAM和InnoDB是两种最常使用的引擎。前者不支持明确的事务处理管理,而后者支持。这就是为什么本书中使用的样例表被创建来使用InnoDB而不是更经常使用的MyISAM的原因。如果你的应用中需要事务处理功能,则一定要使用正确的引擎类型。 阅读全文
posted @ 2018-01-16 09:18 _sanjun 阅读(175) 评论(0) 推荐(0)
摘要:23.1 触发器 MySQL语句在需要时被执行,存储过程也是如此。但是,如果你想要某条语句在事件发生时自动执行,怎么办呢?例如: 每当增加一个顾客到某个数据库表时,都检查其电话号码格式是否正确,州的缩写是否为大写 每当订购一个产品时,都从库存数量中减去订购的数量 无论何时删除一行,都在某个存档表中保 阅读全文
posted @ 2018-01-15 22:56 _sanjun 阅读(234) 评论(0) 推荐(0)
摘要:22.1 游标 MySQL检索操作返回一组称为结果集的行。这组返回的行都是与SQL语句相匹配的行(零行或多行)。使用简单的select语句,例如,没有办法得到第一行、下一行或前10行,也不存在每次一行地处理所有行的简单方法。 有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原因。游标 阅读全文
posted @ 2018-01-15 21:09 _sanjun 阅读(142) 评论(0) 推荐(0)
摘要:21.1 存储过程 迄今为止,使用的大多数SQL语句都是针对一个或多个表的单条语句。并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成。例如,考虑以下的情形。 为了处理订单,需要核对以保证库存中有相应的物品。 如果库存有物品,这些物品需要预定以便不将它们再卖给别人,并且要减少可用的物 阅读全文
posted @ 2018-01-15 18:02 _sanjun 阅读(108) 评论(0) 推荐(0)
摘要:20.1 视图 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 理解视图最好的方法是看一个例子: 此查询用来检索订购了某个特定产品的客户。任何需要这个数据的人都必须理解相关表的结构,并且知道如何创建 查询和对表进行联结。为了检索其他产品的相同数据,必须修改最后的where 阅读全文
posted @ 2018-01-15 16:45 _sanjun 阅读(111) 评论(0) 推荐(0)
摘要:19.1 创建表 MySQL不仅用于表数据操纵,而且还可以用来执行数据库和表的所有操作,包括表本身的创建和处理。 一般有两种创建表的方法: 使用具有交互式创建和管理表的工具 表也可以直接用MySQL语句操纵 __19.1.1 表创建基础__ 为利用create table创建表,必须给出下列信息: 阅读全文
posted @ 2018-01-15 00:09 _sanjun 阅读(113) 评论(0) 推荐(0)
摘要:18.1 更新数据 为了更新表中的数据,可使用update语句。可采用两种方法使用update: 更新表中特定行 更新表中所有行 __不要省略where子句__ 在使用update时一定要注意细心。因为稍不注意,就会更新表中所有行。 update语句非常容易使用,甚至可以说是太容易使用了。基本的up 阅读全文
posted @ 2018-01-14 21:57 _sanjun 阅读(197) 评论(0) 推荐(0)
摘要:17.1 数据插入 顾名思义,INSERT是用来插入行到数据库表的。插入可以用几种方式使用: 插入完整的行 插入行的一部分 插入多行 插入某些查询的结果 __插入及系统安全__ 可针对每个表或每个用户,利用MySQL的安全机制禁止使用INSERT语句。 17.2 插入完整的行 把数据插入表中的最简单 阅读全文
posted @ 2018-01-14 20:05 _sanjun 阅读(136) 评论(0) 推荐(0)
摘要:16.1 理解全文本搜索 __并非所有引擎都支持全文本搜索__ MySQL支持几种基本的数据库引擎。并非所有的引擎都支持本 书所描述的全文本搜索。两个最常用的引擎为MyISAM和InnoDB,前者支持全文搜索,而后者不支持。这就是为什么虽然本书中创建的多数样例使用InnoDB,而有一个样例表(pro 阅读全文
posted @ 2018-01-14 17:40 _sanjun 阅读(170) 评论(0) 推荐(0)
摘要:15.1 组合查询 多数SQL查询都只包含从一个或多个表中返回数据的单条select语句。MySQL也允许执行多个查询(多条select语句),并将结果作为单个查询结果返回。这些组合查询通常称为并或复合查询。 有两种基本情况,其中需要使用组合查询: 在单个查询中从不同的表返回类似结构的数据 对单个表 阅读全文
posted @ 2018-01-14 13:41 _sanjun 阅读(138) 评论(0) 推荐(0)
摘要:14.1 使用表列名 别名除了用于列名和计算字段外,SQL还允许给表名起别名。这样做有两个主要理由: 缩短SQL语句 允许在单条select语句中多次使用相同的表。 请看下面的select语句。它与前一章的例子中所有的语句基本相同,但改成了使用别名: 可以看到,from子句中3个表全都具有别名。cu 阅读全文
posted @ 2018-01-14 12:58 _sanjun 阅读(115) 评论(0) 推荐(0)
摘要:13.1 联结 SQL最强大的功能之一就是能在数据检索查询的执行中联结表。联结是利用SQL的select能执行的最重要的操作,很好 地理解联结及其语法是学习SQL的一个极为重要的组成部分。 在能够有效地使用联结前,必须了解关系表以及关系数据库设计的一些基础知识。下面的介绍并不是这个内容的全部知识,但 阅读全文
posted @ 2018-01-14 10:09 _sanjun 阅读(137) 评论(0) 推荐(0)
摘要:12.1 子查询 select语句是SQL的查询。迄今为止我们所看到的所有select语句都是简单查询,即从单个数据库表中检索数据的单条语句。 __查询__ 任何SQL语句都是查询。但此术语一般指select语句。 SQL还允许创建子查询,即嵌套在其他查询中的查询。 12.2 利用子查询进行过滤 本 阅读全文
posted @ 2018-01-14 00:21 _sanjun 阅读(173) 评论(0) 推荐(0)
摘要:11.1 数据分组 从上一章知道,SQL聚集函数可用来汇总数据。这使我们能够对行进行计数,计算和平均数,获得最大和最小值而不是检索所有数据。 目前为止的所有计算都是在表的所有数据或匹配特定的WHERE子句的数据上进行的。提示一下,下面的例子返回供应商 1003提供的产品数目: 但如果要返回每个供应商 阅读全文
posted @ 2018-01-13 12:09 _sanjun 阅读(143) 评论(0) 推荐(0)
摘要:10.1 聚集函数 我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。使用这些函数,MySQL查询可用于检索数据,以便分析和报表生成。这种类型的检索例子有以下几种。 确定表中行数(或者满足某个条件或包含某个特定值得行数)。 获得表中行组的和。 找出表列(或所有行或某些特定 阅读全文
posted @ 2018-01-13 10:43 _sanjun 阅读(106) 评论(0) 推荐(0)
摘要:9.1 函数 与其他大多数计算机语言一样,SQL支持利用函数来处理数据。函数一般是在数据上执行的,它给数据的转换和处理提供了方便。 __函数没有SQL的可移植性强__ 能运行在多系统上的代码称为可移植的。相对来说,多数SQL语句是可移植的,在SQL实现之间有差异时,这些差异通常不那么难处理。而函数的 阅读全文
posted @ 2018-01-13 09:39 _sanjun 阅读(127) 评论(0) 推荐(0)