SQL语法

关键词:SQL,语法

这一节,我们讨论一下SQL的语法问题

SQL的查询

这是一个最简单的查询语句

1
2
SELECT prod_id, prod_name
FROM Products;

使用WHERE对查询进行限定

1
2
3
SELECT prod_id, prod_name
FROM Products
WHERE prod_id = 'BNBG01';

对查询的数据进行排序,使用 ORDER BY,其中 DESC 表示降序排列

1
2
3
SELECT prod_id, prod_name
FROM Products
ORDER BY prod_id DESC;

使用 LIKE 与通配符 % 查询字符串

1
2
3
SELECT prod_id, prod_name, prod_price, prod_desc
FROM Products
WHERE prod_name LIKE '%ea%';

使用 NOT 和 IN 进行筛选

1
2
3
4
SELECT prod_id, prod_name
FROM Products
WHERE NOT prod_id IN ('RYL01','RYL02')
ORDER BY prod_name, prod_id;

SQL的联结

SQL的自然联结
1
2
3
4
5
6
SELECT C.*, O.order_num, O.order_date,
OI.prod_id, OI.quantity, OI.item_price
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";

这种在一个表内使用通配符*的联结,最后返回的数据没有重复,但是如果我们如下表达

1
2
3
4
5
6
SELECT C.*, O.*,
OI.prod_id, OI.quantity, OI.item_price
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";

很明显,其中cust_id就重复了。这一点注意

待续……