MySQL必知必会摘录

主题概要
数据库MySQL注意总结
编辑时间
新建20160526
序号参考资料
1MySQL必知必会

Select结果顺序

用select检索出的数据,不能(也不应该)依赖于检索结果的顺序。如果不明确规定排序顺序有意义,则不应该假定检索出的数据的顺序有意义。

Where子句中and优先级最高

用where语句进行过滤时,AND在计算次序中优先级最高,如:
这里写图片描述
结果并不是想像中的自左向右的结合,所有prod_price都大于等于10,而是vend_id=1003 AND prod_price>=10的结果再 OR vend_id=1002。解决方法是按需要加圆括号。

通配符使用技巧

百分号(%)通配符—表示任何字符出现任意次数;
下划线(_)通配符—只匹配单个字符而不是多个字符;
需注意:
不要过度使用通配符,如果其他操作符能达到相同的目的,应该使用其他操作符。
在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处,否则速度会很慢。
仔细注意通配符的位置,如果放错地方,可能不会返回想要的数据。

LIKE与REGXP的区别

这里写图片描述
因为LIKE匹配整个列,如果被匹配的文本仅在列值中出现,LKIE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回,这是个非常重要的区别。使用^和$定位符,REGEXP也能匹配整个列值。

HAVING分组

HAVING非常类似于WHERE,事实上所有WHERE子句都可用HAVING替代,唯一差别是,WHERE过滤行,而HAVING过滤分组。

各类联结

等值联结与内部联结

通过使用WHERE子句与INNER JOIN语法,如:
这里写图片描述

这里写图片描述
ANSI SQL规范首选INNER JOIN语法,尽管使用WHERE子句定义联结的确比较简单,但是使用明确的联结语法能够确保不会忘记联结条件,有时候这样做也能影响性能。

自联结

假如你发现某物品(其ID为DTNTR)存在问题,因此想知道生产该物品的供应商生产的其他物品是否也存在这些问题。此查询要求首先找到生产ID为DTNTR的物品的供应商,然后找出这个供应商生产的其他物品,
可通过:
这里写图片描述
等价于:
这里写图片描述
注意:使用自联结而不用子查询,自联结通常作为外部语句用来替代从相同表中检索数据时使用的子查询语句。虽然最终的结果是相同的,但有时候处理联结远比处理子查询快得多。

外部连接(左连接与右连接)

许多联结将一个表中的行与另一个表中的行相关联,但有时候会需要包含没有关联行的那些行,例如:
对每个客户下了多少订单进行计数,包括那些至今尚未下订单的客户。
左连接示例:
这里写图片描述

联结总结

注意所使用的联结类型,一般我们使用内部联结,但使用外部联结也是有效的。
保证使用正确的联结条件,否则将返回不正确的数据。
应该总是提供联结条件,否则会得出笛卡尔积。
在一个联结中可以包含多个表,甚至对每个联结都可以采用不同的联结类型,但应该在一起测试前,分别测试每个联结,方便排除故障。

UNION操作

多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句。MySQL允许执行多个查询,并将结果作为单个查询结果返回,有两种基本情况:
在单个查询中从不同的表返回类似结构的数据;
对单个表执行多个查询,按单个查询返回数据。
这里写图片描述
注意,所有UNION组合,只能使用一条ORDER BY子句,且必须出现在最后一条SELECT语句之后,不存在用一种方式排序一部分,而又用另一种方式排序另一部分的情况。

提高INSERT操作整体性能

INSERT操作可能很耗时,特别是有很多索引需要更新时,而且它可能降低等待处理的SELECT语句的性能。如果数据检索是最重要的(通常是这样),则可以通过在INSERT和INTO之间添加关键字LOW_PRIORITY,指示MySQL降低INSERT语句的优先级,如下所示:
INSERT LOW_PRIORITY INTO
这也适用于UPDATE和DELETE语句。

MYSQL引擎类型

常用的几个引擎:
InnoDB:是一个可靠的事务处理引擎,它不支持全文本搜索;
MEMORY:功能等同于MyISAM,但由于数据存储在内存(不是磁盘)中,速度很快(特别适合于临时表);
MyISAM:是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。

