[2/3]数据库学习

1.聚合与排序

1.1 聚合查询

聚合函数:COUNT,SUM,AVG,MAX,MIN

  • COUNT:

    • 全部行数:select count(*) from <表名>

    • NULL之外的行数: select count(<列名>) from <表名>

      NOTE:*会包含NULL的数据行数,而(<列名>)会得到出NULL之外的数据行数

  • SUM:

    • 语法:select sum(<列名>) from <表名>,包含NULL会将排除在外.
  • AVG:

    • 语法:select avg(<列名>) from <表名>
  • min,max一样

删除重复值用关键词distinct

1.2 分组

语法:select <列名1>,<列名2>,... from <表名> group by <列名1>, <列名2>,...;

包含NULL的情况:结果会以不确定行的形式表现出来

wheregroup by执行语句

select <列名1>,<列名2>,<列名3>,... from <表名> where <条件语句> group by <列名1>,<列名2>,<列名3>....;

1.3 聚合指定条件

having:指定组的条件

构成要素:常数,聚合函数,group by子句中指定的列名(即聚合键)

语句:select <列名1>,<列名2>,<列名3>,... from <表名> where <条件语句> group by <列名1>,<列名2>,<列名3>....having <分组结果对应的条件>;

1.4 排序

order by

  • 默认从低到高,想从高到低,用关键词desc

  • 排序键包含NULL,会在开头或末尾进行汇总

  • 可以使用select子句中定义的别名

  • 可以使用select子句未使用的列和聚合函数

2. 数据更新

2.1 插入

  • 基本语法:insert into <表名> (列1, 列2, 列3,....) values (值1, 值2, 值3,...);
  • 列清单可以省略,默认从左到右的顺序赋值每一列
  • 插入null,写入null即可
  • 插入默认值
    • 显式方法:关键词default
    • 隐式方法,列清单不要省略就行
  • 从其他表中复制数据:insert ... select 语句

2.2 删除

  • drop table 语句 :将表完全删除
  • delete 语句: 会留下表,删除表中的全班数据

delete from 表名:删除是记录行

delete from 表名 where <条件>;:指定删除对象

2.3 更新

基本语句:updata <表名> set <列名> = <表达式>;更新null直接写null

指定条件:update <表名> set <列名> = <表达式> where <条件>;

多列更新:用逗号对列进行分割排列,用()的清单形式

2.4 事务

事务需要在同一个处理单元中执行的一系列更新处理集合,一个事务包含多少个更新处理或者包含哪些处理

语法:

begin transaction;
	DML 语句1;
	DML 语句2;
	...
	
commit;

ACID特性

  • 原子性:更新处理要么全部执行,要么完全不执行;
  • 一致性:满足数据库提取设置的约束;
  • 隔离性:保证不同事务之间互不干扰
  • 持久性:系统故障导致数据丢失,数据库也一定能通过某种手段恢复

3. 复杂查询

3.1 视图

视图:还是一种表,但是不会将数据保存到其他任何地方

创建视图:creat view (<视图列名1>,<视图列名2>,...) AS <SELECT语句>

视图的限制:

  • 不能使用order by
  • 视图和表要同时更新,因此通过汇总的视图无法进行更新

删除视图:drop view <视图名称>

3.2 子查询

简单的说,就是一张一次性视图

语句:select <列名1>, <列名2> from ( select <视图列名1>, <视图列名2>,.. from <表名>) as <视图名>

3.3 关联子查询

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值