SQL基础操作

2021-01-04  本文已影响0人  Yazh
image.png image.png image.png

子查询

  1. 利用子查询进行过滤
SELECT col1, col2 FROM table1
WHERE col3 IN (SELECT col FROM table2);
  1. 作为计算字段使用
SELECT col1, col2, 
(SELECT col1 FROM table2 WHERE table1.col = table2.col) AS col3
FROM table1;

子查询中的WHERE语句必须限定列名,否则就是与自身比较。

WHERE table1.col = table2.col

组合查询

两种情况下使用:

  1. 在一个查询中从不同的表返回结构数据
  2. 对一个表执行多个查询,按一个查询返回数据
SELECT cust_name FROM Customers 
WHERE cust_state IN('IL','IN')
UNION
SELECT cust_name FROM Customers
WHERE cust_name = 'Fun4All';

联结表

  1. 创建联结
SELECT vend_name, prod_name, prod_price 
FROM Vendors, Products
WHERE Vendors.vend_id = Products.vend_id; 

WHERE子句作为过滤条件(联结条件),没有WHERE子句,第一个表的每一行将与第二个表的每一行配对,而不管它们逻辑是否正确(笛卡尔积)

  1. 自然联结
SELECT C.*, O.order_num, OI.prod_id
FROM Customers AS C, Orders AS O, OrderItems AS OI
WHERE C.cust_id = O.cust_id
 AND OI.order_num = O.order_num
 AND prod_id = 'RGAN01'; 

Customers AS C #使用表别名

  1. 高级联结
image.png image.png image.png

SQL 执行顺序

image.png
上一篇 下一篇

猜你喜欢

热点阅读