1.from字句
SELECT的查询对象由FROM子句指定,其格式为:
FROM 表名1 [ , 表名2] …
其中,表名:
tbl_name [ [AS] 表别名 ] [{USE | ignore | force} index (key_list)] /*查询表*/
| join_table /*连接表*/
说明:表名指出了要查询的表或视图。
● 表别名主要用在相关子查询及连接查询中。如果FROM子句指定了表别名,这条SELECT语句中的其他子句都必须使用表别名来代替原始的表名。当同一个表在SELECT语句中多次被提到的时候,就必须要使用表别名来加以区分。
● {USE | IGNORE | FORCE} INDEX:USE INDEX告知MySQL选择一个索引来查找表中的行,IGNORE INDEX告知MySQL不要使用某些特定的索引,FORCE INDEX的作用接近USE INDEX(key_list),只有当无法使用一个给定的索引来查找表中的行时,才使用表扫描。
2.表名中可以包含一个或多个表:
● 引用一个表:
可以用两种方式引用一个表,第一种方式是使用USE语句让一个数据库成为当前数据库,在这种情况下,如果在FROM子句中指定表名,则该表应该属于当前数据库。第二种方式是指定的时候在表名前带上表所属数据库的名字。例如,假设当前数据库是db1,现在要显示数据库db2里的表tb的内容,使用如下语句:
SELECT * FROM db2.tb;
当然,在SELECT关键字后指定列名的时候也可以在列名前带上所属数据库和表的名字,但是一般来说,如果选择的字段在各表中是唯一的,就没有必要去特别指定。
● 引用多个表:
如果要在不同表中查询数据,则必须在FROM子句中指定多个表。指定多个表时就要使用到连接。当不同列的数据组合到一个表中叫做表的连接。
3.连接的方式有以下三种。
高级查询 (多表查询:数据源是多个表)
做多表连接:要找到连接的条件,2个表的公共字段(属