PartOne—SQL基础之二
目录
数据过滤
1. 数据过滤
2. 通配符过滤
计算字段与函数
1. 创建计算字段
2. 数据处理函数
3. 汇总函数
正文
数据过滤
1. 数据过滤
关键字:WHERE
- 在WHERE子句中可以使用操作符,例如:= , > , < , >= , != ,BETWEEN , IS NULL 等。
例子:
SELECT student_name , age
FROM student
WHERE age >= 18 ;
SELECT student_name , age
FROM student
WHERE age BETWEEN 18 AND 20 ;
- 同时在WHERE子句中可以使用组合,称为组合WHERE子句,以及其他操作符。例如AND , OR , IN ,NOT
SELECT student_name , age
FROM student
WHERE student_name IN ('long' , 'xin') ;
SELECT student_name , age
FROM student
WHERE age = 18 AND student_name = 'long' ;
SELECT student_name , age
FROM student
WHERE age = 18 OR age = 19 ;
SELECT student_name , age
FROM student
WHERE NOT student_name = 'long'
BODER BY age ;
2. 通配符过滤
- 通配符:用来匹配值的一部分的特殊字符 关键字: LIKE
1 . 百分号 % :表示任何字符出现任意次数
SELECT prod_id , prod_name
FROM products
WHERE prod_name LIKE 'long%' ;
SELECT prod_id , prod_name
FROM products
WHERE prod_name LIKE '%long%' ;
2 . 下划线 _ :表示任何字符,但是只匹配单个字符
SELECT prod_id , prod_name
FROM products
WHERE prod_name LIKE '%long __' ; --表示匹配两个字符注意长度
SELECT prod_id , prod_name
FROM products
WHERE prod_name LIKE '%long _' ; --表示匹配一个字符注意长度
3 . 方括号 [ ] : 用来制定一个字符集,它必须匹配指定位置的一个字符
SELECT student_name
FROM student
WHERE student_name LIKE '[lx]%' ; --匹配以 l 和 x 开头的名字
- 不要过度的使用通配符。如果其他操作符可以达到相同的目的,应该使用其他操作符。
- 在确实需要使用通配符时,尽量不要将其放到字符串的开始处,因为这样做的检索速度最慢。
- 仔细注意通配符的位置。
计算字段与函数
1. 创建计算字段
- 计算字段:存储在表中的数据都不是应用程序所需要的,我们需要直接从数据库中检索出转换、计算或格式化过的数据。
- 拼接字段:将值联结到一起,构成单个值。此操作符可用 + 或 两个竖杠 || 表示。(MySQL 和 MariaDB 中 ,必须使用特殊的函数。
SELECT vend_name + '(' + vend_country + ')'
FROM vendors
ORDER BY vend_name;
SELECT vend_name || '(' || vend_country || ')'
FROM vendors
ORDER BY vend_name;
--MySQL 或 MariaDB
SELECT Concat( vend_name , '(' , vend_country , ')' )
FROM vendors
ORDER BY vend_name;
TRIM 函数:RTRIM()去掉右边的空格 , LTRIM()去掉左边的空格。TRIM()去掉左右两边的空格。
SELECT RTRIM(vend_name) + '(' + RTRIM(vend_country) + ')' AS vend_title
FROM vendors
ORDER BY vend_name ; --AS 使用的是别名。
- 执行算术字段:运用基本的算术原则(加减乘除)
SELECT prod_id , quantity , item_price ,quantity*item_price AS expanded_price
FROM orderitems
WHERE order_num = 2008;
2. 数据处理函数
-
- 文本处理函数
常用的文本处理函数
函数 | 说明 |
---|---|
LEFT() | 返回字符串左边的字符 |
LENGTH() | 返回字符串长度 |
LOWER() | 将字符串转换为小写 |
LTRIM() | 去掉字符串左边的空格 |
RIGHT() | 返回字符串右边的字符 |
RTRIM() | 去掉字符串右边的空格 |
SOUNDEX() | 返回字符串的SOUNDEX值( 模糊匹配 ) |
UPPER() | 将字符串转换为大写 |
SELECT vend_name ,UPPER(vend_name) AS vend_name_upcase
FROM vendors
ORDER BY vend_name ;
- 2 . 日期和时间处理函数:每种数据库的获取时间的函数都各有不同这里只举例Oracle 和 MySQL
--Oracle
SELECT order_num
FROM orders
WHERE to_number(to_char(order_date , 'YYYY')) = 2012 ;
--MySQL
SELECT order_num
FROM orders
WHERE YEAR(order_date) = 2012 ;
- 3 . 数值处理函数
常用的数值处理函数
函数 | 说明 |
---|---|
ABS() | 返回一个数的绝对值 |
COS() | 返回一个角度的余弦 |
SIN() | 返回一个角度的正弦 |
PI() | 返回圆周率 |
EXP() | 返回一个数的指数 |
SQRT() | 返回一个数的平方根 |
TAN() | 返回一个角度的正切 |
3. 汇总函数
SQL聚集函数
函数 | 说明 |
---|---|
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列值之和 |