1、SELECT TOP 子句:用于规定要返回的记录的数目,对于拥有数千条记录的大型表来说,是非常有用的。
SQL语法格式:select top number|percent 【column_name,】from table_name;//以number或百分比的形式查询一定量数据。
MySQL语法格式:select 【column_name,】from table_name limit number;
Oracle语法格式:select 【column_name,】from table_name where rownum<=number;
(注意:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。)
2、Like&Not Like操作符:用在where子句中进行模糊查询。
语法格式:select 【column_name,】 from table_name where column_name like pattern;
(pattern为匹配模式,'%'代表任意多个字符,'_'代表一个字符,当匹配模式中有'_'或'%'时用escape来进行转义)
SQL中的通配符:(常在where子句中与like一起使用)
通配符 | 描述 |
---|---|
% | 替代 0 个或多个字符 |
_ | 替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] 或 [!charlist] | 不在字符列中的任何单一字符 |
MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
3、IN操作符:IN 操作符允许您在 WHERE 子句中规定多个值。
语法格式:select 【column_name,】 from table_name where column_name in (value1,value2,....);
4、Between And操作符:选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
语法格式:select 【column_name,】 from table_name where column_name between value1 and value2;
5、SQL 别名的使用:为表名称或列名称指定别名,让列名称的可读性更强。
语法格式:select column_name as 'new_column_name' from table_name as 'new_table_name'
6、SQL Join连接:用于把来自两个或多个表的行结合起来。(下图展示出sql的各种连接关系)
不同的SQL连接:(连接涉及到多表查询,可以说是sql中的一个重点)
(1) INNER JOIN(JOIN):如果表中有至少一个匹配,则返回行;(注:INNER JOIN 与 JOIN 是相同的。)
语法格式:select 【column_name,】
from table_name1 join table_name2
on table1.column_name=table2.column_name;(要有相同的属性列)
查询结果:(包含两表中的所有属性,即新表属性=旧表属性之和)
(2) LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行;
语法格式:select 【column_name,】
from table_name1 left join table_name2
on table1.column_name=table2.column_name;(要有相同的属性列)
查询结果:(保留左表中所有数据,对于右表中没有的用NULL值处理)
(3) RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行;
语法格式:select 【column_name,】
from table_name1 right join table_name2
on table1.column_name=table2.column_name;(要有相同的属性列)
查询结果:(保留右表中所有数据,对于左表中没有的用NULL值处理)
(4) FULL JOIN:只要其中一个表中存在匹配,则返回行;
语法格式:select 【column_name,】
from table_name1 full join table_name2
on table1.column_name=table2.column_name;(要有相同的属性列)
查询结果:(保留左右表中所有数据,对于左右表中没有的用NULL值处理)
注释:FULL OUTER JOIN 关键字返回左表(Websites)和右表(access_log)中所有的行。如果 "左" 表中的行在 "右" 中没有匹配或者 "右" 表中的行在 "左" 表中没有匹配,也会列出这些行。MySQL中不支持 FULL OUTER JOIN。
7、SQL UNION操作符:用于合并两个或多个 SELECT 语句的结果集。UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
语法格式:select 【column_name,】from table_name
union [ all ]
select 【column_name,】from table_name;
(注:UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。)
查询结果:(实现两表查询结果的并集,列名与第一个select语句一致)
8、Select Into语句:从一个表复制数据,然后把数据插入到另一个新表中。(实现数据的拷贝)
语法格式:select 【column_name,】into new_table_name from table_name;
查询结果:(将查询数据写入新表中去,MySql中不支持此语法但支持insert into table_name select 语句)