SQL必知必会PartOne---SQL基础之二

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. 数据处理函数

    1. 文本处理函数

常用的文本处理函数

函数 说明
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() 返回某列值之和

猜你喜欢

转载自blog.csdn.net/long_zhiqi/article/details/80628782