mysql与oracle的 sql语句区别

2 表

2.1 创建表(同)

create table tableName(

columnName1 int,

columnName2 int

)

2.2 删除表(异)

MySQL:

drop table if exists tableName

 

Oracle:

drop table tableName

注:Oracle没有if exists关键字,也没用类似if exists的SQL语法。

 

3 列

3.1 添加列(异)

MySQL:

A. alter table tableName add column columnName1 int;

B. alter table tableName add column columnName1 int, add column columnName2 int;

注:其中关键字column可有可无。

 

Oracle:

A. alter table tableName add columnName1 int;

B. alter table tableName add (columnName1 int);

C. alter table tableName add (columnName1 int, columnName2 int); 

注:对于A,只有添加单列的时候才可使用,对于添加多列时需要使用C,不能像MySQL那样重复使用add column关键字。

3.2 删除列(异)

MySQL:

A. alter table tableName drop column columnName1

B. alter table tableName drop column columnName1, drop column columnName2

注:其中关键字column可有可无。

 

Oracle:

A. alter table tableName drop column columnName2

B. alter table tableName drop (columnName1)

C. alter table tableName drop (columnName1,columnName2)

注:对于A,只有删除单列的时候才可使用,对于删除多列时需要使用C,不能像MySQL那样重复使用drop column关键字。

3.3 修改列名(异)

MySQL:

alter table tableName change column columnNameOld columnNameNew columnType;

 

Oracle:

alter table tableName rename column columnNameOld to columnNameNew;

3.4 修改列类型(说明)

Oracle中,在列有数据的时候,无法修改列类型;没有数据时可以。

MySQL中,无论列是否有数据都可以修改列类型。

但是当有数据是,直接修改列类型都可能对数据造成丢失等,所以一般需要结合具体的业务来对列数据做处理后,再修改列类型类型。所以修改列的类型并非使用SQL语句进行一步到位的修改,而是通过以下流程:

A. 添加临时列

B. 将需要更改的列的值经过类型转换的验证后,赋值给临时列

C. 删除原有列

D. 将临时列的列名修改为原有列列名

 

4 索引

在整个数据库内,MySQL的索引可以同名,也就是说MySQL的索引是表级别的;但是Oracle索引不可以同名,也就是说Oracle的索引是数据库级别的。

4.1 创建索引(同)

create index indexName on tableName (columnName);

4.2 删除索引(异)

MySQL:

alter table tableName drop index indexName

 

Oracle:

drop index indexName

4.3 查询表的索引(异)

MySQL:

show index from tableName

 

Oracle:

select index_name, table_name, column_name from user_ind_columns where table_name=' tableName ' 

 

5 空字符串问题

Oracle中空字符串''就是null(也就是说,只有null,没有空字符),而MySQL是区分null和''的。

对于使用语句:select * from table1 where user_name <> ''来查询列user_name不为空(不为null且不为空字符)时,Oracle会查不出任何结果,而MySQL可以正常运行。这里MySQL之所以可以得到正确结果,还因为比较符号<>会先将列为null的内容进行过滤,然后再比较内容是否为空字符串。

这就要求一方面,以后在编写代码的时候,尽量保证不会往数据库插入空字符串''这样的值,要么保持有数据,要么保持为null。另外,对于MySQL中已经同时存在Null和''时,所有判断是否为null或者''的地方改为判断列的长度是否为0。

### 关于 Vue 2 和 DDEI 集成的相关信息 DDEI 并不是一个常见的技术术语或框架名称,因此可能需要进一步澄清具体指的是什么工具、库或者平台。如果假设 DDEI 是某种数据驱动的企业级集成解决方案或者是特定的第三方服务,则可以探讨如何将其与 Vue 2 进行集成。 #### 数据驱动的企业级应用开发 在企业级应用开发中,通常会涉及多种后端 API 调用以及复杂的数据处理逻辑。Vue 2 提供了强大的组件化架构支持,并允许通过计算属性将业务逻辑封装到实例内部[^1]。这意味着可以通过 Vuex 来管理全局状态并实现跨组件通信,从而更好地适配复杂的前端需求。 对于任何外部系统的集成(比如假定为 DDEI),主要可以从以下几个方面入手: 1. **API 请求模块** 使用 Axios 或者 Fetch API 创建统一的服务层来调用远程接口。例如,在 `src/api` 文件夹下定义针对目标系统的方法。 ```javascript import axios from 'axios'; const apiClient = axios.create({ baseURL: 'https://ddei.example.com', timeout: 1000, headers: {'Authorization': 'Bearer YOUR_ACCESS_TOKEN'} }); export function fetchData() { return apiClient.get('/data'); } ``` 2. **Vuex Store 状态管理** 如果 DDEI 返回的是动态变化的内容,则建议引入 Vuex 对这些资源进行集中存储和更新操作。这样不仅能够简化页面间的共享机制,还能提高代码可维护性。 3. **路由配置优化** 安装适合版本的 vue-router (如指定 v3 版本)[^2]之后,可以根据实际场景设计多级嵌套路由结构,以便更灵活地展示不同视图下的 DDEI 结果集。 4. **注意挂载点的选择** 当设置好基础环境后,请记得遵循最佳实践——即不要尝试把整个文档对象树作为渲染容器[^3]。而是应该选取某个具体的 HTML 元素充当入口位置,如下所示: ```html <div id="app"></div> ``` 5. **调试常见问题** 开发过程中难免遇到各种异常情况,像某些变量未正确定义所引发的警告消息就需要格外留意[^4]。确保所有引用均存在并且拼写无误可以帮助快速定位错误源头。 以上就是围绕 Vue 2 可能存在的所谓"DDEI"集成的一些通用指导原则和技术要点概述。当然,确切的做法还要依据具体情况而定。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值