SQL高级语句详解
通配符 -- 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符
SQL 通配符必须与 LIKE 运算符一起使用
例: 1.以 "A" 或 "L" 或 "N" 开头 [ALN]%
2.不以 "A" 或 "L" 或 "N" 开头 [!ALN]%
3.第一个字符之后是 "eorge" _eorge
TOP 子句 -- TOP 子句用于规定要返回的记录的数目(并非所有的数据库系统都支持 TOP 子句)
SELECT TOP number|percent column_name(s) FROM table_name
单number表示取前number个数据|后加percent表示取前百分之number个数据
LIKE 操作符 -- LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式
SELECT column_name(s) FROM table_name WHERE column_name
(NOT) LIKE pattern(%a%)
"%" 可用于定义通配符(模式中缺少的字母)
IN 操作符 -- IN 操作符允许我们在 WHERE 子句中规定多个值
SELECT column_name(s) FROM table_name WHERE column_name
IN (value1,value2,...)
BETWEEN 操作符 -- 操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围
这些值可以是数值、文本或者日期(可用于字母顺序)
SELECT column_name(s) FROM table_name WHERE column_name
(NOT)BETWEEN value1 AND value2
不同的数据库对 BETWEEN...AND 操作符的处理方式有差异(头尾包含
Alias(别名) -- 通过使用 SQL,可以为列名称和表名称指定别名(Alias)
表语法 -- SELECT column_name(s) FROM table_name AS alias_name
列语法 -- SELECT column_name AS alias_name FROM table_name
JOIN -- join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据
下面列出了可以使用的 JOIN 类型,以及它们之间的差异。
- JOIN: 如果表中有至少一个匹配,则返回行
- LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN: 只要其中一个表中存在匹配,就返回行
INNER JOIN 关键字 -- 在表中存在至少一个匹配时,INNER JOIN 关键字返回行
SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
LEFT JOIN 关键字 -- LEFT JOIN 关键字会从左表(table_name1)那里返回所有的行
SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
RIGHT JOIN 关键字 -- RIGHT JOIN 关键字会右表(table_name2)那里返回所有的行
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
FULL JOIN 关键字 -- 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行
SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name
UNION 和 UNION ALL 操作符 -- UNION 操作符用于合并两个或多个 SELECT 语句的结果集
UNION 内部的 SELECT 语句必须拥有相同数量的列
列也必须拥有相似的数据类型
每条 SELECT 语句中的列的顺序必须相同
SELECT column_name(s) FROM table_name1 UNION
(ALL)SELECT column_name(s) FROM table_name2
UNION 操作符选取不同的值,允许重复的值使用 UNION ALL
SELECT INTO 语句 -- SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中
SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档
SELECT * / column_name(s) INTO new_table_name
[IN externaldatabase] FROM old_tablename
CREATE DATABASE 语句 -- CREATE DATABASE 用于创建数据库
CREATE DATABASE database_name
CREATE TABLE 语句 -- CREATE TABLE 语句用于创建数据库中的表
CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型,, .... )