初始Oracle1

Oracle与MySQL的共同点和区别
Oracle和MySql的共同点:都是关系型数据库管理系统(MySQL开放源码)、都是目前比较流行的数据库(Oracle以分布式为核心);
Oracle和MySql的区别:MySql是轻量型数据库并且免费,Oracle是重量型数据库并且收费。事物提交方式 oracle默认不自动提交,需要用户手动提交。 Mysql默认是自动提交。 Mysql是一个自动增长的数据类型,插入数据的时候,不需要管理,它自己会自动增长。Oracle不支持自动增长的数据类型,通过建立一个自动增长的序列号来完成自动增长。空字符的处理 Mysql的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。
Oracle包含几种SQL查询语言?
包含4种语言,分别为:
数据定义语言(DDL): CREATE TABLE创建,ALTER TABLE修改,DROP TABLE删除、
数据操纵语言(DML): INSERT,SELECT,UPDATE,DELETE、
事务控制语言(TCL): COMMIT提交事务,ROLLBACK回滚事务,SAVEPOINT设置保存点、
数据控制语言(DCL): GRAN授予权限,REVOKE 撤销权限
alter的使用和图形操作
alert 命令弹出一个提示框,alert弹出消息对话框,并且alert消息对话框通常用于一些对用户的提示信息。
哑表存在的意义?
dual是Oracle数据库中的一张哑表(虚表、伪表),哑表并非用来存储数据,所以本质上来讲不是一张真正意义的表。,哑表存在的意义仅仅是为了满足select基本语法结构。我们在使用select语句计算或处理某些并不来源于某张表的数据时就可以使用哑表。
序列存在的意义?MySQL怎么实现序列功能?
序列是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主码值。一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用层实现序列而引起的性能瓶颈。Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的。当一个序列号生成时,序列是递增,独立于事务的提交或回滚。允许设计缺省序列,不需指定任何子句。该序列为上升序列,由1开始,增量为1,没有上限。oracle和mysql相比真的是一个天一个地,mysql没有序列,只有主键自增,如果需要自定义主键含义则需要实现序列。思路很简单,创建函数 通过查询出当前值+步长跟新到原来的当前值,实现每一次查询都有自增后的值。如果考虑并发脏数据,需要进行加锁控制
分页SQL
Oracle中分页和MySql中的分页不同,MySql中的分页使用关键字limit即可,相对简单一点,Oracle中分页使用rownum ,相对复杂一点。
sql语句如下:
SELECT FROM
(
SELECT t.
, rownum rn
FROM
(
SELECT * FROM USER;
) t
)WHERE
rn > (currentPage-1)pageSizeAND rn <= currentPagepageSize;
Oracle中rownum是虚拟列,是得出结果后,再进行计算的。所以,只能是小于的,无法大于,要使用的大于,就必须使用别名,如上代码中的rn就是使用别名的写法

猜你喜欢

转载自blog.csdn.net/Lvge857/article/details/106943214