MySql 和 Oracle 差异 如何建立数据库脚本,序列,自增长
来源:互联网 发布:淘宝买运动鞋哪家店好 编辑:程序博客网 时间:2024/05/29 10:21
需求如下:建立3张表,用户表,用户部门表(中间表),部门表。中间表有2个外键。
-- 创建库mydb,并进入库CREATE database mydb ;USE mydb ;-- 清除所有外键 SET FOREIGN_KEY_CHECKS=0;-- 如果存在删除表 ,这里要注意标识的是 ` (键盘1 左边的键) 而不是单引号DROP TABLE IF EXISTS `YH` ;DROP TABLE IF EXISTS `YH_DEPT` ;DROP TABLE IF EXISTS `DEPT` ;-- 创建用户表,设置主键自增长CREATE TABLE YH( YH_id int not null auto_increment , YH_name varchar(50) , YH_photo varchar(100) , YH_sex bit , YH_AGE int ,constraint PK_YH primary key (YH_id));-- 创建用户部门,设置主键自增长 ,此表为中间表CREATE TABLE YH_DEPT( YD_id int not null auto_increment , YH_id int , DEPT_id int ,constraint PK_YD_id primary key (YD_id) );-- 创建部门,设置主键自增长CREATE TABLE DEPT ( DEPT_id int not null auto_increment, DEPT_name varchar(50) , DEPT_photo varchar(100) , DEPT_postal_code varchar(50) , constraint PK_DEPT_id primary key (DEPT_id) );-- 中间表外键设置alter table YH_DEPT add constraint FK_YH_id foreign key (YH_id) references YH (YH_id);alter table YH_DEPT add constraint FK_DEPT_id foreign key (DEPT_id) references DEPT (DEPT_id);
MYSQL 建表注意事项:
1. 一定要先清除所有外键,这样删表就不会报错了。
2. 删表语句不要忘记 IF EXISTS DROP TABLE IF EXISTS `YH`
3. 尽量放到所有表的最后。
4. mysql 没有向oracle有序列的概念,只要在主键上加 auto_increment 自增长即可。
那在oracle中要如何建表呢?
如下
-- 忽略外键直接删除表,purge的意思是不把表放到回收站中,直接删除drop table YH cascade constraints purge;drop table YH_DEPT cascade constraints purge;drop table DEPTMENT cascade constraints purge;-- 删除序列drop sequence YH_seq ;drop sequence YH_DEPT_seq ;drop sequence DEPT_seq ;-- 创建序列create sequence YH_seq ;create sequence YH_DEPT_seq ;create sequence DEPT_seq ;-- 创建用户表, oracle没有boolean的表示也就是mysql的bit 类型, 所以使用number(1)来表示性别CREATE TABLE YH( YH_id number not null , YH_name varchar2(50) , YH_photo varchar2(100) , YH_sex number(1) , YH_AGE number , constraint PK_YH primary key (YH_id));-- 创建用户部门表。CREATE TABLE YH_DEPT( YD_id number not null , YH_id number , DEPT_id number , constraint PK_YD_id primary key (YD_id) );-- 创建部门表CREATE TABLE DEPTMENT ( DEPT_id number not null , DEPT_name varchar2(50) , DEPT_photo varchar2(100) , DEPT_postal_code varchar2(50) , constraint PK_DEPT_id primary key (DEPT_id) );-- 中间表加入加入外键alter table YH_DEPT add constraint FK_YH_id foreign key (YH_id) references YH (YH_id);alter table YH_DEPT add constraint FK_DEPT_id foreign key (DEPT_id) references DEPTMENT (DEPT_id);-- 测试数据INSERT INTO DEPTMENT(dept_id , dept_name , dept_photo ,dept_postal_code) VALUES(1,'开发部',null,'010');COMMIT ;
oracle数据库脚本要注意的几点:
1. 字段中没有boolean类型也就是mysql 表中的bit 字段。
2. 建表前要为表加入序列,自增长列。在表中不体现。
3. 别忘记commit 提交,mysql中是不需要的
4. 删除时没有加 PURGE ,表不会真正删除而是放到回收站中,
清空回收站的命令是 purge recyclebin ;
- MySql 和 Oracle 差异 如何建立数据库脚本,序列,自增长
- oracle中如何建立字段自增长
- oracle自增长序列
- oracle序列自增长
- oracle 自增长序列
- oracle自增长序列
- oracle mysql 数据库字段自增长
- MySQL和Oracle中的自增长问题
- MySQL和Oracle中的自增长问题
- Oracle建立自增长字段
- oracle数据库表用序列实现主键自增长
- oracle数据库varchar自增长,创建表,序列,触发器
- Oracle 序列实现自增长
- mysql查询自增长序列
- oracle使用序列和触发器使表主键自增长
- 关于oracle自增长序列和mybatis的使用问题
- 通过序列和触发器实现Oracle主键自增长
- 更新oracle数据库表如何实现主键自增长
- 仔细琢磨loadrunner的httppost上传文件到服务器
- tcp/ip协议栈,商用的几万美金
- MyEclipse8.6安装svn(非link方式)
- log4j.properties
- 翻转句子中单词的顺序
- MySql 和 Oracle 差异 如何建立数据库脚本,序列,自增长
- c#&&.net&&java
- 通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔
- Java类集
- DDK常用函数与数据结构描述
- 编程实现:从字符中获取连续数组序列,如字符串"a1dl2iad9j3la5kudp7u9pn4blj8ap5u3e6ml9a"中可以得到的连续数字序列为1234556.【注】:只考虑一位,因此最长的数
- 第九周任务5—求一元二次方程的根
- HTML5设计原理
- 阻抗