SQL Miscellane

SQL Miscellane

如果查询中包括聚合函数,而所选择的列并不在聚合函数中, 那么这些列就必须在 GROUP BY子句中。否则将会出现如下错误:ORA-00937: not a single-group group function


不能在WHERE子句中使用聚合函数来限制行。否则将会出现如下错误:ORA-00934: group function is not allowed here


GROUP BY可以不与HAVING一起使用,但HAVING必须与GROUP BY一起使用


W-G-H的执行顺序
SELECT  type_id,  AVG (price)
FROM  products
WHERE  price < 15
GROUP   BY  type_id
HAVING   AVG (price) > 13 ;
1. WHERE对返回的 行进行过滤
2. GROUP BY对保留的行进行分组
3. HAVING对 分组进行过滤


子查询不能包含ORDER BY


双引号直接用:'The "Great" Gatsby' (表示字符串 The "Great" Gatsby )
单引号要转义:'O''Malley' (表示字符串 O'Malley )

 DML
select column1,column2 from table
insert into table(column1,column2) value s('a','b')
update table set column1='a' where column2='b'
delete from table where column1='a'


--外连接,使用叉积表达有歧义,不运行:查询中包含不允许的外联接请求。
select * from a,b,c
        where a.a_id*=b.a_id
            and b.b_id*=c.b_id

--这样就不存在歧义性了
select * from a
    LEFT OUTER JOIN b on (a.a_id=b.a_id)
    LEFT OUTER JOIN c on (b.b_id=c.b_id)

你可能感兴趣的:(SQL Miscellane)