数据库复习笔记——SELECT 大全

本文是关于数据库查询的深入探讨,重点聚焦于SELECT语句的使用。从基础的字段选择,到复杂的联接操作,再到子查询和聚合函数的应用,全方位解析如何高效地从数据库中提取所需信息。
摘要由CSDN通过智能技术生成
SELECT 语句的一般格式:

   
   
   
  1. SELECT [ALL|DISTINCT] <目标列表达式>[别名][,<目标列表达式> [别名]] ...
  2. FROM <表名/视图名> [别名] [, <表名/视图名> [别名]]... | (<select 语句>) [AS] <别名>
  3. [WHERE <条件表达式>]
  4. [GROUP BY <列名1> [HAVING <条件表达式>]]
  5. [ORDER BY <列名2> [ASC | DESC]];

1. 目标列表达式的可选格式
 (1) *
 (2)<表名.>*
 (3)COUNT([DISTINCT|ALL] *) 
 (4) [<表名.>]<属性列名表达式>[, [<表名.>]<属性列名表达式> ]...
 Tips:  <属性列名表达式> 可以是由属性列、作用于属性列的聚集函数、属性和常量的任意算术运算(+、-、*、/)组成的运算公式。
  eg.  表达式
   
   
   
  1. mysql> SELECT Sname,2016-Sage FROM Student;
  2. +--------+-----------+
  3. | Sname | 2016-Sage |
  4. +--------+-----------+
  5. | Jason | 1995 |
  6. | Taylor | 1995 |
  7. | dsf | 1995 |
  8. +--------+-----------+
  9. 3 rows in set (0.03 sec)
eg. 字符串常量、函数
   
   
   
  1. mysql> SELECT Sname,'Year of Birth:',2016-Sage,LOWER(Sdept) FROM Student; // 小写字母表示系名
  2. +--------+----------------+-----------+--------------+
  3. | Sname | Year of Birth: | 2016-Sage | LOWER(Sdept) |
  4. +--------+----------------+-----------+--------------+
  5. | Jason | Year of Birth: | 1995 | ele |
  6. | Taylor | Year of Birth: | 1995 | ele |
  7. | dsf | Year of Birth: | 1995 | ele |
  8. +--------+----------------+-----------+--------------+
  9. 3 rows in set (0.05 sec)

eg. 查询时可以指定别名,这对于算术表达式、常量、函数名的目标列表达尤为有用.
   
   
   
  1. mysql> SELECT Sname NAME,'Year of Birth:' BIRTH,2016-Sage BIRTHDAY,LOWER(Sdept) DEPARTMANT FROM Student;
  2. +--------+----------------+----------+------------+
  3. | NAME | BIRTH | BIRTHDAY | DEPARTMANT | // 指定别名,界面友好性。
  4. +--------+----------------+----------+------------+
  5. | Jason | Year of Birth: | 1995 | ele |
  6. | Taylor | Year of Birth: | 1995 | ele |
  7. | dsf | Year of Birth: | 1995 | ele |
  8. +--------+----------------+----------+------------+
  9. 3 rows in set (0.00 sec)

2.聚集函数的一般格式

 COUNT(*)                        统计元组的个数
 COUNT([DISTINCT|ALL] <列名>)    统计一列中值的个数
 SUM([DISTINCT|ALL] <列名>)      计算一列值的总和(此列必须是数值型)
 AVG ([DISTINCT|ALL] <列名>)      计算一列值的平均值( 此列必须是数值型
 MAX( [DISTINCT|ALL] <列名> )      求一列值中的最大值
 MIN( [DISTINCT|ALL] <列名> )      求一列值中的最小值

DISTINC 短语,指明在计算时要取消指定列中的重复值。默认为ALL,表示不取消重复值。
当聚集函数遇到空值时,除COUNT(*)外,都跳过空值而只处理非空值。 COUNT(*)对元组进行计数时,包含空值所在的元组。

注意: WHERE 子句中是不能用聚集函数作为条件表达式的。 聚集函数只能用于 SELECT子句 和 GROUP BY 中的 HAVING 子句。



  
  
  
  1. SELECT COUNT(*) FROM Student;  // 查询学生总人数 
  2. mysql> SELECT COUNT(*) FROM Student; +----------+ | COUNT(*) | +----------+ | 3 | +----------+ 1 row in set (0.04 sec)
   
   
   
  1. SELECT COUNT(DISTINCT Sno) FROM SC
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值