MySQL中Sql Server数据库项目的对应方法

MySQL中Sql Server数据库项目的对应方法

在本文中,我们将介绍如何在MySQL中创建与Sql Server数据库项目相当的项目。

阅读更多:MySQL 教程

创建MySQL数据库

  • 在MySQL中新建一个数据库。
CREATE DATABASE mydb;
  • 创建存储过程(SP)和函数(UDF)使用的Schema。
CREATE SCHEMA my_sp_udf;

创建表

  • 在MySQL中,CREATE TABLE创建一张表。
  • DataType的语法是Sql Server相似的。
CREATE TABLE User(
    UserId INT NOT NULL,
    UserName VARCHAR(50) NOT NULL,
    UserPwd VARCHAR(50) NOT NULL,
    InsertTime DATETIME NOT NULL DEFAULT NOW(),
    PRIMARY KEY (UserId)
);
  • 也可以使用CREATE TABLE AS SELECT。
CREATE TABLE UserCopied AS SELECT * FROM User WHERE 1=2;

导入数据

  • 使用LOAD DATA LOCAL INFILE可以将文件的内容加载到一张表中。
LOAD DATA LOCAL INFILE '~/user.txt' INTO TABLE User FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (UserId, UserName, UserPwd, InsertTime);

视图

  • 创建视图的语法很仿Sql Server。
CREATE VIEW UserView AS SELECT UserName FROM User;

存储过程(SP)

  • 在MySQL中,可以使用DELIMITER来定义分割符。
DELIMITER //
CREATE PROCEDURE my_sp_udf.GetUser(IN userInput VARCHAR(50), OUT userCount INT)
BEGIN
    SELECT COUNT(*) INTO userCount FROM User WHERE UserName = userInput;
END //
DELIMITER ;
  • 需要在调用时初始化参数。
SET @resultCount = 0;
CALL my_sp_udf.GetUser('test', @resultCount);
SELECT @resultCount;

函数(UDF)

  • 通过创建Scala脚本,并使用sbt将其转换为扩展库,可以调用Scala集合函数,并使用MySQL的通用列表函数。
  • 下面的Scala代码定义了一个fn_concat函数,它接受Array[String]和分隔符作为参数,并将数组的内容连接在一起。将src/fn_concat.scala复制到服务器上。
package com.mydocs.my_sp_udf

import org.apache.spark.sql.api.java.UDF1

class FnConcat extends UDF1[Seq[String], String] {
def call(words: Seq[String]): String = {
words.fold("")((a, b) => a + "," + b).substring(1)
}}

object FnConcat {
  def register(sparkSession: SparkSession, name: String): Unit = {
    sparkSession.udf.register(name, new FnConcat())
  }
}
  • 之后,您可以在MySql中使用此功能。
CREATE FUNCTION my_sp_udf.fn_concat RETURNS String
    SONAME 'libscalalib.so'
    LANGUAGE C
    OPTIONS (NAME 'fn_concat', LIBRARY 'scalalib.so');

触发器

  • 在MySQL中,使用CREATE TRIGGER.
CREATE TRIGGER before_user_delete BEFORE DELETE ON User FOR EACH ROW
BEGIN
INSERT INTO User_audit SELECT NOW(), 'DELETE', OLD.Name;
END;

总结

在本文中,我们介绍了MySQL中与Sql Server数据库项目相当的项。这将帮助您在转换和维护项目时更容易迁移。希望这篇文章对您有所帮助,感谢您的阅读!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程