SQLserver 轉換Mysql 一些文法使用的區別

來源:互聯網
上載者:User

標籤:使用   ar   時間   new   sql   ad   mysql   ef   


1.預存程序的文法各式
eg:
DELIMITER $$

CREATE PROCEDURE test_p_add9
(

p_name VARCHAR(100),

p_test VARCHAR(100),

p_age INT,
OUT o_newid INT
)

BEGIN

INSERT INTO table_test (f_name,f_test,f_age,f_date) VALUES (p_name,p_test,p_age,NOW());

SET o_newid=LAST_INSERT_ID();

END$$
DELIMITER ;
/*
DELIMITER 其實就是告訴mysql解譯器,該段命令是否已經結束了,mysql是否可以執行了。
預設情況下,delimiter是分號;。在命令列用戶端中,如果有一行命令以分號結束,
那麼斷行符號後,mysql將會執行該命令。如輸入下面的語句
select * from test_table;
然後斷行符號,那麼MySQL將立即執行該語句。
但有時候,不希望MySQL這麼做。在為可能輸入較多的語句,且語句中包含有分號。
*/
  注意點:
    a.每句話後邊都要加分號。
    b.預存程序參數不需要加@
    c.使用call 調用預存程序的時候 參數 需要加@
    例如:
      SET @s=0;
      CALL test_p_add9 (‘xxx‘,‘123xx‘,12, @s);
      SELECT @s;
    d.聲明變數可以直接賦值 set 不需要 declare
    e.沒有 as
    f. output 在前邊 sqlserver 的在後邊
    g.預存程序沒有參數也要寫 ()
    h.mysqlparams 參數 需要用?代替 @
2.分頁語句
  SELECT * FROM table_test LIMIT 5,3;
3.相應的top 語句
  SELECT * FROM table_test LIMIT 5;
4.字串拼接使用concat
  SELECT CONCAT(‘1‘,‘2‘);
  如果使用‘1‘+‘2‘ 結果是3
5.使用now() 擷取目前時間
  select now();
  select curdate()日期 current_date()
  select CURTIME()時間

6.isnull 函數
  如果參數是null 返回1 不是則返回0
7.ifnull 函數 相當於sql isnull
  ifnull(null,10)
8.uuid() 函數 代替mssql newid();

9.row_count() 函數 代替 @@rowcount
  僅限於 update delete insert
10.scop_identity()
  last_insert_id()
11.mysql 不支援nchar,nvarchar,ntext類型
12.自增語句 使用auto_increment
13. default 後邊直接寫值不用加括弧
14.識別符
  sqlserver: [name]
  mysql: ‘name‘
15.mysql 支援 values 這個 sql sqlserver 2008 以後也支援
  INSERT INTO table_test (f_name,f_test,f_age,f_date) VALUES (‘321‘,‘321‘,21,NOW()),(‘123‘,‘123‘,123,NOW())

16 select @count=count(*) from table
  mysql select count(*) from table into @count
17 if條件陳述式
  if 條件 then
  end if

  或者
  if 條件 then
  else
  end if
  或者
  if 條件then
  elseif 條件 then
  end if

  eg:
    DELIMITER $$
    CREATE PROCEDURE test_test1
    (
      p_index INT
    )
    BEGIN
    IF p_index >0 THEN
      SELECT 1 ;
    ELSE
      SELECT 2;
    END IF ;

    END $$;

    DELIMITER;

    mysql 文法沒有return
18. 時間操作函數
  SELECT DATE_ADD(CURDATE(),INTERVAL 1 DAY) 目前時間加1天
  SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY) 目前時間減去1天

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.