oracle和mysql一些基本sql语句的区别

oracle中用"模式名.表名",相当于mysql中的"数据库名.表名"。

1 单引号、双引号、反引号

mysql中可以使用单引号、双引号、反引号,如果表名或字段名可能与系统关键字相同,为了避免歧义,需要用反引号标识。

oracle中不能使用反引号标识表名或字段名。可以使用单引号或双引号,当使用双引号时,则严格区分大小写,否则oracl都默认转换为大写。

2 创建表

mysql:

CREATE TABLE database_name.`table_name` (姓名 varchar(255),年龄 int(255),日期 datetime)

oracle:

CREATE TABLE schema_name."table_name" (姓名 varchar(255),年龄 number,日期 date)

3 删除表

如果表存在则删除该表。
mysql:

DROP TABLE IF EXISTS database_name.`table_name`

oracle中没有DROP TABLE IF EXISTS,只能间接实现

BEGIN
	EXECUTE IMMEDIATE 'DROP TABLE schema_name."table_name"';
	EXCEPTION WHEN OTHERS THEN NULL;
END;

4 添加字段和注释

mysql:

ALTER TABLE database_name.`table_name` ADD new_fields int comment '注释'

oracle:

ALTER TABLE schema_name."table_name" ADD "new_fields" number;
-- 给表添加注释
COMMENT ON TABLE schema_name."table_name" IS '表注释';
-- 给字段添加注释
COMMENT ON COLUMN schema_name."table_name"."姓名" IS '字段注释';

5 删除字段

mysql:

ALTER TABLE database_name.`table_name` DROP COLUMN 年龄

oracle:

-- 以下两种都可以
ALTER TABLE schema_name."table_name" DROP(年龄);
ALTER TABLE schema_name."table_name" DROP COLUMN "年龄";

6 修改字段名

mysql:

ALTER TABLE database_name.`table_name` CHANGE COLUMN old_name new_name varchar(255)

oracle:

ALTER TABLE schema_name."table_name" rename column "old_name" to "new_name"

7 修改字段类型

mysql:

ALTER TABLE database_name.`table_name` MODIFY COLUMN `年龄` VARCHAR(10)

oracle:
当表为空时,可以直接修改字段类型

ALTER TABLE schema_name."table_name" MODIFY ("年龄" varchar2(10))

如果表不为空,只能间接修改字段类型:修改原字段名,新增目标类型的字段,复制原字段值,删除原字段

ALTER TABLE schema_name."table_name" rename column "年龄" to "tmp_name";
ALTER TABLE schema_name."table_name" add "年龄" varchar2(10);
UPDATE schema_name."table_name" SET "年龄"=TRIM("tmp_name");
ALTER TABLE schema_name."table_name" DROP("tmp_name");

8 增删改查

mysql:

INSERT INTO database_name.`table_name` VALUES ('A', 14, '2017-11-15 00:00:00')

oracle:

INSERT INTO schema_name."table_name" VALUES ('A', 14, to_date('2017-11-15 00:00:00' , 'yyyy-mm-dd hh24:mi:ss'))

mysql:

DELETE FROM database_name.`table_name` WHERE `年龄`=5

oracle:

DELETE FROM schema_name."table_name" WHERE "年龄"=5

mysql:

UPDATE database_name.`table_name` SET `姓名`="B" WHERE `姓名`="A"

oracle:

UPDATE schema_name."table_name" SET "姓名"="B" WHERE "姓名"="A"

mysql:

SELECT * FROM database_name.`table_name`

oracle:

SELECT * FROM schema_name."table_name"
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值