又复习了一遍oracle数据库

【key】
PRIMARY KEY主键:只能有一个
UNIQUE唯一约束: 确保每一行的数据是唯一的。比如email unique就不能加两条数据都是一样的email
CHECK:添加条件
----
【数据过滤】
DISTINCT:只查不重复的数据。//SELECT DISTINCT state FROM locations,就只有不重复的state
AND OR可以一起用,加括号就行了
IN:匹配列表中的任何值。//SELECT order_id,customer_id,status,salesman_id FROM orders WHERE salesman_id IN (54,55,56)
BETWEEN AND:指定一个范围
UNION,INTERSECT,MINUS
----
【连接表】
LEFT JOIN:左表的数据一定有
CROSS JOIN笛卡尔连接:硬乘,有两个有m和n行的表,这些表的笛卡尔乘积就有m × n行。
自连接:自己连接自己。需要指出别名。总有麻烦的employee-manager问题:

SELECT
    (e.first_name || '  ' || e.last_name) employee,
    e.job_title,
    (m.first_name || '  ' || m.last_name) manager    
FROM
    employees e
LEFT JOIN employees m ON
    m.employee_id = e.manager_id
ORDER BY
    manager;

----
【分组数据】
GROUP BY:就是提出一个依据,把一条一条的数据分成一组。//SELECT status FROM orders GROUP BY status;
HAVING:分组完了再加个条件
----
【子查询】
就是嵌套查询咯。

SELECT
product_id, product_name, list_price
FROM
products
WHERE
list_price = (
SELECT
MAX( list_price )
FROM
products

EXISTS全选。查询下单了的客户:

SELECT
name
FROM
customers c
WHERE
EXISTS (
SELECT
1
FROM
orders
WHERE
customer_id = c.customer_id
)
ORDER BY
name;


ANY,SOME和ALL也能用用
----

 

 

 

 

原文地址:https://www.cnblogs.com/immiao0319/p/14414335.html