数据库9:联结表 高级联结 组合查询 全文本搜索

Sql最强大的功能之一就是能在数据检索查询的执行中联结(join)表。联结是利用sqlselect能执行的最重要的操作,能很好的理解联结及其语法是学习sql的一个极为重要的组成部分。

1 注意所使用的联结类型,一般我们使用内部联结,但使用外部联结也是有效的。

      2 保证使用正确的联结条件,否则将返回不正确的数据;

      3 应该始终提供联结条件,否则会得出笛卡尔积

      4 在一个联结中可以包含多个表,甚至对于每个联结可以采用不同的联结类型。虽然这样做是合法的,一般也很有用,但应该在测试它们之前,分别测试每个联结。这将使故障排除更为简单。

并非所有的引擎都支持全文本搜索。最常使用的是MyISAMInnoDB,前者支持全文本搜索,而后者不支持。如果你需要全文本搜索功能,应该记住这一点

 

      关键字LIKE,它利用通配操作匹配的文本(和部分文本)。使用LIKE,能够查找包含特殊值或部分值的行(不管这些值位于那些位置)

      基于文本的搜索作为正则表达式匹配列值的更进一步的介绍。使用正则表达式,可以编写查找所有行的非常复杂的匹配模式

      虽然这些搜索机制非常有用。但存在几个重要的限制:

          1性能——通配符和正则表达式匹配通常要求MYSQL尝试匹配表中所有的行(而且这些搜索极少使用表索引),因此,由于被搜索行数不断增加,这些搜索非常耗时

          2明确控制——使用通配符和正则表达式匹配,很难(而且并不总能)明确的控制匹配什么和不匹配什么

          3智能化的结果——虽然前两者都能提供了非常灵活的搜索,但它们都不能提供非常智能化的匹配结果。

      前面的很多限制都可以使用全文本搜索来解决。使用全文本搜索。Mysql创建指定列中各词的一个索引, 搜索可以针对这些词进行。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值