数据检索

数据检索

where子句

比较符运算

  • 等于 =
  • 不等于 <>或者!=
  • 小于 <
  • 小于等于 <= 或者 !>
  • 大于 >
  • 大于等于 >=或者 !<
  • 两数之间 BETWEEN AND
  • 为空 IS NULL

在mysql中不支持!> !<操作

逻辑运算

  • 并且 AND
  • 或者 OR
  • 在指定范围内 IN
  • 非 NOT

LIKE 通配符过滤

SELECT name FROM user WHERE name LIKE '%太%'

%百分号代表一个或者多个
_下划线代表一个

由于数据库的最左前缀原则,如果左侧未确定,那么数据则会全表扫描

SQL函数

算术函数

  • ABS() 绝对值
  • MOD() 取余
  • ROUND() 四舍五入指定的小数位,需要两个参数,字段名和小数位

eg…

SELECT ABS(-1)     1
SELECT MOD (101,3) 2
SELECT ROUND(72.25,1) 72.3

字符串函数

  • CONCAT() 多字符串拼接
  • LENGTH() 计算字符长度,汉字算3个数字字母算1个
  • CHAR_LENGTH() 计算字符串长度,汉字数字字母均算一个
  • LOWER() 转换小写
  • UPPER() 转换大写
  • PERLACE() 替换函数,三个参数:要替换的表达式或字段名,像查找的被替换的字符串,替换成哪个字符串
  • SUBSTRING() 截取字串,三个参数:待截取的表达式或字段名,开始截取的位置,想要截取的字符串的长度

eg…

SELECT CONCAT('abc','123')    abc123
SELECT LENGTH('函数')   6
SELECT CHAR_LENGTH('函数')  2
SELECT LOWER('ABC')   abc
SELECT UPPER('abc')   ABC
SELECT REPLAE('fabcd','abc','123')  f123d
SELECT SUBSTRING('fabcd',1,3)  fab

日期函数

  • CURRENT_DATE() 系统当前日期
  • CURRENT_TIME() 系统当前时间,没具体日期
  • CURRENT_TIMESTAMP() 系统当前时间,包括具体的日期
  • EXTRACT() 抽取具体的年,月,日
  • DATE() 返回时间的日期部分
  • YEAR() 返回时间的年部分
  • MONTH() 返回时间的月份部分
  • DAY() 返回时间的天数部分
  • HOUR() 返回时间的小时部分
  • MINUTE() 返回时间的分钟部分
  • SECOND() 返回时间的秒部分

eg…

SELECT CURRENT_DATE();
SELECT_CURRENT_TIME();
SELECT CURRENT_TIMESTAMP();
SELECT EXTRACT(YEAR FROM '1999-09-09') 1999
SELECT DATE('2019-09-09 09:09:09') 2019-09-09

转换函数

  • CAST() 数据类型转换,参数是一个表达式,表达式通过AS关键词分割为两个参数,分别是原始数据类型和目标数据类型
  • COALESCE() 返回一个非空数值
SELECT CAST(123.123 AS INT)   ERROR
SELECT CAST(123.123 AS DECIMAL(8,2)) 123.12
SELECT COALESCE(null,1,2)  1

注意:CAST转换小数不会四舍五入,所以小数转换整数会直接报错,可以通过DECIMAL转换小数类型,第一个参数为总位数,第二个参数为小数位数.

聚合函数

  • 总行数 COUNT()
  • 最大值 MAX()
  • 最小值 MIN()
  • 求 和 SUM()
  • 平均值 AVG()

分组统计

GROUP BY()

按照不同的数据进行分组后再进行聚合统计

在分组中如何过滤?HAVING

注意:查询关键字的顺序SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...

EXIST 子查询

  • EXIST() 判断后者是否存在
  • NOT EXIST 判断后者是否不存在

集合比较子查询

  • IN 在集合中
  • ANY 和比较符同时使用,与子查询中返回的任何值做比较
  • ALL 和比较符同时使用,与子查询中返回的所有值做比较
  • SOME 和any一致,但是常常用any
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值