数据库相关知识点(整理中)

常用的聚合函数有哪五种?

count()、sum()、avg()、min()、max()

count():求表的行数或者指定表中某个列的列值行数,null值被忽略

select count(字段) from 表名 --得到该列值的非null值的行数

select count(*) from 表名  --用于统计整个表的行数。任何行,只要有一行非null,则整个表的行数就会被统计上。全为null(不会出现该情况)则不被统计

sum():返回指定数据的和,只能用于数字列,null值被忽略

select sum(salary) from emp   --求所有salary的总和

max():返回一列中的最大值,null值被忽略

select max(column_name) from table_name

min():返回一列中的最小值,null值被忽略

select max(column_name) from table_name

avg():返回数值列的平均值,null值被忽略

select avg(salary) as avg_sal from emp

使用聚合函数时要注意什么?

  1. 聚合函数可用于任何有效的表达式
  2. 聚合函数会忽略空值
  3. distinct关键字可以与聚合函数一起使用,这样可以在聚合函数的计算中排除重复项

修改某表某字段,不允许空值

ALTER TABLE 表名
ALTER COLUMN 修改字段名 字段数据类型 NOT NULL

ORDER BY,GROUP BY

Oracle SQL语句组成:

数据定义语言(DDL)数据操作语言(DML)数据查询语言(DQL)事物控制语言(TCL)数据控制语言(DCL)
CREATE(创建命令)、ALTER(修改)命令、DROP(删除)命令等INSERT(插入)命令、UPDATE(更新)命令、DELETE(删除)命令、SELECT…FOR UPDATE(查询)等基本查询语句、Order By子句、Group By子句等COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令GRANT(授权)命令、REVOKE(撤销)命令

WHERE不能接聚合函数(MAX、MIN、COUNT、SUM、AVG等);HAVING后可以接聚合函数;

WHERE用在GROUP BY前,先过滤后分组;

HAVING用在GROUP BY之后,先分组后过滤,且使用HAVING一定要用到GRUOP BY,但用到GROUP BY 不一定有HAVING。

查询表的总行数,并命名为cnt

select count(*) (as) cnt from 表名(as可加可不加)

select count(主键或其他不为空的字段) (as) cnt from 表名(as可加可不加)

distinct 搜索去重:select distinct [列名1,列名2,…] from [表名]

检索所有列

select * from 表名

插入记录的方式汇总:

  • 普通插入(全字段):INSERT INTO table_name VALUES (value1, value2, …)
  • 普通插入(限定字段):INSERT INTO table_name (column1, column2, …) VALUES (value1, value2, …)
  • 多条一次性插入:INSERT INTO table_name (column1, column2, …) VALUES (value1_1, value1_2, …), (value2_1, value2_2, …), …
  • 从另一个表导入:INSERT INTO table_name SELECT * FROM table_name2 [WHERE key=value]
  • 带更新的插入:REPLACE INTO table_name VALUES (value1, value2, …) (注意这种原理是检测到主键或唯一性索引键重复就删除原记录后重新插入)

修改记录的方式汇总:

  • 设置为新值:UPDATE table_name SET column_name=new_value [column_name2=new_value2][WHERE column_name3=value3]
  • 根据已有值替换:UPDATE table_name SET key1=replace(key1, ‘查找内容’, ‘替换成内容’) [WHERE column_name3=value3]

删除记录的方式汇总:

  • 根据条件删除:DELETE FROM tb_name [WHERE options][ [ ORDER BY fields ] LIMIT n ]
  • 全部删除(表清空,包含自增计数器重置):TRUNCATE tb_name

时间差:

  • TIMESTAMPDIFF(interval, time_start, time_end)可计算time_start-time_end的时间差,单位以指定的interval为准,常用可选:
    • SECOND 秒
    • MINUTE 分钟(返回秒数差除以60的整数部分)
    • HOUR 小时(返回秒数差除以3600的整数部分)
    • DAY 天数(返回秒数差除以3600*24的整数部分)
    • MONTH 月数
    • YEAR 年数
      关键词:substing,concat,upper

用法:

字符串的截取:substring(字符串,起始位置,截取字符数)
字符串的拼接:concat(字符串1,字符串2,字符串3,…)
字母大写:upper(字符串)

SQL语句书写顺序
select->distinct->from->join->on->where->group by->having->order by->limit
SQL语句执行顺序
from->on->join->where->group by(开始使用select中的别名,后面的语句中都可以使用别名)->sum、count、max、avg->having->select->distinct->order by->limit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我也想做全栈一霸!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值