其中[ALL|DISTINCT|DISTINCTROW]为可选项,代表是否返回重复行。 默认为ALL,返回所有行,包括重复行 DISTINCT与DISTINCTROW都会消除重复行 colunm代表列名,如使用*则代表返回所有列。 使用 column1 AS “别名” 可以更改查询得到的列名为别名
2.拓展参数
查询时需要替换列值时可以用到CASE表达式 SELECT 列名 CASE WHEN 条件1 THEN 表达式1 WHEN 条件2 THEN 表达式2 ELSE 表达式 END AS 列名 FROM …… SELECT 后可以跟表达式 SELECT 1+1返回2 返回计算列值 SELECT cust_id+100; 在返回的列值上加上100
3.聚合函数
通常是数据库系统内置函数,通常与GROUP BY一起使用
-- 假设有一个名为orders的表,其中包含列id, product_name, quantity和price SELECT product_name, COUNT(*) AS total_orders, SUM(quantity) AS total_quantity, AVG(price) AS average_price FROM orders GROUP BY product_name;
又称笛卡儿积 两张表的每一行相乘得到所有可能搭配的结果 可以采用以下两种方式 SELECT column FROM tb1 CROSS JOIN tb2 SELECT column FROM tb1 , tb2 如果tb1记录100,tb2记录200 ,则返回100*200=20000条记录 所有尽量不要使用在大量数据的表中
2.内连接
通过自定义条件进行筛选 SELECT column FROM tb1 INNER JOIN tb2 ON tb1.column=tb2.column ON后的表达式可以有 1.等值连接(=) 2.非等值连接 3.自连接,一个表内不同列值比较,使用时查询列应用必须使用表别名限定
=
等于
<>
不等于
!=
不等于
<
小于
<=
小于等于
>
大于
>=
大于等于
<=>
不会返回UNKNOWN
比较运算符
3.外连接
与内连接相反,返回不满足条件的列值 两张表分为基表和参考表,更注重两种表的关系 分为左外连接和右外连接 左外连接 SELECT co1,co2 FROM tab1 LEFT JOIN tab2 ON tab1.co1=tab2.co2 该表会返回tab1的co1列所有数据,并输出co2数据,如果co2为空则输出null 右外连接 SELECT co1,co2 FROM tab1 RIGHT JOIN tab2 ON tab1.co1=tab2.co2 该表会返回tab2的co2列所有数据,并输出co1数据,如果co1为空则输出null