### 回答1: 《MySQL必知必会》是一本经典的MySQL数据库入门教材,该书由Ben Forta撰写,适合初学者和有一定数据库基础的读者阅读。这本书着重介绍了MySQL数据库的基本原理、数据类型、查询语句、数据操作、事务控制以及安全性等方面的知识。 本书以简单易懂的方式讲解了MySQL数据库的基本概念和操作技巧,适合初学者进行自学。无论是想学习数据库编程的开发人员,还是想了解数据库管理的系统管理员,都可以通过阅读本书掌握必要的MySQL数据库知识。 《MySQL必知必会》的内容丰富全面,并且配有大量的示例和练习题,读者可以通过实践加深对知识的理解和掌握。此外,该书还介绍了一些高级主题,如存储过程、触发器和视图等,帮助读者进一步提升数据库应用能力。 总的来说,《MySQL必知必会》是一本对于学习MySQL数据库的人来说非常有价值的参考书。无论是初学者还是有一定数据库基础的人,都可以通过阅读本书快速学习和掌握MySQL数据库的相关知识。读者可以根据自己的需求和兴趣,选择适合自己的章节进行阅读和学习。 ### 回答2: MySQL必知必会是一本非常有价值的参考书籍,对于想要学习和掌握MySQL数据库的人来说非常有用。这本书详细介绍了MySQL数据库的基本概念、基础语法和高级功能,以及如何优化和管理数据库。 首先,MySQL必知必会通过简洁清晰的语言和丰富的实例,介绍了数据库的概念和原理,帮助读者建立起正确的数据库思维模式。它从关系型数据库的基本概念开始讲解,包括表、行、列、主键等,然后逐步介绍了SQL语言的基本语法和常用命令,如SELECT、INSERT、UPDATE、DELETE等。 其次,MySQL必知必会还深入讲解了MySQL数据库的高级功能,如多表查询、子查询、连接和视图等。这些功能对于处理复杂的数据查询和分析非常重要,通过学习这些知识,读者可以更加灵活地操作数据库,提高工作效率。 此外,MySQL必知必会还涵盖了数据库优化和管理的内容。它介绍了如何正确设计和规划数据库结构,以及如何使用索引和分区来提高查询效率。此外,它还讲解了如何备份和恢复数据库,以及如何监控和优化数据库性能。 总之,MySQL必知必会是一本详细介绍MySQL数据库基础知识和高级功能的优秀书籍。无论是初学者还是有一定经验的开发者,都可以从中学习到很多宝贵的知识和技巧。它不仅可以帮助读者快速入门MySQL,还可以帮助他们提高数据库操作的能力和效率。无论是学习、工作还是项目开发,都值得推荐阅读。 ### 回答3: MySQL必知必会是一本非常受欢迎的MySQL入门书籍,适合初学者和有一定基础的用户阅读。这本书的作者是Ben Forta,他详细介绍了MySQL数据库的基本概念、语法以及如何进行数据库设计和管理。 MySQL必知必会的特点之一是其简洁明了的语言和结构。它从最基本的概念开始讲解,逐步引导读者了解如何创建和管理数据库、表和索引。书中还包含大量的示例和练习题,帮助读者加深理解,并提供了一些常见错误和解决方法。 此外,这本书还涵盖了MySQL数据库的高级主题,如安全性、性能调优和复制。通过深入研究这些主题,读者可以进一步提升他们在MySQL数据库管理方面的技能。 MySQL必知必会还强调了SQL语言的重要性,它是用于与数据库进行交互的主要语言。读者将学习如何使用SQL语句查询、插入、更新和删除数据。此外,书中还介绍了一些高级的SQL技巧,如JOIN和子查询。 总的来说,MySQL必知必会是一本非常实用的MySQL入门书籍,不仅适合初学者,也适合那些希望巩固和提升MySQL数据库管理技能的用户。无论是在学术领域还是实际工作中,掌握MySQL数据库是一个非常有用的技能,而这本书可以帮助读者快速入门和精通这一技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值