- Top:用于规定要返回的记录数目
*并非所有数据库都支持Top子句
select top number/percent column_names from table_name
eg:select top 5 * from table_1
在MySQL中:
select column_name(s) from table_name limit number
在oracle中:
select column_name(s) from table_name where rownum <= number
- LIKE:在where语句中搜索指定列中的指定模式
“%” 可用于定义通配符(模式中缺少的字母)
select column_name(s) from table_name where column_name like pattern
eg:
select * from Persons where city like 'N%'
select * from persons where city like '%g'
select * from persons where city like '%lon%'
select * from persons where city not like '%lon%'
- 通配符:
必须与like运算符一起使用;
%代替0or多个字符
从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:
select * from persons where city like '[ALN]%'
从上面的 "Persons" 表中选取居住的城市
不以 "A" 或 "L" 或 "N" 开头的人:
select * from persons where city like '[!ALN]%'
- IN操作符:在where句子中规定多个值
select column_name(s) from table_name where column_name in (value1,value2,...)
- between 操作符:在where语句中使用,选取介于两者之间的数据范围
*取值是否包括value1和value2由不同的数据库决定,存在差异性
select column_name(s) from table_name where column_name between value1 and value2
select column_name(s) from table_name where column_name not between value1 and value2
- alias:为列名称和表名称指定别名
表的SQL ALIAS用法:
select column_name(s)
from table_name as alias_name
列的SQL ALIAS用法:
select column_name(s) as alias_name
from table_name
- join:根据两个或多个表中的列之间的关系,从这些表中查询数据
数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。
inner join:在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
*inner join 和 join相同
select column_name(s)
from table_name1
inner join table_name2
on table_name1.column_name=table_name2.column_name
left join:从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行
*在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN
select column_name(s)
from table_name1
left join table_name2
on table_name1.column_name = table_name2.column_name
right join:从右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行
*在某些数据库中, right JOIN 称为 right OUTER JOIN
select column_name(s)
from table_name1
right join table_name2
on table_name1.c