精华内容
下载资源
问答
  • 在实际工作中,一张表,我们可能需要在...本篇文章,以Oracle数据库表为源表,通过PowerDesigner工具将其转化成Mysql数据库建表语句。 1、以 oracle_to_student(学生表)为例,Oracle数据库中建表语句如下所示。...

          在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表。表中每个字段的数据类型、中文注释、是否可为NULL 问题,非常影响我们建表的效率。本篇文章,以Oracle数据库表为源表,通过PowerDesigner工具将其转化成Mysql数据库建表语句。
     

    1、以 oracle_to_student(学生表)为例,Oracle数据库中建表语句如下所示。需要注意的是,若要相对完美的将Oracle数据库表转换成Mysql数据库表,需要严格按照以下Oracle数据库表结构方式,标点符号都不能多、不能少。

     

         1.1、表名、字段名,需要去除 ` 符号  ;

         1.2、若字段定义过程中缺少 'NOT NULL'、 'DEFAULT NULL', 请添加 ;

         1.3、若Oracle表中含主键,需要添加命令设置主键。
     

    -- 使用PowerDesigner将Oracle建表语句转换成Mysql建表语句。
    create table oracle_to_student
    (
      
      stu_id       NUMBER(16)      NOT NULL,
      stu_name     VARCHAR2(32)    NOT NULL,
      stu_tuition  NUMBER(9, 2)    NOT NULL,
      stu_address  VARCHAR2(500)   DEFAULT NULL,
      stu_age      NUMBER(3) 	   DEFAULT NULL,
      create_date  DATE 		   DEFAULT NULL
    )
    tablespace STT_TBS_DATA
      pctfree 10
      initrans 1
      maxtrans 255
      storage
      (
        initial 1
        next 1
        minextents 1
        maxextents unlimited
      );
    
    comment on table oracle_to_student
      is '学生表';
    
    -- 新增语句
    alter table oracle_to_student add constraint pk_student001 primary key(stu_id);
      
    
    comment on column oracle_to_student.stu_id
      is '学生编码';
      
    comment on column oracle_to_student.stu_name
      is '学生姓名';
    
    comment on column oracle_to_student.stu_tuition
      is '学费';
      
    comment on column oracle_to_student.stu_address
      is '学生地址';
    
    comment on column oracle_to_student.stu_address
      is '学生年龄';  
      
    comment on column oracle_to_student.create_date
      is '创建时间';
    
    

     

    2、 打开 PowerDesigner 软件, 选择 文件 ---> 反向工程 ---> Database ,如下图1所示。

                                                                                      图1

     

    3、 之后,会弹出 New Physical Date Model 窗口。 在该窗口 "常规" 选项界面, 由于我们是将Oracle数据库中表转成Mysql数据库中表,所以 "DBMS" 行选择 "ORACLE Version 11g" 选项,如图2所示。

                                                                                      图2

     

    4、之后,会弹出 "Database Reverse Engineering Options" 窗口, 在该窗口点击 "Add Files (Ctrl + N)" 图标,选择Mysql数据库student表sql脚本,如图3、 图4所示。

                                                                                      图3

     

                                                                                      图4

     

    5、由步骤4操作后,PowerDesigner 软件界面如下图5所示。

                                                                                      图5

     

    6、在 PowerDesigner 软件上,选择 "数据库" ---> "Change Current DBMS..." 选项,如下图6所示。 

                                                                                      图6

     

    7、之后,会弹出 "Change DBMS" 窗口。 由于我们是将Oracle数据库表转化成Mysql数据库表,在这里 "New 数据库管" 一行选择 "MySQL 5.0" 。 "Current 数据库管" 一栏,会随着这一步操作完成后,自动更改成 "MySQL 5.0" ,如下图7、图8所示。

                                                                                      图7

     

                                                                                      图8

     

    8、使用快捷键: Ctrl + G,调用出 "Database Generation" 窗口,选择生成Mysql建表语句文件的路径,并对文件进行命名,如下图9所示。

                                                                                      图9

     

    9、之后,会弹出 "Generated Files" 窗口,由log日志、生成的sql脚本文件可知,程序运行成功。点击 "Generated Files" 窗口中的 "关闭(C)" 按钮后,会弹出 "结果列表" 窗口,该窗口无实际意义,直接关闭。 如下图10、图11所示。

                                                                                      图10

     

                                                                                      图11

     

    10、由Oracle建表语句中文字段含义可知,stu_id、stu_age 这2个字段为普通数字数据类型字段,stu_tuition 字段为金额数据类型字段,需保留2位小数。经过PowerDesigner软件生成后的Mysql建表语句,这3个字段的数据类型并非是我们需要的数据类型,因此需要更改。

     

            将  stu_id numeric(16, 0)  更改为 stu_id bigint(16) ;  将 stu_age numeric(3, 0) 更改为 stu_age int(3);  将 stu_tuition numeric(9, 2) 更改为 stu_tuition decimal(9, 2) 。 如下图12、 图13 所示。

                                                                                      图12

     

                                                                                      图13

     

    11、经过上述处理之后,SQL脚本即可放到Navicat软件中直接运行使用。 图14、图15是效果展示图。

    Oracle数据库表转成Mysql数据库表的SQL语句如下所示:

    /*==============================================================*/
    /* DBMS name:      MySQL 5.0                                    */
    /* Created on:     2020/3/12 9:34:59                            */
    /*==============================================================*/
    
    
    drop table if exists ORACLE_TO_STUDENT;
    
    /*==============================================================*/
    /* Table: ORACLE_TO_STUDENT                                     */
    /*==============================================================*/
    create table ORACLE_TO_STUDENT
    (
       STU_ID               bigint(16) not null comment '学生编码',
       STU_NAME             varchar(32) not null comment '学生姓名',
       STU_TUITION          decimal(9,2) not null comment '学费',
       STU_ADDRESS          varchar(500) default NULL comment '学生年龄',
       STU_AGE              int(3) default NULL,
       CREATE_DATE          datetime default NULL comment '创建时间',
       primary key (STU_ID)
    );
    
    alter table ORACLE_TO_STUDENT comment '学生表';
    
    

     

     

                                                                                      图14

     

                                                                                      图15

     

     

    参考文章:  PowerDesigner,如何将Mysql数据库建表语句转化成Oracle数据库建表语句。    

     

    姊妹篇文章: PowerDesigner,如何将Mysql数据库建表语句转化成Oracle数据库建表语句。     

     

     

    展开全文
  • MySQL数据库建表语句

    千次阅读 2019-05-26 19:15:18
    **建立一个叫student的表** CREATE TABLE`student`( **id为int类型设置不能为空值** `id` INT NOT NULL auto_increment primary key COMMENT'学生id', `name`VARCHAR(16) NOT NULL COMMENT'学生姓名', ...
    **建立一个叫student的表**
    CREATE TABLE`student`(
    **id为int类型设置不能为空值**
    `id` INT NOT NULL auto_increment primary key COMMENT'学生id',
    `name`VARCHAR(16) NOT NULL COMMENT'学生姓名',
    `sex` CHAR(1) DEFAULT'男' COMMENT'性别',
    `age` INT COMMENT'年龄',
    `birthday` datetime COMMENT'生日'
    
    )DEFAULT CHARSET'utf8';
    select * from student where id=1 order by id;
    
    展开全文
  • 在实际工作中,一张表,我们可能...本篇文章,以Mysql数据库表为原表,通过PowerDesigner工具将其转化成Oracle数据库建表语句。 1、以 student(学生表)为例,Mysql数据库中建表语句如下所示。需要注意的是,...

     

          在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表。表中每个字段的数据类型、中文注释、是否可为NULL 问题,非常影响我们建表的效率。本篇文章,以Mysql数据库表为原表,通过PowerDesigner工具将其转化成Oracle数据库建表语句。

     

    1、以 student(学生表)为例,Mysql数据库中建表语句如下所示。需要注意的是,若要相对完美的将Mysql数据库表转换成Oracle数据库表,需要严格按照以下Mysql数据库表结构方式,标点符号都不能多、不能少。

     

         1.1、表名、字段名,需要去除 ` 符号  ;

         1.2、若字段定义过程中有 ' COLLATE utf8mb4_bin '  关键字,去掉 ;

         1.3、若字段定义过程中缺少 'NOT NULL'、 'DEFAULT NULL', 请添加 ;

     

    -- 去掉的字符:`
    -- 去掉的字符:COLLATE utf8mb4_bin 
    -- stu_name varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '性别',
    
    CREATE TABLE student (
      id int(8) NOT NULL COMMENT '主键',
      stu_name varchar(255) DEFAULT NULL COMMENT '学生姓名',
      stu_sex varchar(8) DEFAULT NULL COMMENT '性别',
      stu_age int(4) DEFAULT NULL COMMENT '学生年龄',
      stu_class varchar(255) DEFAULT NULL COMMENT '学生班级',
      stu_address varchar(255) DEFAULT NULL COMMENT '家庭住址',
      stu_mother varchar(255) DEFAULT NULL COMMENT '学生母亲姓名',
      stu_m_age varchar(255) DEFAULT NULL COMMENT '学生母亲年龄',
      stu_m_phone varchar(255) DEFAULT NULL COMMENT '学生母亲电话',
      stu_father varchar(255) DEFAULT NULL COMMENT '学生父亲姓名',
      stu_f_age varchar(255) DEFAULT NULL COMMENT '学生父亲年龄',
      stu_f_phone varchar(255) DEFAULT NULL COMMENT '学生父亲电话',
      create_date datetime DEFAULT NULL COMMENT '创建日期',
      update_date datetime DEFAULT NULL COMMENT '更新日期',
      start_date datetime DEFAULT NULL COMMENT '入学时间',
      stop_date datetime DEFAULT NULL COMMENT '毕业时间',
      PRIMARY KEY (id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生表';
    
    

     

     

    2、 打开 PowerDesigner 软件, 选择 文件 ---> 反向工程 ---> Database ,如下图1所示。

     

                                                                                        图1

     

     

    3、 之后,会弹出 New Physical Date Model 窗口。 在该窗口 "常规" 选项界面, 由于我们是将Mysql数据库中表转成Oracle数据库中表,所以 "DBMS" 行选择 "MySQL 5.0" 选项,如图2所示。

     

                                                                                        图2

     

     

    4、之后,会弹出 "Database Reverse Engineering Options" 窗口, 在该窗口点击 "Add Files (Ctrl + N)" 图标,选择Mysql数据库student表sql脚本,如图3、 图4所示。

     

                                                                                        图3

     

                                                                                        图4

     

     

    5、由步骤4操作后,PowerDesigner 软件界面如下图5所示。

     

                                                                                        图5

     

     

    6、在 PowerDesigner 软件上,选择 "数据库" ---> "Change Current DBMS..." 选项,如下图6所示。 

     

                                                                                        图6

     

     

    7、之后,会弹出 "Change DBMS" 窗口。 由于我们是将Mysql数据库表转化成Oracle数据库表,在这里 "New 数据库管" 一行选择 "ORACLE Version 11g" 。 "Current 数据库管" 直接手动输入:ORACLE Version 11g  ,如下图7所示。

     

                                                                                        图7

     

     

    8、使用快捷键: Ctrl + G,调用出 "Database Generation" 窗口,选择生成Oracle建表语句文件的路径,并对文件进行命名,如下图8所示。

     

                                                                                        图8

     

     

    9、之后,会弹出 "Generated Files" 窗口,由log日志、生成的sql脚本文件可知,程序运行成功。点击 "Generated Files" 窗口中的 "关闭(C)" 按钮后,会弹出 "结果列表" 窗口,该窗口无实际意义,直接关闭。 如下图9、图10所示。

     

                                                                                        图9

     

                                                                                        图10

     

     

    10、打开生成好的SQL脚本,删除语句: constraint PK_STUDENT primary key (id) , 并删除一个多余的逗号。如下图11所示。  

     

                                                                                        图11

     

     

    11、将SQL脚本中所有的英文半角双引号去掉,可使用NotePad++工具直接替换。如下图12所示,在下图12中,我将转成Oracle建表语句的 student 表名改成了 student003. 因为在我的Oracle数据库中,已经存在了 student 表,这次为了测试检验,故在此将表名更换。

     

                                                                                        图12

     

     

    12、在SQL语句中,添加给表建立中文注释的命令、添加给表建立主键的命令。命令如下所示,截图如图13所示。

    
    -- 新增命令,给表命名。
    COMMENT ON TABLE student IS '学生表';
    
    -- 新增命令,给表添加主键。
    alter table student add constraint pk_student primary key(id);
    
    

     

                                                                                        图13

     

     

    13、经过上述处理之后,SQL脚本即可放到PL/SQL软件中直接运行使用。 图14、 图15、 图16 是效果展示图。

    Mysql数据库表转成Oracle数据库表的SQL语句如下所示:

    /*==============================================================*/
    /* DBMS name:      ORACLE Version 11g                           */
    /* Created on:     2020/2/14 22:29:28                           */
    /*==============================================================*/
    
    
    drop table student003 cascade constraints;
    
    /*==============================================================*/
    /* Table: student003                                             */
    /*==============================================================*/
    create table student003 
    (
       id                 INTEGER              not null,
       stu_name           VARCHAR2(255)        default NULL,
       stu_sex            VARCHAR2(8)          default NULL,
       stu_age            INTEGER              default NULL,
       stu_class          VARCHAR2(255)        default NULL,
       stu_address        VARCHAR2(255)        default NULL,
       stu_mother         VARCHAR2(255)        default NULL,
       stu_m_age          VARCHAR2(255)        default NULL,
       stu_m_phone        VARCHAR2(255)        default NULL,
       stu_father         VARCHAR2(255)        default NULL,
       stu_f_age          VARCHAR2(255)        default NULL,
       stu_f_phone        VARCHAR2(255)        default NULL,
       create_date        DATE                 default NULL,
       update_date        DATE                 default NULL,
       start_date         DATE                 default NULL,
       stop_date          DATE                 default NULL
    );
    
    -- 新增命令,给表命名。
    COMMENT ON TABLE student003 IS '学生表';
    
    -- 新增命令,给表添加主键。
    alter table student003 add constraint pk_student003 primary key(id);
    
    
    comment on column student003.id is
    '主键';
    
    comment on column student003.stu_name is
    '学生姓名';
    
    comment on column student003.stu_sex is
    '性别';
    
    comment on column student003.stu_age is
    '学生年龄';
    
    comment on column student003.stu_class is
    '学生班级';
    
    comment on column student003.stu_address is
    '家庭住址';
    
    comment on column student003.stu_mother is
    '学生母亲姓名';
    
    comment on column student003.stu_m_age is
    '学生母亲年龄';
    
    comment on column student003.stu_m_phone is
    '学生母亲电话';
    
    comment on column student003.stu_father is
    '学生父亲姓名';
    
    comment on column student003.stu_f_age is
    '学生父亲年龄';
    
    comment on column student003.stu_f_phone is
    '学生父亲电话';
    
    comment on column student003.create_date is
    '创建日期';
    
    comment on column student003.update_date is
    '更新日期';
    
    comment on column student003.start_date is
    '入学时间';
    
    comment on column student003.stop_date is
    '毕业时间';
    
    

     

                                                                                        图14

     

                                                                                        图15

     

                                                                                        图16

     

    姊妹篇文章: PowerDesigner,如何将Oracle数据库建表语句转化成Mysql数据库建表语句。     

     

     

    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/201702/24/1487911369_535210.png)
  • mysql 数据库建表语句的规范

    千次阅读 2013-04-07 10:23:29
    -- 数据库建表语句的规范小结 建表语句的规范: 1.字段的设计  A. 数据类型尽量用数字类型,数字类型的比字符类型的要快很多。  B. 数据类型尽量小,这里的尽量小是指在满足可以预见的未来需求的前提下的,但是...

    -- 数据库建表语句的规范小结

    建表语句的规范:
    1.字段的设计
        A. 数据类型尽量用数字类型,数字类型的比字符类型的要快很多。
      B. 数据类型尽量小,这里的尽量小是指在满足可以预见的未来需求的前提下的,但是有不能太小,
       上次监控系统里面的表 mon_tair_stat_detail_2012_1 的data_size 和 use_size定义的是int(15) 实际上最大长度是int(11)  只有bigint才有(15).
       所以在建表的时候一定要预估这个字段最大的长度到底是多少。
      C. 尽量不要允许NULL,除非必要,可以用NOT NULL+DEFAULT 的值来代替。
      D. 少用TEXT和IMAGE,二进制字段的读写是比较慢的,而且,读取的方法也不多,大部分情况下最好不用。

    2.字段名字的定义
      A. 对字段名字的命名也要遵循一个规范。比如说时间: 目前我们定义时间的时候 都是create_time, modify_time,以后建表的时候,都按照这个标准来,就不要写成createtime这样的。
      B. 布尔类型的值均以 is、has、exist 或者 can开头。
      C. 记录行的状态都用status, 逻辑删除的标识用is_deleted。
      D. 新建的表与之前的表的字段有相似或者相同的字段,字段的名称和类型也必须相同,切记不能随意的重新命名,例如:token_md5 就不要命名成tokenmd5了。
      E. 每个字段的COMMENT必须写清楚,枚举类型必须写清楚每个值到底是什么意思。
      F. 表名 字段名字统一用小写。
      G.索引名称统一用字段名称,多个字段的索引加_ 比如 (uid,type)  索引名就是 uid_type。
      H.字段名字不要用驼峰命名法 比如create_time 不要写成CreateTime.
      I.字段命名关键字统一用下划线"_"分割,一般采用简写,关键字要准确,不能有歧义。
      J.字段的排列顺序:自增列、int类型的、varchar类型、时间类型、状态类型(status,is_deleted)。基本原则是:主要内容在前,次要内容在后,不为空的在前,可以空的在后面。
      K.时间类型尽量用 timestamp 4个字节,而不用datetime 8个字节。只用表示日期的字段用date类型。
      L.时间类型自动修改,比如modify_time 在记录被修改的时候回被自动更新成当前的时间: `modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
      而create_time在记录被修改的时候则不必自动更新成当前的时间:`create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'

     

    展开全文
  • 使用 mysqldump 备份数据库也是可行的,因为每次备份的时候都需要mysqldump这个文件, 我在windows备份时没问题,但是放到linux上面时,centos系统死活不认这个文件,但又不想装mysql,一气之下自己研究了个不需要...
  • SpringBatch数据库建表语句,存储springBatch批处理过程中需要保存的数据和步骤信息
  • create table yutq ( id int not null auto_increment COMMENT 'ID标识', a_name char(50) null COMMENT '名称', address char(50) null COMMENT '地址', city char(50) null COMMENT '城市', primary key (id) ...
  • 本文转载: 原文地址: 怎么将oracle的sql文件转换成mysql的sql文件
  • mysql数据库建表失败

    2021-04-27 16:32:16
    mysql数据库建表失败 一开始COLUMN_TRIGGER字段的值为trigger,用hibernate建表,数据库中一直没有表,于是对hibernate进行配置。 打印出执行的sql语句,找到了create语句后用MySQL的command line执行,有以下报错...
  • MySQL建表语句

    万次阅读 多人点赞 2019-05-09 22:34:54
    mysql建表语句 mysql安装教程见博客:MySQL 7.7.25 图文安装教程(Win10) 本篇博客以学生表、课程表以及学生-课程表为例,讲解mysql常用的建表语句。 1. 学生表 Sno(学号) Sname(姓名) Sex(性别) ...
  • #!/bin/bash ...#脚本功能是按照每天对mysql数据库中所有表进行备份,备份文件为:数据库名-表名.sql #实例:backup/2016-08-25/uic-test.sql #测试数据还原实例:mysql -uroot -pprism%didi%dev%135 -h...
  • 目录介绍需求思路思路1:一张表来表示所有数据(如下图)思路2:两张表,学生表和班级表(如下图)代码扩展1....本文将用一个简单的tip来简单介绍建表语句,可以作为建表语句的模板使用 需求 采集一个学校中学生
  • https://yinglongwu.blog.csdn.net/article/details/107304208 博客配套资源(如果积分过高请评论或者私聊我降低积分)
  • mysql数据库建表规范以及注意事项 一、 表设计规范 库名、表名、字段名必须使用小写字母,“_”分割。 库名、表名、字段名必须不超过12个字符。 库名、表名、字段名见名知意,建议使用名词而不是动词。 建议...
  • 文章目录写这个Demo的出发点Demo中还存在的问题期望将来能实现的生成的建表语句源代码 写这个Demo的出发点 入职刚半年的菜鸟一枚,公司项目需支持Oracle、Mysql、DB2三个库,优先都在Oracle开发,然后sql补丁之类...
  • 总述: 看了些文章,要么是建工程,...1.粘贴出来我们的建表语句到notepad,如下: 直接粘贴,去掉多余的行,保留字段就够了.然后全选,Shitf+Tab,对整齐. 2.现在已经把数据拿到了,接下来就是正则替换,先写一个正则表
  • java poi EXCLE 导入/导出 EXCLE 导入 EXCLE导出 poi 导入/导出 源代码+数据库建表语句+测试数据 mysql下建库表 源代码导入eclipse 直接运行 畅通无阻 OK!!!
  • 本博文介绍三种方法,推荐使用第三种,前两种都是尝试。 方法一: 现在的导出还是有缺陷的,导出的文件中还是存在其他不必要的信息 ...#获取hive建表语句 tables=$(hive -e "use $database; show tables;") for...
  • 今天使用PowerDesigner进行数据库建表,生成的sql执行报ora-00906missing left parenthesis 一百度发现是因为clustered关键字 需要修改PowerDesigner默认指定的数据库类型, 数据库->Change Current DBMS ...
  • 修改以下参数 innodb_file_per_table=1 innodb_file_format=Barracuda innodb_strict_mode= 0
  • SpringBoot中修改MySQL数据库建表方言

    千次阅读 2018-04-25 16:06:01
    SpringBoot集成Hibernate后处理MySQL数据库时创建表的时候会出现乱码,是因为在创建表的时候使用默认的建表语言,需要修改建表语言 一、实现 修改配置数据 # jpa配置参数 # 数据库 spring.jpa.database=...
  • #首先输入需要获取的mysql或者sql server的数据库表名称,到对应的数据库中抓出建表语句, #然后,将建表语句进行对应的修改,形成可以在pg中可用的语句 #连接mysql数据 import pymysql import sys import re ...
  • 公司开发新系统,需要创建几百个数据库表,...然后通过java程序的方式,从数据库中取出数据自动生成建表语句,代码如下:(主要是提供思路,对于不同的建表规则不能完全适用,SQL语句为oracle数据库SQL语句) import java.i
  • 数据库建表这3个语句是什么意思?后两个有什么区别? (1)PRIMARY KEY (`ID`) USING BTREE ============================ (2)ENGINE=InnoDB DEFAULT CHARSET=gb2312; ============================ (3)ENGINE ...
  • MYSQL相关建表语句

    2020-09-10 20:04:57
    MYSQL 相关建表语句 各位程序猿大佬们,你们好啊! 作为一位还是萌新的程序猿,这是我的第一篇博客。我写博客的人生也就从今天开始,可能有很多地方不足,希望大佬们能多多照顾我这个萌新啊!首先,我们先来认识...
  • linux进入数据库: 方法一: 1.进入数据库根目录,远程连接数据库:ssh 远程服务名 2.... 3.... 方法二:mysql -u用户名-p密码-h 远程服务名...1.进入到mysql中创建数据库 2.进入到创建的数据库中(use 库名) 3....
  • 基于J2EE的B/S结构人事管理系统,具有人员管理,请假管理,薪资管理等模块,具有权限控制和分页功能,附源代码+表文件。
  • mysql显示建表语句

    2019-07-01 15:15:33
    use database_name; show create table table_name; 使用上面的语句可以输出建表语句

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,499
精华内容 22,199
关键字:

mysql数据库建表语句

mysql 订阅