怎样把sql数据库转换成Mysql的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样把sql数据库转换成Mysql的?相关的知识,希望对你有一定的参考价值。

您好,很高兴为您解答。\x0d\x0a\x0d\x0a1、mysql的工具使用navicat;\x0d\x0a2、SQL在安装的时候,需要安装SQL native Clent,并且开启服务;\x0d\x0a3、在navicat中创建数据连接,创建一个对应的空数据库\x0d\x0a4、创建数据库后,打开数据库,选择导入向导\x0d\x0a\x0d\x0a5、导入向导里,选择ODBC\x0d\x0a\x0d\x0a6、点下一步,导入里面选择sql native client;\x0d\x0a\x0d\x0a7、下一步,选择使用windows NT 集成安全设置,数据库选择你要转换的数据库,确定\x0d\x0a\x0d\x0a8、如表结构完全一样,那么就全选数据表吧,确定,因我们是新建的数据库,里面是空的,那么默认是创建表,如果是要导入到已经有的表结构里,则在目标表里选择要导入的目标表,然后选字段。注意在第6步的时候,选对表的主键进行设置!\x0d\x0a\x0d\x0a9、如果是添加数据,则选择:添加记录到目标表;如果是需要ID值跟源数据库一致,则选择复制,删除目标全部数据,并从源数据重新导入\x0d\x0a\x0d\x0a注意,导入的时候,如果是已存在表结构,则键位不能空,如果是添加数据,则ID值空着,不要添加主键,在导入过程中如果出现错误,则根据出错提示处理,此方法绝对可以!\x0d\x0a\x0d\x0a如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】\x0d\x0a\x0d\x0a希望我的回答对您有所帮助,望采纳!\x0d\x0a\x0d\x0a ~ O(∩_∩)O~ 参考技术A sql是指MS SQL SERVER么? SQL SERVER有一个自带的导入导出工具,你可以用它来把SQL SERVER的数据导入到MYSQL。

如果无法执行的话,可以自己编写程序,将SQL SERVER的数据按照MYSQL中你建设的表的字段标准来导出,然后再导入到MYSQL。本回答被提问者采纳
参考技术B 没有您所说的"sql数据库",您可以是要将MS SQL Server的数据库转换成mySQL的是吧?
您先在msSQL中把数据库导出成.sql文件,然后,在mySQL中将.sql文件导入就可以了。有很多mySQL的管理工具,用它们就更方便了
参考技术C 可以用数据库转换工具,比如DB2DB,可以进行不同类型数据库之间快速转换

我怎样才能把它翻译成mysql?

【中文标题】我怎样才能把它翻译成mysql?【英文标题】:How can I translate this to mysql? 【发布时间】:2018-03-26 19:43:06 【问题描述】:

我最近从 sql server 迁移到 mysql,但在将我的 sql 存储过程转换为 mysql 存储过程时遇到了麻烦。 这是我的 SQL SERVER 存储过程:

CREATE PROCEDURE dbo.GetGrades  
    @GradeId int = 0
    ,@Name nvarchar(100) = ''
AS
BEGIN   
    SET NOCOUNT ON;


    SELECT ISNULL(I.GradeId,0) as GradeId
      ,ISNULL(I.Name, '') as Name
      ,ISNULL(I.Details, '') as Details
      ,ISNULL(I.StatId, 0) as StatId
      ,ISNULL(I.CreatedById, 0) as CreatedById
      ,ISNULL(U.UserName, '') as CreatedByName
      ,ISNULL(I.CreatedOn, null) as CreatedOn

    FROM Grades I

        LEFT JOIN Users U ON U.UserId = I.CreatedById

    WHERE (I.GradeId = @GradeId OR @GradeId = 0)
      AND (I.Name LIKE '%' + @Name +'%' OR @Name = '')   
      AND I.StatId <> 2 

END

GO

这就是我迄今为止在 mysql 存储过程中所做的:

DELIMITER $$

CREATE PROCEDURE GetGrades
(   
     IN intGradeId INT  
    ,IN strName VARCHAR(1000)       
)
BEGIN
SELECT 
      gradeId
    , gradeName
    , details
    , statId
    , createdById
    , createdOn 
FROM grades 
WHERE (gradeId = intGradeId OR intGradeId = 0)
AND (gradeName LIKE '%' + strName +'%' OR strName = '');
END

当我执行此操作时,这是错误消息:

MySQL said: Documentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '+ strName +'%' OR strName = '')
AND statId = 1;
END' at line 16

另外,mysql中有ISNULL()函数吗?

【问题讨论】:

【参考方案1】:

类似这样的:

DELIMITER $$

CREATE PROCEDURE GetGrades (   
     IN in_intGradeId INT, 
     IN in_strName VARCHAR(1000)       
)
BEGIN
    SELECT gradeId, gradeName, details, statId, createdById, createdOn 
    FROM grades 
    WHERE (gradeId = in_intGradeId OR in_intGradeId = 0) AND
          (gradeName LIKE CONCAT('%', in_strName, '%') OR in_strName = '');
END;

【讨论】:

以上是关于怎样把sql数据库转换成Mysql的?的主要内容,如果未能解决你的问题,请参考以下文章

在SQL中怎样把字符型的数据转换成日期型的呢

在SQL中怎样把字符型的数据转换成日期型的呢

怎么将oracle的sql文件转换成mysql的sql文件

怎么把DB3(或者MYsql)数据库转化sql数据库

sql 中怎样让日期转变成字符串

如何把Excel数据转化成SQL语句