SQL 高级查询
来源:互联网 发布:妇人之仁 知乎 编辑:程序博客网 时间:2024/06/03 13:52
1.TOP
TOP 子句用于规定要返回的记录的数目。
对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
语法:
SELECT TOP number|percent column_name(s)FROM table_name
例:
SELECT TOP 1
* FROM Persons
SELECT TOP 25 PERCENT
* FROM Persons
2.LIKE
通配符:
%替代一个或多个字符_仅替代一个字符[charlist]字符列中的任何单一字符[^charlist]
或者
[!charlist]
不在字符列中的任何单一字符LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
语法:
SELECT column_name(s)FROM table_nameWHERE column_name LIKE pattern
上面的 "Persons" 表中选取居住在以 "N" 开始的城市里的人:
SELECT * FROM PersonsWHERE City LIKE 'N%'
从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人:
SELECT * FROM PersonsWHERE City LIKE '%g'
从 "Persons" 表中选取居住在包含 "on" 的城市里的人:
SELECT * FROM PersonsWHERE City LIKE '%on%'
从 "Persons" 表中选取居住在不包含 "on" 的城市里的人:
SELECT * FROM PersonsWHERE City NOT LIKE '%on%'
从 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:
SELECT * FROM PersonsWHERE FirstName LIKE '_eorge'
从"Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:
SELECT * FROM PersonsWHERE City LIKE '[ALN]%'
从"Persons" 表中选取居住的城市不以"A" 或 "L" 或 "N" 开头的人:
SELECT * FROM PersonsWHERE City LIKE '[!ALN]%'
3.IN
IN 操作符允许我们在 WHERE 子句中规定多个值。
语法:
SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,...)
从Persons表中选取姓氏为 Adams 和 Carter 的人:
SELECT * FROM PersonsWHERE LastName IN ('Adams','Carter')
4.BETWEEN
操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
语法:
SELECT column_name(s)FROM table_nameWHERE column_nameBETWEEN value1 AND value2
以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人:
SELECT * FROM PersonsWHERE LastNameBETWEEN
'Adams'AND
'Carter'
以字母顺序显示不介于 "Adams"(包括)和 "Carter"(不包括)之间的人:
SELECT * FROM PersonsWHERE LastNameNOT BETWEEN
'Adams'AND
'Carter'
例:日期:
SELECT * FROM Users
WHERE AddTime
BETWEEN '2010-3-29 11:26:00.000' AND '2010-3-31 10:09:24.999'
5.Alias
通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
语法:
SELECT column_name(s)FROM table_nameAS alias_name
将LastName设置其别名为Family,FirstName为Name:
SELECT LastName AS Family
, FirstName AS Name
FROM Persons
6.join
join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据
JOIN(INNER JOIN): 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
JOIN(INNER JOIN)语法:
INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "Persons" 中的行在 "Orders" 中没有匹配,
就不会列出这些行。
SELECT column_name(s)FROM table_name1INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
LEFT JOIN 语法:
LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。
SELECT column_name(s)FROM table_name1INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
RIGHT JOIN 语法:
RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。
SELECT column_name(s)FROM table_name1RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
FULL JOIN 语法:
FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 中的行在表
"Orders" 中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出。
SELECT column_name(s)FROM table_name1FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name
- SQL高级查询
- SQL高级查询相关
- sql高级语句查询
- SQL高级查询技巧
- sql高级查询
- SQL高级查询技巧
- sql数据库高级查询
- sql -transql 高级查询
- Sql高级查询
- sql高级查询
- SQL高级查询
- SQL·高级查询
- SQL高级查询语句
- sql server高级查询
- ms sql 高级查询
- SQL高级查询
- SQL高级查询练习题
- SQL高级查询技巧
- 关于java中定时器的实现 三种方式
- 718AEfim and Strange Grade
- UVa OJ 11400 - Lighting System Design
- Tyche.cc 上线!
- 设计模式之组合模式-树形结构的处理
- SQL 高级查询
- Drools6.4 Eclipse插件安装
- 一道网易面试题
- 插入与归并
- 【Hibernate】Hibernate系列(二)
- 简单对各种网络协议的认识
- 聊聊IO多路复用之select、poll、epoll详解
- Invert Binary Tree(反转二叉树)
- centos7中关于mysql自动备份及tomcat服务自动启动的设置方法