sql的升阶
前言:基本数据库操作根本无法满足实际的需要,需要引入更多的操作。
触发器-隐式的,主动的,更新数据表中的信息。带有inserted和deleted两个临时表,代表新操作和旧操作。
它是一种特殊的存储过程,它不能被显式地调用,而是在往表中做出更改操作时自动激活。触发器可以用来对表实施复杂的完整性约束。
触发器语句的用法——里面的几个示例可以让你快速掌握触发器的应用。
索引-提高数据库的查询数据
索引是一种提高数据库查询速度的机制,它是一个数据库的表或视图上按照某个关键字端的值,升序或降序排序创建的对象。当用户查询索引对象时,它可以快速执行检索操作。
create index命令创建索引如下:
create [unique][clustered|nonclustered] index index_name on{table|view} colunm{asc|desc}[,...n][ WITH < index_option > [ ,...n] ] [ ON filegroup ]
例如:
create unique clustered index pk_表名//注这个可以自己注意命名
on 表名(列名)
with
pad_index,fillfactor=10,
drop_existing
创建索引能大大提高系统的性能,主要表现在以下几个方面:
1,创建唯一性索引,可以保证每一行数据的唯一性。
2,通过索引,可以大大加快数据的检索速度。
3,通过索引可以加速表和表之间的连接,从而有效实现数据的参考完整性。
4,使用分组和排序字句进行数据检索时,可以减少查询时间。
5,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
回滚-数据库或,应用程序出错时,数据库能够被还原。
回滚执行相反的操作,可以撤销操作,从而保证数据的完整性。回滚是指将数据库的状态恢复到执行事物之前的状态。
数据备份的种类
完全备份,差异备份,事物日记备份,增量备份。
游标-参考
游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力。
(有点分而治之的意思。)
它的缺点是处理大数据量时,效率低下,比较占内存。一般来说,能使用其他方式处理数据时,最好不要使用游标,除非是当你使用while循环,子查询,临时表,表变量,自建函数或其他方式都无法处理某种操作的时候,再考虑使用游标
数据库日志满了,会出现什么情况?
日志文件记录对所有数据库数据的修改。一旦满了,只能进行查询操作。
并发环境保证数据的一致性
并发一般是指多用户同时访问相同的数据。数据一致性是指系统中每个用户都能够取得其具备一致性的数据,同时还能看到自己或其他用户所提交的事务对数据的修改。
并发环境下,一般可以采用多种机制来保证数据的一致性。例如,事务级的一致性,行级锁,表级锁。
使用行级锁,会在试图修改一个没有提交的事务更新的行时产生等待。第二个事务等待其他事务提交或者撤销来释放它的锁,才能更新给定的行。
查看哪个用户往数据库中插入一行数据
1,审计功能。
2,触发器。
create of replace trigger tgname after insert on tbname for each row begin insert into ta(日期) values(sysdate) commit; end;
3,通过logmnr日志查看
logmnr是oracle公司提供的分析工具。
参考资料:程序员面试笔试宝典,百度知道,CSDN等。
sql的升阶的更多相关文章
- [问题2014A01] 解答三(升阶法,由董麒麟同学提供)
[问题2014A01] 解答三(升阶法,由董麒麟同学提供) 引入变量 \(y\),将 \(|A|\) 升阶,考虑如下行列式: \[|B|=\begin{vmatrix} 1 & x_1-a & ...
- [问题2014A02] 解答一(两次升阶法,由张钧瑞同学、董麒麟同学提供)
[问题2014A02] 解答一(两次升阶法,由张钧瑞同学.董麒麟同学提供) 将原行列式 \(|A|\) 升阶,考虑如下 \(n+1\) 阶行列式: \[|B|=\begin{vmatrix} 1 &a ...
- MySQL 数据库SQL语句——高阶版本2
MySQL 数据库SQL语句--高阶版本2 实验准备 数据库表配置: mysql -uroot -p show databases; create database train_ticket; use ...
- MySQL 数据库SQL语句——高阶版本1
MySQL 数据库SQL语句--高阶版本 实验准备,数据表配置 mysql -uroot -p show databases; create database train_ticket; use tr ...
- nodejs技术升阶思路
经历一两年的node后端开发,熟悉了node原生api.常用包.数据库操作语句.一两个框架等,技术会达到一个瓶颈.如果没有足够的动力去深入,很容易老死在这个瓶颈上. 下面总结一下,提升点和方向: 站在 ...
- python基础一 day9 函数升阶(3)
局部命名空间一般之间是独立,局部命名空间是调用函数时生成的函数的名字指向它所在的地址局部不会对全局产生影响,除非加global.# def max(a,b):# return a if a>b ...
- python基础一 day9 函数升阶(2)
def max(a,b): return a if a>b else bprint(max(1, 2)) # 函数进阶# a = 1# def func():# print(a)# func() ...
- python基础一 day9 函数升阶(1)
函数 可读性强 复用性强def 函数名(): 函数体 return 返回值所有的函数 只定义不调用就一定不执行 先定义后调用 函数名() #不接收返回值返回值 = 函数名() #接收返回值 返回值 没 ...
- 重磅:前端 MVVM 与 FRP 的升阶实践 —— ReRest 可视化编程
ReRest (Reactive Resource State Transfer) 是前端开发领域新兴的方法论体系,它继承了 MVVM 与 FRP 编程理念,在技术上有不少创新.本文从专利稿修改而来, ...
随机推荐
- xshell连接虚拟机Ubuntu问题
近期为了学习数据库的操作,准备在虚拟机中搭建环境以便操作(为什么在虚拟机搭建学习环境?),系统刚装好第一步就被阻止了. 总是会提示Could not connect to.原因是虚拟机没有安装ssh服 ...
- 复选框之checked属性
今天无意中看到同事在学习复选框里面的checked属性的应用,当时看了一下,感觉熟悉而又陌生,发现checked属性其实还是挺奇怪的,感觉这里很有必要做一下笔记: 1.html中的checked属性. ...
- YUI 和路径相关的参数与module加载之间的关系
相关参数默认值 使用YUI, 我们可以配置一些和路径相关参数,如base.root.comboBase.cdn, combine.path.fullpath等属性的配置均会影响到YUI的module加 ...
- The most interesting feature of iPhone X - FaceID
No doubt everybody knows that iPhone 8 & iPhone X appear on the market. A feature called FaceID ...
- 手把手教你搭建 vue 环境
第一步 node环境安装 1.1 如果本机没有安装node运行环境,请下载node 安装包进行安装1.2 如果本机已经安装node的运行换,请更新至最新的node 版本下载地址:https://nod ...
- 邓_PPT
如何拯救一份丑到爆的PPT? "小邓,这是我做的PPT,你优化优化,明天早上给我,上午客户来要用." 领导,你这是PPT嘛,明明就是word嘛. "小张啊,你看看我这个P ...
- iOS学习之Map,定位,标记位置的使用
iOS上使用地图比Android要方便,只需要新建一个MKMapView,addSubView即可.这次要实现的效果如下: 有标注(大头针),定位,地图. 1.添加地图 1.1 新一个Single V ...
- 一篇文章帮你解决python的包管理
写python代码的人都知道,一个项目写下下来,不可避免的都需要使用很多第三方包,通常我们都是通过pip install ,然而当我们需要上线的时候问题来了,如果中间你自己不记得自己安装了多少个包,这 ...
- python服务端多进程压测工具
本文描述一个python实现的多进程压测工具,这个压测工具的特点如下: 多进程 在大多数情况下,压测一般适用于IO密集型场景(如访问接口并等待返回),在这种场景下多线程多进程的区分并不明显(详情请参见 ...
- Java中Unsafe类详解
http://www.cnblogs.com/mickole/articles/3757278.html Java不能直接访问操作系统底层,而是通过本地方法来访问.Unsafe类提供了硬件级别的原子操 ...