基本SQL语句 - SELECT语句

SELECT 语句

SELECT 语句从数据库中检索数据并以查询结果的形式将它们返回给我们。

SELECT 语法

SELECT [ ALL | DISTINCT ] { 字段1,字段2,……} –查询字段
[ INTO 临时表 ]
FROM { 表名 | 视图 | 子查询 }
[ WHERE 查询条件 ] –选择记录
[ GROUP BY 字段1,字段2,…… ] –分组查询
[ HAVING 分组查询条件 ] –分组搜索条件
[ ORDER BY 字段1,字段2,…… ] –排序查询结果

{} 是必须的,如查询字段,表名 | 视图 | 子查询
| 是可选的,可以用 ALL 或 DISTINCT,或都不用
[] 是可选的参数,如 WHERE 子句

SELECT 代码实例

 --显示所有员工的名字和姓氏
SELECT first_name, last_name 
FROM employee;

SQL 不区分大小写,但为了坚持一致的编码标准并使代码更具可读性,将 SQL 关键字(如代码中的 SELECT 和 FROM 大写,其他非关键字(如代码中的 first_name 和 last_name)小写。养成一个很好的编码标准受益匪浅,特别是在复杂的查询语句中。

--使用公式 COUNT(*)
SELECT COUNT(*) ...;
--使用表达式 first_name || ' ' || last_name 和 salary * 0.3,公式 LENGTH(first_name)
SELECT first_name || ' ' || last_name, salary * 0.3, LENGTH(first_name) ... ; 
--使用子查询 SELECT AVG(age) FROM employee),查询多字段 first_name 和 last_name
SELECT first_name, last_name, (SELECT AVG(age) FROM employee) ...

SELECT 关键字

  1. SELECT 和 FROM:除非是查询静态值(如 SELECT 2 等),否则一个 SELECT 语句必需的两个关键字是 SELECT 和 FROM,其中 FROM 指定数据源,可以是表、视图或子查询
--查询静态值
SELECT 2; 
SELECT 'SQL';
 
--表
SELECT first_name, last_name 
FROM employee; 
 
--视图
SELECT * 
FROM v_employee; 

--子查询
SELECT first_name, last_name
FROM (
	SELECT *
	FROM employee
	WHERE last_name = 'Kent'
) e1;
 
  1. DISTINCT:如果查询的选择列表中包含一个表的主键,那么每个查询结果记录将是唯一的,否则可能出现重复的记录;当出现重复的记录时,使用关键字 DISTINCT 来消除重复的查询记录
--显示所有员工的名字和姓氏
SELECT first_name, last_name 
FROM employee; 
| first_name | last_name |
|Zhou|Kent|
| Lin| Cherry |
| Zhou| Kent|
| Pan| Tim|

--显示所有员工的名字和姓氏,重复的名词和姓氏( Zhou Kent)会被消除
SELECT DISTINCT first_name, last_name 
FROM employee; 
| first_name | last_name |
|Zhou|Kent|
| Lin| Cherry |
| Pan| Tim|
  1. WHERE:在选择查询结果的某些记录时使用 WHERE 子句
--查询员工Id大于3的所有员工的名字和姓氏
SELECT first_name, last_name 
FROM employee
WHERE employee_id > 3

--查询员工Id大于3,并且姓氏为 Zhou 的所有员工的名字和姓氏
SELECT first_name, last_name 
FROM employee
WHERE employee_id > 3 AND first_name = 'Zhou'

  1. INTO:INTO 子句是 SQL Server 中的一个可选子句,允许您使用查询结果填充表。这在数据库或应用程序的开发过程中非常有用。
--把以上查询结果存到临时表 temp_employee 中,以便后面使用。
SELECT first_name, last_name
INTO #temp_employee
FROM employee
WHERE employee_id > 3;

--从临时表#temp_employee 中检索数据
SELECT *
FROM #temp_employee
  1. GROUP BY:GROUP BY 子句用于使用聚合函数(如前面的 COUNT 或 AVG 等),并指定要让这些聚合函数计算的值
--统计所有员工人数
SELECT COUNT(*)
FROM employee;
--按部门汇总,统计每个部门的员工人数
SELECT dept_id, COUNT(*)
FROM employee
GROUP BY dept_id;
  1. HAVING:像可以使用 WHERE 子句来选择和排除参与查询的各条记录一样,也可以使用 HAVING 子句来选择和排除记录组,它的格式与 WHERE 类似
--按部门汇总,统计每个部门的员工人数,并且每个部门的员工数至少两个
SELECT dept_id, COUNT(*)
FROM employee
GROUP BY dept_id
HAVING COUNT(*) > 2;
  1. ORDER BY:指定查询结构的显示顺序
--按姓氏升序排序
SELECT first_name, last_name
FROM employee
ORDER BY first_name ASC;

SELECT 语句的执行顺序

SELECT 语句没有按照其编写的顺序进行处理。数据库按特定顺序处理子句。了解 SELECT 语句的执行顺序有助于编写高效的查询语句

FROM
ON
JOIN
WHERE
GROUP BY
HAVING
SELECT
DISTINCT
ORDER BY
  1. FROM
  2. ON
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. HAVING
  7. SELECT
  8. DISTINCT
  9. ORDER BY

SELECT 使用总结

SELECT 语句是一种常见的 SQL 语句,它可以像从表中选择几列一样简单,也可以包括联接、函数和分组等复杂的查询方式,甚至还可以使用子查询和其他更高级的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驾驭信息纵横科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值