天天看點

Mysql:SQL語句:DML語句

<b>執行存儲過程</b>

call <code>sp_name</code>([<code>parameter</code>[,...]])

call <code>sp_name</code>[()]

<b>删除</b>

delete [low_priority] [quick] [ignore]

from <code>tbl_name</code>

[where <code>where_condition</code>]

[order by ...]

[limit <code>row_count</code>]

<b>執行表達式計算</b>

do <code>expr</code> [, <code>expr</code>] ... 和select <code>expr</code> [, <code>expr</code>] ...類似,但不傳回select的結果,是以進行表達式的技術時,性能較高

<b>插入資料</b>

insert [low_priority | delayed | high_priority] [ignore] [into] <code>tbl_name</code> [(<code>col_name</code>,...)]

{values | value} ({<code>expr</code> | default},...),(...),...

[ on duplicate key update <code>col_name</code>=<code>expr</code> [, <code>col_name</code>=<code>expr</code>] ... ]

insert [low_priority | delayed | high_priority] [ignore] [into] <code>tbl_name</code>

set <code>col_name</code>={<code>expr</code> | default}, ...

insert [low_priority | high_priority] [ignore] [into] <code>tbl_name</code> [(<code>col_name</code>,...)]

select ...

<b>插入資料-mysql的擴充,和insert類似,除了:如果表中有何新插入沖突的資料,會先删除舊資料,而後再插入新資料</b>

replace [low_priority | delayed] [into] <code>tbl_name</code> [(<code>col_name</code>,...)]

replace [low_priority | delayed] [into] <code>tbl_name</code>

<b>選擇語句select</b>

select

[all | distinct | distinctrow ]

[high_priority] [straight_join] [sql_small_result] [sql_big_result] [sql_buffer_result][sql_cache | sql_no_cache] [sql_calc_found_rows] <code></code>

<code>select_expr</code> [, <code>select_expr</code> ...]

[

from <code>table_references</code>

[group by {<code>col_name</code> | <code>expr</code> | <code>position</code>} [asc | desc], ... [with rollup]]

[having <code>where_condition</code>]

[order by {<code>col_name</code> | <code>expr</code> | <code>position</code>} [asc | desc], ...]

[limit {[<code>offset</code>,] <code>row_count</code> | <code>row_count</code> offset <code>offset</code>}]

[procedure <code>procedure_name</code>(<code>argument_list</code>)]

[into outfile '<code>file_name</code>' [character set <code>charset_name</code>] <code>export_options</code> | into dumpfile '<code>file_name</code>' | into <code>var_name</code> [, <code>var_name</code>]]

[for update | lock in share mode]

]

<b>聯合查詢結果</b>

union [all | distinct]

[union [all | distinct] select ...]

<b>更新表</b>

update [low_priority] [ignore] <code>table_reference</code>

set <code>col_name1</code>={<code>expr1</code>|default} [, <code>col_name2</code>={<code>expr2</code>|default}] ...

<b>截斷表</b>

truncate [table] <code>tbl_name</code>

<b>子查詢:使用子查詢總是有諸多的限制的,而且往往是可以更好的進行優化的。</b>

<b>在條件中的子查詢</b><b></b>

<b>子查詢的結果集特征</b>

一列

多列

一行

單個标量:

{= | &gt; | &lt; | &gt;= | &lt;= |  &lt;&gt; |  != |  &lt;=&gt;} subquery

{exists | not exists} subquery

 單個矢量:

 矢量形式  {= | &gt; | &lt; | &gt;= | &lt;= |&lt;&gt; | != | &lt;=&gt;}  subquery

多行

範圍标量:

 in subquery

{= | &gt; | &lt; | &gt;= | &lt;= |  &lt;&gt; |  != |  &lt;=&gt;} <b>{all | any | some }</b> subquery

 範圍矢量:

<b>相關子查詢 :(内層)子查詢中用到 外層查詢中的表值</b>

例如:select * from t1 where column1 = any (select column1 from t2 where t2.column2 = t1.column2);

<b>作為from 表 來源的子查詢:</b>

select ... from (<code>subquery</code>) [as] <code>name</code> ...

<b>裝載資料檔案中的資料</b>

load data

[low_priority | concurrent] [local]

infile '<code>file_name</code>'

[replace | ignore]

into table <code>tbl_name</code>

[character set <code>charset_name</code>]

[{fields | columns} [terminated by '<code>string</code>'] [[optionally] enclosed by '<code>char</code>'] [escaped by '<code>char</code>'] ]

[lines [starting by '<code>string</code>'] [terminated by '<code>string</code>'] ]

[ignore <code>number</code> lines]

[(<code>col_name_or_user_var</code>,...)]

[set <code>col_name</code> = <code>expr</code>,...]