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()返回某列值之和
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值