SQL:
select
update
top
like:搭配通配符:
通配符:
%:替代一个或多个字符;
_替代一个字符;
[charlist]:charlist 中任意单一字符: select * from table where column like '%[lon]%'//包含lon三个中任意一个的
[^/!charlist]:与上面的相反;
between..and..
可以是数值,文本,日期...;
不使用别名的 SELECT 语句:
as还可以用于查询结果:
现在我们希望查找客户 "Bush" 或 "Adams" 拥有超过 1500 的订单总金额。
我们在 SQL 语句中增加了一个普通的 WHERE 子句:
select
select * from 表名;
order by
用于根据指令的列对结果集进行排序,默认是升序,DESC是降序的关键字;
insert
insert into表 values (值1,值2,值3,...);
insert into表(列1,列2,列3,...) values (值1,值2,值3,...);
update
update 表 set 列名=新值where列名=旧值;
top
select top 5 *from table /select top 50 percent * from table(此用法mysql和oracle一样)
mysql:select * from table limit 5;
oracle:select * from table where rownum<=5;
like:搭配通配符:
select * from table where column like 'L%'//L开头的
select * from table where column not like '%Lon%'//不包含Lon的
通配符:
%:替代一个或多个字符;
_替代一个字符;
[charlist]:charlist 中任意单一字符: select * from table where column like '%[lon]%'//包含lon三个中任意一个的
[^/!charlist]:与上面的相反;
in
允许在where子句中定义多个值:
select * from table where column in (vlaue1,value2,...);
between..and..
可以是数值,文本,日期...;
Alias 实例: 使用表名称别名
假设我们有两个表分别是:"Persons" 和 "Product_Orders"。我们分别为它们指定别名 "p" 和 "po"。
现在,我们希望列出 "John Adams" 的所有定单。
我们可以使用下面的 SELECT 语句:\
SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'
不使用别名的 SELECT 语句:
SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons, Product_Orders
WHERE Persons.LastName='Adams' AND Persons.FirstName='John'
as还可以用于查询结果:
SELECT LastName AS Family, FirstName AS Name FROM Persons
结果:
having
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
SQL HAVING 语法
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
现在我们希望查找客户 "Bush" 或 "Adams" 拥有超过 1500 的订单总金额。
我们在 SQL 语句中增加了一个普通的 WHERE 子句:
SELECT Customer,SUM(OrderPrice) FROM Orders
WHERE Customer='Bush' OR Customer='Adams'
GROUP BY Customer
HAVING SUM(OrderPrice)>1500
case
select sum(case when 条件 then 要查询的内容 else 要查询的另一个内容 end)as 内容 from 表 where 附加条件;