IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 达梦数据库兼容Oracle之SQL语法(一) -> 正文阅读

[大数据]达梦数据库兼容Oracle之SQL语法(一)

对于刚从Oracle数据库转到达梦数据库,SQL语法的使用基本一致,有一些差别,下面总结的一些常用SQL语法差别。

1.导入数据

Oracle

@ test.sql

达梦

start test.sql
` test.sql

2.返回查询数据的返回行

Oracle:rownum,不支持top,limit
查找第一行数据

select * from department where rownum=1;

在这里插入图片描述
查询第二行数据select * from department where rownum=2;是查不到的
可以通过子查询
select * from (select rownum no,DEPT_NO,DEPT_NAME from department)where no=2;
在这里插入图片描述
查询前n-1行数据

select * from department where rownum<6;

在这里插入图片描述
达梦:支持rownum,limit,top
在达梦中查询当前用户的非默认模式中的表时,需要指定模式

select * from dmhr.DEPARTMENT limit 5;

在这里插入图片描述

select top 3 * from dmhr.DEPARTMENT;

在这里插入图片描述

3 外连接用法

Oracle “ + ”加号放在哪边,哪边无论是否匹配返回所以数据
select a.DEPT_NO, b.EMP_NO
from department a,EMP_DEPT b
where a.DEPT_NO = b.DEPT_NO(+);
在这里插入图片描述
达梦:兼容“+”,还有left join,right join,full join

select a.EMPLOYEE_ID, a.EMPLOYEE_NAME, a.DEPARTMENT_ID, b.DEPARTMENT_NAME
from dmhr.employee a left outer join dmhr.department b 
on a.DEPARTMENT_ID = b.DEPARTMENT_ID;

在这里插入图片描述

4.多列IN用法

Oracle
第一种方式

select dept_no,dept_name from department where (dept_no,dept_name) 
in (('d001','Marketing'),('d002','Finance'));

in后面相当于一个二维表格
在这里插入图片描述
第二种方式

select dept_no,dept_name from department where (dept_no,dept_name) 
in (select dept_no,dept_name from department);

in后面跟查询的两列返回的结果集,这里只是为了测试,实际情况可查找其他表.
在这里插入图片描述
达梦第一种方式,第二种方式都兼容

select department_id,department_name from dmhr.department where 
(department_id,department_name) 
in (('101','总经理办'),('102','行政部'));

在这里插入图片描述

5.INSTEAD OF触发器

Oracle
只适用于视图,不能作用在表上
不能指定before和after
必须包含for each row选项
在视图上创建触发器引起表的数据变化,从而让视图查询的结果变化
创建视图

create view view_dept
as 
select * from dept;

创建触发器

CREATE OR REPLACE TRIGGER tr_instead_view_dept
   INSTEAD OF INSERT  ON view_dept
   FOR EACH ROW
BEGIN
    INSERT INTO dept (epno, ename,loc) VALUES (:new.epno, :new.ename,:new.loc);
END;

向视图插入数据时会触发视图的基表发生变化。
在这里插入图片描述
查看视图view_dept
在这里插入图片描述
向dept表插入数据

insert into view_dept values(4,'new1','new2');

查看视图view_dept
在这里插入图片描述
查看基表dept
在这里插入图片描述
可以看到基表数据也已经改变。

6 数据类型的不同

时间类型有一点不同,其余数据类型基本一致。
Oracle DATE TEMPSTAMP
DATE:固定长度(7字节)的日期型,时间也作为一部分存储其中。数据格式:YYYY/MM/DD HH24:MI:SS
TIMESTAMP:date类型的一个扩展,date类型会存储年月日时分秒信息,timestamp类型精度更高,会存储到微秒、纳秒。

达梦 DATE TIME TIMESTAMP
DATE:日期型,包括年、月、日信息。数据格式:date ‘1999-10-01’
TIME:时间型,包括时、分、秒信息。格式:time ’09:10:21’
TIMESTAMP:时间戳型,包括年月日时分秒信息。例如:timestamp ‘1999-07-13 10:11:22’
在Oracle数据库向达梦数据库数据迁移时需要设置参数数据库兼容模式:COMPATIBLE_MODE,设置为2即兼容Oracle
是否兼容其他数据库模式。
0:不兼容,
1:兼容 SQL92 标准,
2:部分兼容 ORACLE,
3:部 分兼容 MS SQL SERVER,
4:部分兼容 MYSQL,
5:兼容 DM6,
6:部分兼容 TERADATA

7.数据字典和动态性能视图

Oracle
数据字典:记录了数据库的最基本的信息。
数据字典包括数据字典基本表和数据字典视图
数据字典视图分为三种类型:USER_、ALL_、DBA_。
USER_类型的视图表示当前登录用户拥有的信息。
ALL_类型的视图表示当前登录用户有权限看到的信息。
DBA_类型的视图表示数据库管理员能够看到的信息,整个数据库范围内的信息。
Eg:查看当前用户下所有列
select * from user_tab_cols;
在这里插入图片描述
动态性能视图
v p a r a m e t e r 初始化参数文件中所有项的值 v parameter 初始化参数文件中所有项的值 v parameter初始化参数文件中所有项的值vprocess:当前进程的信息
v s e s s i o n : 有关会话的信息 v session:有关会话的信息 v session:有关会话的信息vsysstat:基于当前操作会话进行的系统统计
v l o g :从控制文件中提取有关重做日志组的信息 v log:从控制文件中提取有关重做日志组的信息 v log:从控制文件中提取有关重做日志组的信息vlogfile有关实例重置日志组文件名及其位置的信息
v l o c k :当前进程已获得的和正在请求的锁定信息 v lock:当前进程已获得的和正在请求的锁定信息 v lock:当前进程已获得的和正在请求的锁定信息vtransaction:数据库的事务信息
v$fixed_view_definition中记录了所有的动态性能视图的定义信息

oracle可以使用show parameter 参数名,达梦没有此用法。

达梦 数据字典和动态性能视图和oracle基本一致
select * from user_tables;
在这里插入图片描述
查询时数据字典和动态性能视图可以不指定模式。
select * from V$PARAMETER;
在这里插入图片描述

了解更多详情请访问达梦数据库-新一代大型通用关系型数据库

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:03:44  更:2022-09-24 21:05:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:43:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码