SQL--DML复习总结(一)

SQL--DML最常用的SQL语句就是SELECT语句了。

1、SELECT语句的用途是从一个或多个表中检索信息。

  • SELECT 列名
              FROM 表名

这是SELECT最基本的用法,检索单个列

如果没有明确排序查询结果,则返回的数据的顺序没有特殊意义。返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常的。

  • SELECT 列名1,列名2,...列名n
              FROM 表名

从一个表中检索多个列,列名之间用逗号分隔,最后一列后面不加逗号。
SQL语句一般返回原始的,无格式的数据。数据的格式化是一个表示问题,而不是一个检索问题。因此表示一般在显示该数据的应用程序中规定,一般很少使用实际检索出来的数据。      

  • SELECT *
              FROM 表名

检索所有列。星号是通配符,表示所有列。

一般,除非确实需要表中的每个列,否则最好别使用*通配符。检索不需要的列通常会降低检索和应用程序的性能。

使用通配符有一个优点,由于不明确指定列名,所以能检索出名字未知的列。

  • SELECT后面可以指定ALL或者不给参数(因为ALL是默认行为)

             SELECT后面可以指定DISTINCT参数,表示只包含不同的值。

2、SELECT子句及其顺序

从上往下依次是子句从前往后的顺序:

SELECT子句及其顺序
子句说明是否必须使用
SELECT要返回的列或表达式
FROM从中检索数据的表仅在从表选择数据时使用
WHERE行级过滤
GROUP BY分组说明仅在按组计算聚集时使用
HAVING组级过滤
ORDER BY输出排序顺序

3、聚集(组)函数:运行在行组上,计算和返回单个值的函数。

  • AVG()
AVG()通过对表中行数计数并计算特定行值之和,求得该行的平均值。忽略NULL的行。

例:返回所有产品的平均值

[sql]  view plain copy
  1. SELECT AVG(prod_price) AS avg_price  
  2. FROM Products;  

AVG()也可以用来确定特定行或列的平均值。一般加上 WHERE语句进行过滤。

例:

[sql]  view plain copy
  1. SELECT AVG(prod_price) AS avg_price  
  2. FROM Products  
  3. WHERE vend_id = 'DLL01';  

  • COUNT()
COUNT()函数用来计数,主要有两种方式:

  1. 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值 (NULL)还是非空值;
  2. 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。
例:

[sql]  view plain copy
  1. SELECT COUNT(*) AS num_cust  
  2. FROM Customers;  

在这个例子里,对所有行计数,不管行中各列有什么值。

例:

[sql]  view plain copy
  1. SELECT COUNT(cust_email) AS num_cust  
  2. FROM Customers;  

这个例子只对具有电子邮件地址的客户计数。

  • MAX()
MAX()返回指定列中的最大值。要求指定列名。

对于数值数据,返回最大值,对于非数值数据,如果按相应的列排序,则返回最后一行。

忽略NULL值。

  • MIN()
MIN()返回指定列中的最小值。要求指定列名。

对于数值数据,返回最小值,对于非数值数据,如果按相应的列排序,则返回最前面一行。
忽略 NULL值。

  • SUM()
SUM()用来返回指定列值的和(总计)。

忽略NULL值。


4、使用数据处理函数UPPER(),SOUNDEX(),ABS()等

与几乎所有DBMS都等同地支持SQL语句 (如SELECT)不同,每一个DBMS都有特定的函数。事实上,只有少数几个函数被所有主要的DBMS等同地支持。可见,与SQL语句不同,SQL函数不是可移植的。

如果决定使用函数,应该保证做好代码注释,以便以后可以确切地知道所编写SQL代码的含义。

大多数SQL实现支持以下类型的函数:

  • 文本处理函数
TRIM()函数是去掉空格的函数。

其余常见的文本处理函数如下:

常用的文本处理函数
函数说明
LEFT()或使用子字符串函数返回串左边的字符
LENGTH()也使用DATALENGTH()或LEN()返回串的长度
LOWER()将串转换为小写
LTRIM()去掉串左边的空格
RIGHT()返回串右边的字符
RTRIM()去掉串右边的空格
SOUNDEX()返回串SOUNDEX值
UPPER()将串转换为大写

SOUNDEX()是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。

例如:表中有一个顾客Michelle Green。但是如果这是输入错误的名字,实际应该是Michael Green,应该的处理方式如下:

[sql]  view plain copy
  1. SELECT cust_name,cust_contact  
  2. FROM Customers  
  3. WHERE SOUNDEX(cust_contact) = SOUNDEX('Michael Green');  

  • 日期和时间处理函数
  • 数值处理函数
在主要的DBMS函数中,数值处理函数是最一致最统一的函数。

常用数值处理函数
函数说明
ABS()返回一个数的绝对值
COS()返回一个角度的余弦
EXP()返回一个数的指数值
PI()返回圆周率
SIN()返回一个角度的正弦
SQRT()返回一个数的平方根
TAN()返回一个数的正切值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值