sql-数据库原理|存储过程|视图

版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/82634115

一、基础知识

数据查询 select
数据操纵 insert update delete
数据定义 create   drop  truncate
数据控制 grant为用户授予系统权限
        revoke 收回系统权限
  • WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。
  • GROUP BY 子句用来分组 WHERE 子句的输出。
  • HAVING 子句用来从分组的结果中筛选行。

常用的SQL约束:
● NOT NULL约束 - 确保列不能有NULL值 ID INT NOT NULL,
● 默认值约束 - 提供未指定时为列的值时的默认值
● 唯一值约束 - 确保了在一列中的所有的值是唯一的
● 主键 - 唯一标识数据库表中的每一行/记录
● 外键 - 唯一标识任何其他数据库表中的行/记录
● 检查约束 - CHECK约束可以确保列中的所有值满足一定的条件
● 索引 - 使用非常快速地创建和检索数据库中的数据。

事务

事务由高级编程语言或数据操作语言的执行引起的

当在数据库中更改数据成功时,在事务中修改的数据便会提交,不在改变.否则,事物就会取消或者回滚,更改无效

事务具有的最基本的特性(ACID)
原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性(Consistency):如果事务执行之前数据库是一个完整性的状态,那么事务结束后,无论事务是否执行成功,数据库仍然是一个完整性状态.
(数据库的完整性状态:当一个数据库中的所有的数据都符合数据库中所定义的所有的约束,此时可以称数据库是一个完整性状态.)
隔离性(Isolation):事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离。

二、高级

1.truncate与delete

truncate是一个数据定义语言DDL,一旦执行后不会回滚,被删除的数据会立即释放存储空间不可释放.
delete,被删除的数据占用的存储空间还在,还可以恢复,每次从表中删除一行数据,将删除的操作以日志的形式保存,以便将来的回滚

2.内连接外连接

内连接[自然连接]
只有两个表相匹配的行才在结果集中显示出来,舍弃不匹配的数据,可能造成信息丢失

SELECT *
FROM tableA a
Inner JOIN  tableB b ON a.key = b.key

外连接
不仅包含符合连接条件的行,还包括左表/右表/两个表的数据行
左外连接LEFT OUTER
右外连接RIGHT OUTER
全外连接FULL OUTER

3.存储过程

sql语句在执行时要先编译,然后被执行,为了提高效率,将完成特定功能的sql语句进行编译优化后,存储在数据库服务器中,用户通过指定存储过程名调用

create proceduce sp_name @[参数名][类型]
as
begin
    ...
end

执行存储过程exec sp_name [参数名]
删除存储过程drop procedure sp_name
可以完成复杂的判断和运算,并且可以保证数据的安全性和完整性
mybatis调用存储过程

4.触发器

使用触发器保证数据完整性,有效性
instead of事前触发,做准备工作
after事后触发,收尾工作
语句级触发器,行级触发器

5.视图

虚表:从基本表里取出来的逻辑窗口
mybatis创建视图

6.日志

数据库日志满了:
只能进行查询等读操作,不能更改,备份,原因是任何操作都要记录日志,也就是说,基本处于不能用的状态

7.union和union all

  • union表求并集合后去掉重复元素,对产生的结果集进行排序运算,删除重复数据再返回结果
    -union all合并两个结果集合后就会返回结果,速度会快很多

猜你喜欢

转载自blog.csdn.net/qq_36762677/article/details/82634115