這裏給你們分享一個快速記憶SQL命令的一個訣竅:code
緊緊記住下面這幾個特殊的語句,SQL命令將不是問題
在標準 SQL 中,字符串使用的是單引號。
若是字符串自己也包括單引號,則使用兩個單引號(注意,不是雙引號,字符串中的雙引號不須要另外轉義)索引
select * from user where username='xiaomin' order by user_id DESC limit 1 offset 2 或者 limit 2,1 'order by user_id DESC' :根據 user_id 倒序排列。若是沒有 DESC 表示正序排列 'limit' : 設定返回的記錄數 'offset' : 設定查詢時偏移個數,默認爲0。
問題:ip
LIMIT 2,1 LIMIT 1 OFFSET 2 這兩個語句爲何表達的意思是同樣的呢?
解答:開發
記住三點: 1.在計算機中索引都是從0開始的。可是LIMIT、OFFSET後面的數字只表示個數,和索引沒有關係。 2.通常涉及到偏移參數(偏移3行),這樣的描述都不包含所描述的那個個數,即3行數據已經不在「視野」內,偏移到「視野外」了,看不見,天然就不包含了。 3.通常涉及到索引參數(截取索引3到索引5),這樣的描述包含索引2,不包含索引5 LIMIT 2,1 : 表示偏移2行數據,獲取1個數據。即獲取的是第3行數據 LIMIT 1 OFFSET 2 : 表示獲取1個數據,可是偏移2行數據,即獲取的也是第3行數據
題外話:
Java和Javascript在字符串截取的時候都有一個方法:substring(),都是以索引的值做爲參數的。根據上面的描述,下面的結果不可貴出來。字符串
//表示開始的索引值和結束的索引值 "0123456789".substring(3); //3456789 "0123456789".substring(3,5); //34
insert into user(name,age) values ('song',18)
update user set age=18 where id=3
delete from user where id=4
鏈接兩張表,只返回知足條件的數據。string
user 表和 permission表: select user.name , permission.type from user join permission on permission.id = user.id
獲取左表全部記錄,即便右表沒有對應匹配的記錄,並將沒有匹配的右表字段記爲null。it
user 表和 permission表: select user.name , permission.type from user left join permission on permission.id = user.id
固然上面的僅僅能夠知足平常開發需求,可是對於自己就不容易記的SQL語句,你是否是又學到了比較好的記憶方法呢?io
但願本文對你有幫助。date