子查询
暂未遇到,使用书中demo代替,优先进行括号中的查询,然后查询结果作为条件传递给上一层.使用in连接.
表的连接,为了避免歧义,应该使用表的全限定名.
内连接
多表查询示例
表别名用法
组合查询
组合前
SELECT
world.area,
world.continent,
world.gdp,
world.`name`,
world.population
FROM
`world`
WHERE
area > 1000
SELECT
world.area,
world.continent,
world.gdp,
world.`name`,
world.population
FROM
`world`
WHERE
area > 1000 UNION
SELECT
world.area,
world.continent,
world.gdp,
world.`name`,
world.population
FROM
`world`
WHERE
population > 78000
组合后
union会自动去掉重复行,如果想显示所有匹配行,应该使用union all.
使用order by 对组合查询结果进行排序只能使用一次,且应该放在句子最末尾.
例如
SELECT
world.area,
world.continent,
world.gdp,
world.`name`,
world.population
FROM
`world`
WHERE
area > 1000
ORDER BY
area,
gdp
全文本搜索支持
需要选择MyISAM引擎,并对指定字段建立fulltext索引.
match函数选择要要搜索的字段,against指定要搜索的值.
全文本查询扩展,会除了精确查询字符串之外,可能关联的语句,
使用 with query expansion
布尔文本搜索
如图所示,搜索heavy关键字以及排除rope开头的有关内容.
其余几种搜索模式