浅谈Oracle/Mysql知识点
欢迎评论增加知识点,学习是积累的过程
-
Where和having区别
Where修饰数据源,having修饰分组之后的数据groupby以后的
-
Union nuionall 区别
Union是联合自动去除重复项,unionall是全联合可以重复
-
事物是什么
要不就全部成功,要不就全部失败,为了保持数据一致性,事
物处理语言TCL,使DML操作生效,使用提交(COMMIT)命令实现,
使DML操作失效,使用回滚(ROLLBACK)命令实现 -
DDL,DML和DCL的区别与理解
DDL: 命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,多用于建表时使用
DML: 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
DCL: 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。需要sys等有权限的用户进行使用。 -
事物特征:ACID*
原子性:DML操作语句要么全成功,要么全失败,
一致性:一旦事务完成,整个系统处于数据一致的状态。
隔离性:一个事务的执行不会被另一个事务所干扰。如两个人同时从一个账户从取钱,通过事务的隔离性确保账户余额的正确性。
持久性:永久性,指事务一旦提交,对数据的改变就是永久的,不可以再被回滚。 -
隐式结束事物
Commit:
DDL:create,alter,drop,truncate,rename
DCL:grant授权,revoke收回权限
退出时:exit,quit
Rollback:
强行退出,异常中断 -
设置还原点
SAVEPOINT savepointname;ROLLBACK TO savepointname;
-
锁
锁用在多用户并发访问数据库,为了保持数据的一致性,当前用户事物没有提交或者回滚时别的用户无法对数据进行操作。锁是自动加的。查询语句不会锁定,但是查询后加for update就会锁定。Alter user unlock解锁语句
-
修改已存在的列
可以修改列名,数据类型,长度,默认值,但是修改数据类型的时候已有的数据必须清空,varchar(10) 变成20可以改变不需要删除数据
-
truncate和delete
Truncate是ddl语句,无法回滚,删除数据,释放内存空间
Delete是dml语句,可以回滚 -
什么是视图
视图就是查询的结果保存成另外一个虚拟的表,对视图进行修改时,原表也会被修改,分为简单视图和复杂视图,差别在dml操作上,复杂视图有函数,不出现group函数,distinct关键字,你可以向视图中插入数据create or replace 重建已经有的视图 ,drop删除视图不会删除数据,delete会
-
啥时候创建索引(B-tree构建)
表数据量很大 ,要查询的结果集在2%-4%左右 ,经常用来做WHERE条件中的列或者多表连接的列 ,查询列的数据范围分布很广 ,查询列中包含大量的NULL值,因为空值不包含在索引中 ,但是不适合经常修改数据的,降低DML操作速度(aov)
-
b-tree 多路搜索树
所有节点 阶数/2-1<=数目<=阶数-1
-
查询怎么进行模糊查询
Like关键字 还有通配符%/
-
空值怎么处理
Nvl(comm,0), trim去掉不小心输入的空格,java中null判断比较多
-
非等值连接
<>、>、<、>=、<=、LIKE、IN、BETWEEN…AND。
-
列名重复
如果有需要的话就把其中一个取列别名
-
连接方式
笛卡尔积,等值连接,非等值连接,外部链接,自身连接,交叉,自然,左外右外,全外连接。
-
group by进行限制
Having
-
执行顺序以及书写顺序不一样
执行:from where group by having Select orderby
书写:Select from where group by having orderby -
进行分页查询
使用rownum,外层循环,内层写查询语句,where限制页数,mysql使用limit
-
集合运算
联合运算:union 相交部分就一份 等于下边的disitinct
完全联合运算:union all 相交部分是两份
相交运算:intersect
相减运算:minus -
相关子查询
from语句中 的查询语句变成 where里边的运算符后边的语句,父类的查询放入子类查询之中。
-
树状结构怎么查询,
层次查询,制作页面的树状结构
-
delete truncate drop区别
Delete是dml语句,可以rollback
drop table 删除表,结构也消失,可以还原数据得有缓存区
truncate table emp_haha 删除表数据,结构不消失 !!!!不能还原数据 -
五种约束
notnull:非空约束
unique:唯一性约束
primarykey:主键约束,第一不能为空第二唯一第三主键只有一个,
check:检查性约束,制定一个必须满足的条件
foreignkey:外键约束,主键才有可能成为外键,比如deptno,对俩表有约束 -
怎么理解视图,索引,序列,同义词
视图:是一个命名的查询,改变基表数据的显示,修改了视图,基表也会改变,除非是有函数修饰。
索引:构建于表单字段上,加速对表中数据的查询
序列:实现自增的语句,产生顺序不重复的字串
同义词:数据库对象的别名 -
normal sysdba sysoper 有什么区别
Normal:普通用户
Sysdba:登陆后为sys,拥有最高的系统权限
Sysoper:主要是用来启动,关闭数据库的,登陆用户为public -
mysql主键自增语句
使用主键自增,auto_increment
-
mysql和oracle的分页
Mysql用limit m n,oracle用rownum