SQL必知必会

发布时间 2023-10-29 21:28:38作者: Trouvaille_fighting

第二章 检索数据

2.1 检索不同的值

  • 返回不同的值
SELECT DISTINCT ID
FROM Product;

不能部分使用DISTINCT,作用于所有的列

2.2 限制结果

  • 限制最多返回多少行
SELECT TOP 5 prod_name
FROM Product;

2.3 注释

  • 用--来表示
  • 用/**/来表示

第三章 排序检索数据

3.1 排序函数

  • 按照某个列排序
    • order by 要放到select语句的最后一条子句
    • 通常order by子句中使用的列是显示的列,但是用非检索的列也是完全合法的
SELECT prod_name
FROM Products
ORDER BY prod_name;
  • 按照多个列排序
    • 只有在prod_name相同时,才会按照prod_price排序
SELECT prod_name,prod_price
FROM Products
ORDER BY prod_name,prod_price;
  • 按列位置排序
SELECT prod_name,prod_price
FROM Products
ORDER BY 2,3;
  • 指定排序方向
    • DESC:降序排序
    • ASC:升序排序,默认
SELECT prod_name,prod_price
FROM Products
ORDER BY prod_price DESC;

第四章 过滤数据

4.1 使用WHERE子句

SELECT prod_name,prod_price
FROM Products
WHERE prod_price=3.9

4.2 WHERE子句操作符

  • 等于 =;不等于 <>;不等于 !=;不小于 !<;不大于!>;BETWEEN AND 在指定的两个值之间;IS NULL 为空值
WHERE prod_price BETWEEN 5 AND 10;

第五章 高级数据过滤

5.1 组合WHERE子句

  • AND操作符
  • OR操作符
  • IN操作符
    • IN操作符可以包含其他SELECT语句
WHERE vend_id IN ('DLL01','BRS01')
  • NOT操作符
WHERE NOT vend_id='DLL01'

第六章 用通配符进行过滤

  • % 通配符
    • %表示任何字符出现任意次数
WHERE prod_name LIKE 'Fish%'

  • _ 通配符
    • _表示匹配单个字符
  • 【】通配符
    • 【】 用来指定一个字符集
WHERE prod_name LIKE '[JM]%' --表示用J或M开头的单词
WHERE prod_name LIKE '[^JM]%' --表示不是用J或M开头的单词

第七章 创建计算字段

7.1 拼接字段

SELECT Concat(name,'(',country,')')

7.2 去掉数据中的空格

  • RTRIM()函数
SELECT Concat(RTRIM(name),'(',country,')')

7.3 执行算术计算

select a*b

7.4 使用函数处理数据

7.4.1 文本处理函数

  • 转大写:UPPER()
  • 转小写:LOWER()
  • 返回字符串左边的字符:LEFT()
  • 返回字符串右边的字符:RIGHT()
  • 返回字符串的长度:LEN()、LENGTH()、DATALENGTH()
  • 去掉字符串右边的空格:RTRIM()
  • 提取字符串的组成部分:SUBSTR()或SUBSTRING()

7.4.2 数值处理函数

  • 数的绝对值:ABS()
  • 角度的余弦值:COS()
  • 数的指数值:EXP()
  • 数的平方根:SQRT()

第九章 汇总数据

9.1 聚集函数