zoukankan      html  css  js  c++  java
  • SqlServer与MySql语法比较

    1、复制表(包括表结构、表数据)

    SqlServer:

      Select * into user_copy from user

    MySql:

      CREATE TABLE user_copy LIKE user;

      INSERT INTO user_copy SELECT * FROM user;

    2、多表连接做update

    SqlServer:

      UPDATE s1 SET s1.salary= s2.salary 
      FROM (SELECT * FROM s WHERE age>10) AS s1 JOIN s2 ON s1.uname= s2.uname
      WHERE s1.uname = 'xx'

    MySql:(无法直接对目标表的查询数据直接做更新,只能针对目标表操作)

      UPDATE s1 JOIN s2 ON s1.uname= s2.uname
      SET s1.salary= s2.salary
      WHERE s1.uname = 'xx'

    3、修改表字段结构

    SqlServer:  

      ALTER TABLE user ALTER COLUMN uid INT NOT NULL
      GO
      ALTER TABLE user ALTER COLUMN name nvarchar(100) NOT NULL
      GO

    MySql:(无法直接对目标表的查询数据直接做更新,只能针对目标表操作)

      ALTER TABLE user MODIFY uid INT NOT NULL COMMENT 'xx';
      ALTER TABLE user MODIFY name varchar(100) NOT NULL COMMENT 'xxy';

    4、添加、修改主键

    SqlServer:

      ALTER TABLE user ADD CONSTRAINT PK_uid_name PRIMARY KEY(uid, name)

    MySql:(无法直接对目标表的查询数据直接做更新,只能针对目标表操作)

      ALTER TABLE user DROP PRIMARY KEY;
      ALTER TABLE user ADD PRIMARY KEY (uid, name);

    5、查询数据拼接Sql语句

    SqlServer:

      SELECT 'insert into dbo.TableName([ID],[Name]) values ('+ CAST([ID] AS VARCHAR) + ',''' + CAST([Name] AS VARCHAR)  + ''')' 
      FROM dbo.TableName WHERE ID > 433

    6、查询字段首位为汉字

    SqlServer:

    SELECT * FROM 表名 WHERE ascii(字段)>127

    7、查询字段包含汉字(任意位)

    SqlServer:

    SELECT * FROM 表名 WHERE 字段 LIKE '%[吖-座]%'
    --[吖-座]是中文字符集第一个到最后一个的范围

    8、SqlServer和Mysql插入记录前判断是否存在,存在则插入,不存在则修改

    SqlServer:

    if NOT exists(SELECT * FROM Setting WHERE ID=0)
    INSERT INTO Setting(ID,Title,SearchKeys, ServiceIntervalSecond,SleepMillisecondPerSearch) VALUES(0,@title,@searchKeys,@serviceIntervalSecond,@sleepMillisecondPerSearch) 
    ELSE 
    UPDATE Setting SET Title=@title,SearchKeys=@searchKeys,ServiceIntervalSecond=@serviceIntervalSecond, SleepMillisecondPerSearch=@sleepMillisecondPerSearch

    MySqL:

    INSERT INTO `his_examine_result` (Mid,His_Examine_Mid, His_File_Mid, ResultType, His_Employee_Mid,
                                      His_Employee_Name, ExamineResult, ExamineItemName, ExamineStandardName, 
                                      ExamineItemUnit, ExamineHighValue, ExamineLowValue, ExamineDiscription, Discription)
        VALUES ($mid,$examineMid,$fileMid,1,null,null,'',$itemName,$standName,$itemUnit,$highValue,$lowValue,'','') 
    ON DUPLICATE KEY UPDATE ExamineResult=$result,ExamineDiscription=$dis

     9、创建索引

    SqlServer:

    IF NOT EXISTS(SELECT * FROM sysindexes WHERE id = OBJECT_ID('T_Person_info') and name = 'idx_pCode')
    CREATE NONCLUSTERED INDEX idx_pCode ON [dbo].T_Person_info
    (
    pCode ASC
    ) ON [PRIMARY];

  • 相关阅读:
    Linux下 Nginx 启动 重启 关闭
    在Idea中 的terminal 使用 git
    前端页面出现乱码
    Mac下Eclipse(Oxygen)添加Tomcat插件
    Linux下vsftp匿名用户配置
    500 OOPS: vsftpd: refusing to run with writable anonymous root
    FTP数字代码的意义
    CentOS 6.3下安装Vsftp,虚拟用户
    CentOS 6.3 下 vsftp搭建
    CentOS 6.3安装配置LAMP服务器(Linux+Apache+MySQL+PHP5)
  • 原文地址:https://www.cnblogs.com/fightingtong/p/9114941.html
Copyright © 2011-2022 走看看