SQL:查询学习笔记
2013-12-09 15:49
381 查看
SQL 查询命令
SELECT
语法SELECT "column_name"
FROM "table_name";
返回一列
SELECT Username FROM Users
返回多列
SELECT Username, Password From Users
返回所有列
SELECT * FROM Users
DISTINCT
语法SELECT DISTINCT "column_name"
FROM "table_name";
示例
SELECT DISTINCT Name FROM Users
WHERE
语法SELECT "column_name"
FROM "table_name"
WHERE "condition";
示例
SELECT * FROM Users WHERE Username = ‘HappyFramework’
AND OR
语法SELECT "column_name"
FROM "table_name"
WHERE "simple condition"
{ [AND|OR] "simple condition"}+;
AND 示例
SELECT * FROM Orders Where Sales >= 1000 AND Sales <= 5000
OR 示例
SELECT * FROM Orders Where Sales < 1000 OR Sales > 5000
IN
语法SELECT "column_name"
FROM "table_name"
WHERE "column_name" IN ('value1', 'value2', ...);
示例
SELECT * FROM Users WHERE Username IN (Happyframework, shijiucha)
BETWEEN
语法SELECT "column_name"
FROM "table_name"
WHERE "column_name" BETWEEN 'value1' AND 'value2';
示例
SELECT * FROM Orders WHERE Sales BETWEEN 1000 AND 5000
LIKE
语法SELECT "column_name"
FROM "table_name"
WHERE "column_name" LIKE {PATTERN};
% 示例
SELECT * FROM Users WHERE Name LIKE '%光'
_ 示例
SELECT * FROM Users WHERE Name LIKE '段光_'
ORDER BY
语法SELECT "column_name"
FROM "table_name"
[WHERE "condition"]
ORDER BY "column_name" [ASC, DESC] {, "column_name" [ASC, DESC]}+;
示例
SELECT * FROM Users ORDER BY Username ASC
带公式的示例
SELECT * FROM Orders ORDER BY Receipt - Refund
AVG
语法SELECT AVG("column_name")
FROM "table_name";
示例
SELECT AVG(Sales) FROM Sales
COUNT
语法SELECT COUNT("column_name")
FROM "table_name";
示例
SELECT COUNT(DISTINCT *) FROM Sales
MAX
语法SELECT MAX ("column_name")
FROM "table_name";
示例
SELECT MAX(Sales) FROM Sales
MIN
语法SELECT MIN ("column_name")
FROM "table_name";
示例
SELECT MIN(Sales) FROM Sales
SUM
语法SELECT SUM ("column_name")
FROM "table_name";
示例
SELECT SUM(Sales) FROM Sales
GROUP BY
语法SELECT "column_name1", "column_name2", ... "column_nameN", Function("column_nameN+1")
FROM "table_name"
GROUP BY "column_name1", "column_name2", ... "column_nameN";
示例
SELECT Customer, SUM(Sales) FROM Orders GROUP BY Customer
Having
语法SELECT ["column_name1"], Function("column_name2")
FROM "table_name"
[GROUP BY "column_name1"]
HAVING (arithmetic function condition);
示例
SELECT Customer, SUM(Sales) FROM Orders GROUP BY Customer HAVING SUM(Sales) > 10000
ALIAS
语法SELECT "table_alias"."column_name1" "column_alias"
FROM "table_name" "table_alias";
示例
SELECT U.Username 用户名 FROM Users U
AS
语法SELECT "table_alias"."column_name1" "column_alias"
FROM "table_name" "table_alias";
示例
SELECT U.Username AS 用户名 FROM Users AS U
INNER JOIN
语法SELECT "column_name"
FROM "left_table_name"
INNER JOIN "right_table_name" ON "left_table_name"."left_column" = "right_table_name"."right_column";
示例
SELECT Categories.Name, News.Content FROM News INNER JOIN Categories ON News.CategoryId = Categories.Id
OUTER JOIN
语法SELECT "column_name"
FROM "left_table_name"
OUTER JOIN "right_table_name" ON "left_table_name"."left_column" = "right_table_name"."right_column";
示例
SELECT Categories.Name, News.Content FROM News OUTER JOIN Categories ON News.CategoryId = Categories.Id
LEFT OUTER JOIN
语法SELECT "column_name"
FROM "left_table_name"
LEFT OUTER JOIN "right_table_name" ON "left_table_name"."left_column" = "right_table_name"."right_column";
示例
SELECT Categories.Name, News.Content FROM News LEFT OUTER JOIN Categories ON News.CategoryId = Categories.Id
RIGHT OUTER JOIN
语法SELECT "column_name"
FROM "left_table_name"
RIGHT OUTER JOIN "right_table_name" ON "left_table_name"."left_column" = "right_table_name"."right_column";
示例
SELECT Categories.Name, News.Content FROM News RIGHT OUTER JOIN Categories ON News.CategoryId = Categories.Id
CROSS JOIN
语法SELECT "column_name"
FROM "left_table_name", "right_table_name";
示例
SELECT Categories.Name, News.Content FROM News, Categories
UNION
语法[SQL Statement 1]
UNION
[SQL Statement 2];
示例
SELECT Name FROM Users UNION SELECT * FROM Employees
UNION ALL
语法[SQL Statement 1]
UNION ALL
[SQL Statement 2];
示例
SELECT Name FROM Users UNION ALL SELECT * FROM Employees
INLINE VIEW
语法SELECT "column_name" FROM (Inline View);
示例
SELECT * FROM (SELECT * FROM Users)
INTERSECT
语法[SQL Statement 1]
INTERSECT
[SQL Statement 2];
示例
SELECT Txn_Date FROM Store_Information INTERSECT SELECT Txn_Date FROM Internet_Sales;
MINUS
语法[SQL Statement 1]
INTERSECT
[SQL Statement 2];
示例
SELECT Txn_Date FROM Store_Information MINUS SELECT Txn_Date FROM Internet_Sales;
TOP
语法SELECT TOP N [PERCENT] "column_name"
FROM "table_name";
示例
SELECT TOP 2 Store_Name, Sales, Txn_Date FROM Store_Information ORDER BY Sales DESC;
百分比示例
SELECT TOP 25 PERCENT Store_Name, Sales, Txn_Date FROM Store_Information ORDER BY Sales DESC;
SUBQUERY
语法SELECT "column_name1" FROM "table_name1" WHERE "column_name2" [Comparison Operator] (SELECT "column_name3" FROM "table_name2" WHERE "condition");
示例
SELECT SUM (Sales) FROM Store_Information WHERE Store_Name IN (SELECT Store_Name FROM Geography WHERE Region_Name = 'West');
SELECT SUM (a1.Sales) FROM Store_Information a1 WHERE a1.Store_Name IN (SELECT Store_Name FROM Geography a2 WHERE a2.Store_Name = a1.Store_Name);
EXISTS
语法SELECT "column_name1"
FROM "table_name1"
WHERE EXISTS
(SELECT *
FROM "table_name2"
WHERE "condition");
示例
SELECT * FROM Users WHERE EXISTS (SELECT * FROM UserRoleRelations WHERE Users.Id = UserRoleRelations.UserId)
SIMPLE CASE
语法SELECT CASE ("column_name")
WHEN "value1" THEN "result1"
WHEN "value2" THEN "result2"
...
[ELSE "resultN"]
END
FROM "table_name";
示例
SELECT Username, CASE (UserType) WHEN 1 THEN "管理员" WHEN 2 THEN "员工" ELSE "未知" FROM Users
SEARCHED CASE
语法SELECT CASE
WHEN "condition1" THEN "result1"
WHEN "condition2" THEN "result2"
...
[ELSE "resultN"]
END
FROM "table_name";
示例
SELECT Username, CASE WHEN UserType = 1 THEN "管理员" WHEN UserType = 2 THEN "员工" ELSE "未知" FROM Users
相关文章推荐
- SQL学习笔记八 索引,表连接,子查询,ROW_NUMBER
- JAVA学习笔记(四)substring、System.exit(1)、java.text.SimpleDateFormat、==、equals、StringBuffer、SQl动态查询
- Hive中SQL查询转MapReduce作业过程------学习笔记
- 关于SQLServer2005的学习笔记——SQL查询解析步骤
- SQL学习笔记7——插入的同时实现查询
- SQL 查询学习笔记
- myBatis学习笔记(6)——动态SQL & 模糊查询
- SQL学习笔记八 索引,表连接,子查询,ROW_NUMBER
- [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页
- 关于SQLServer2005的学习笔记——SQL查询解析步骤
- SQL学习笔记--多表查询
- SQL学习笔记——SQL中的数据查询语句汇总
- Hibernate学习笔记----QBC和本地SQL查询
- PL/SQL 学习笔记(一)----- pl/sql 基本查询与排序
- CUBRID学习笔记 42 Hierarchical QuerySQL层级查询
- Hibernate学习笔记 -- day10 OID、对象导航查询、原生SQL
- SQL学习笔记11——视图查询
- Oracle Database :Oracle11g SQL开发指南学习笔记之(3):结构化查询语言
- SQL学习笔记[1] - 防注入攻击:一个参数传值+模糊查询的参考写法
- java 从零开始,学习笔记之基础入门<SQL_Server_常用查询>(二十二)