MySql中特有的文法

來源:互聯網
上載者:User

LIMIT

SELECT * FROM table   LIMIT [offset,] rows | rows OFFSET offset

ON DUPLICATE KEY UPDATE

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]

    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

HANDLER

HANDLER tbl_name OPEN [ AS alias ]
HANDLER tbl_name READ index_name { = | >= | <= | < } (value1,value2,...)

 

DO

DO expr [, expr] ...

DO用於執行運算式,但是不返回任何結果。DO是SELECT expr的簡化表達方式。DO有一個優勢,就是如果您不太關心結果的話,DO的速度稍快。

DO主要用於執行有副作用的函數,比如RELEASE_LOCK()。

 

Join

MySQL中cross join等同於inner join,多個表用逗號分隔,在無聯合條件下與inner join是語義相同的。

可以使用STRAIGHT_JOIN強制左表在右表之前被讀取。STRAIGH_JOIN可以被用於這樣的情況,即聯合最佳化符以錯誤的順序排列表。

MYSQL擴充了SQL標準文法,可以使用下面的方式串連:

SELECT * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)

相當於:

SELECT * FROM t1 LEFT JOIN (t2 INNER JOIN t3 INNER JOIN t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c);

可以使用USING(column_list)子句為一系列的列進行命名。這些列必須同時在兩個表中存在。如果表a和表b都包含列c1, c2和c3,則以下聯合會對比來自兩個表的對應的列:

a LEFT JOIN b USING (c1,c2,c3) 《=》 a left join b on a.c1= b.c1 and a.c2=b.c2 and a.c3=b.c3

 

DELETE

可以使用DELETE QUICK再加上OPTIMIZE TABLE加快刪除速度;

可以使用LIMIT來限制每次刪除的記錄數,確保一個DELETE語句不會佔用過多的時間,但從多個表刪除時不能使用LIMIT和ORDER BY;

可以一次從多個表中刪除記錄(可以利用多個表查詢):

DELETE t1, t2 FROM t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;

或:

DELETE FROM t1, t2 USING t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;

當搜尋待刪除的行時,這些語句使用所有三個表,但是只從表t1和表t2中刪除對應的行。

 

UNION

SELECT ...

UNION [ALL | DISTINCT]
SELECT ...
[UNION [ALL | DISTINCT]
SELECT ...]

預設情況下UNION代表UNION DISTINCT。

 

multiple-table Update

UPDATE [LOW_PRIORITY] [IGNORE] table_references

    SET col_name1=expr1 [, col_name2=expr2 ...]
    [WHERE where_definition]

例子:

UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.