SQL語句

數(shù)據(jù)庫的SQL語句還都是在大學(xué)學(xué)習(xí)的呢,記得當(dāng)時(shí)將數(shù)據(jù)庫語句背的滾瓜爛熟的,這兩年在搞iOS開發(fā),對本地化存儲使用了數(shù)據(jù)庫語句,無非就是一些使用FMDB增、刪、改、查,直到一個(gè)哥們面試回來問我一些問題,我才意識到,模糊查詢、排序等復(fù)雜一點(diǎn)的都在畢業(yè)的時(shí)候還給老師了。現(xiàn)在把它簡單的整理一下。

一、基礎(chǔ)篇

1、創(chuàng)建數(shù)據(jù)表

創(chuàng)建"USER_MEMBER"表,包含兩個(gè)字段"USER_ID、NAME"

CREATE TABLE IF NOT EXISTS USER_MEMBER(USER_ID TEXT , NAME,TEXT ,AGE TEXT)

2、基本增、刪、改、查。

<1>增(數(shù)據(jù)表新增字段)

INSERT INTO USER_MEMBER(USER_ID,NAME,AGE)values(?,?,?)

<2>刪除 (刪除表中用戶ID為001的數(shù)據(jù))

DELETE FROM USER_MEMBER WHERE USER_ID = '001'

<3>改 ?(將表中用戶ID為001的人,年齡修改為25歲)

UPDATE USER_MEMBER SET AGE = '25' WHERE USER_ID = '001'

<4>查 ?(查詢表中年齡為25,名字為李志強(qiáng)的所有用戶)

SELECT * FROM USER_MEMBER WHERE AGE = '25' AND NAME = '李志強(qiáng)'

二、增強(qiáng)篇 ?模糊查詢 (主要是LIKE關(guān)鍵字 及通配符的使用)。

1、% :表示任意0個(gè)或多個(gè)字符,可匹配任意類型和長度的字符。

<1>查詢表中所有姓 '李' 的用戶

?SELECT * FROM USER_MEMBER WHERE NAME LIKE '李%'

<2>查詢表中NAME所有以 '強(qiáng)' 結(jié)尾的所有用戶

SELECT * FROM USER_MEMBER WHERE NAME LIKE '%強(qiáng)'

<3>查找NAME中包含 '強(qiáng)' 的用戶 (例:“李志強(qiáng)”,“李強(qiáng)”, “強(qiáng)哥”)

SELECT * FROM USER_MEMBER WHERE NAME LIKE '%強(qiáng)%'

<4>查找NAME中既有 '李' 、又有 '強(qiáng)' 的用戶。(例:“李志強(qiáng)”,@“強(qiáng)志李”,@“強(qiáng)李志”)。

SELECT * FROM USER_MEMBER WHERE NAME LIKE '%李%' AND NAME LIKE '%強(qiáng)%'

2、_ : 表示任意單個(gè)字符,匹配單個(gè)任意字符,它常用來限制表達(dá)式的字符長度語句。

<1>、查詢表中第二個(gè)字符為“志”的用戶

SELECT * FROM USER_MEMBER WHERE NAME LIKE '_志_'

<2>、查找第三個(gè)字符為'強(qiáng)'的用戶。

SELECT * FROM USER_MEMBER WHERE NAME LIKE '_ _強(qiáng)';

3、擴(kuò)展:網(wǎng)上還有一種正則表達(dá)式的方法

<1>、[ ]指定一個(gè)字符、字符串或范圍,要求所匹配對象為它們中的任一個(gè)。

SELECT * FROM [user] WHERE u_name LIKE '[張李王]三'

將找出“張三”、“李三”、“王三”(而不是“張李王三”);

如: [ ] 內(nèi)有一系列字符(01234、abcde之類的)則可略寫為“0-4”、“a-e”

SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'

將找出“老1”、“老2”、……、“老9”;

<2>、[^ ] :其取值和 [] 相同,但它要求所匹配對象為指定字符以外的任一個(gè)字符。

比如: SELECT * FROM [user] WHERE u_name LIKE '[^張李王]三'

將找出不姓“張”、“李”、“王”的“趙三”、“孫三”等;

SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';

將排除“老1”到“老4”,尋找“老5”、“老6”、……

三、實(shí)用篇(排序)

我在優(yōu)化IM功能點(diǎn)時(shí)遇到過這樣一個(gè)問題,查看全部群成員(最多可達(dá)3000人),如果全部放倒內(nèi)存中排序非常耗費(fèi)性能,所以在在數(shù)據(jù)庫中取的話直接排序好之后再拿出來。

1、查詢USER_MEMBER表所有數(shù)據(jù),按照ID逆序、NAME升旭(a-z)排列,(UPPER,不區(qū)分大小寫)。

SELECT * FROM USER_MEMBER ?ORDER BY USER_ID DESC, ?UPPER(NAME).

2、隨機(jī)查找表中10條數(shù)據(jù)

SELECT * FROM USER_MEMBER? ORDER BY? RAND() LIMIT 10

3、實(shí)用sql語句查詢出省名以“湖”開頭,右邊為“436001”所在的市區(qū)

SELECT *FROM CITYS WHERE PROVINCE_NAME LIKE ‘湖%’ AND POST_CODE = 436001;

文章在后續(xù)還會推出數(shù)據(jù)庫升級、事物操作數(shù)據(jù)庫等,歡迎大家點(diǎn)評。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 50個(gè)常用的sql語句 Student(S#,Sname,Sage,Ssex) 學(xué)生表 Course(C#,Cna...
    最美的太陽WW閱讀 3,225評論 0 23
  • 一、基礎(chǔ) 1、創(chuàng)建數(shù)據(jù)庫(create) CREATE DATABASE database-namecreate ...
    YBshone閱讀 647評論 0 1
  • 基礎(chǔ) 創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE database-name 刪除數(shù)據(jù)庫 drop databas...
    RoronoaZoro丶閱讀 414評論 0 0
  • 1、說明:創(chuàng)建數(shù)據(jù)庫CREATE DATABASE database-name2、說明:刪除數(shù)據(jù)庫drop dat...
    sakura_L閱讀 387評論 0 6
  • 我的簡書開通了。以后會發(fā)布一些關(guān)于我的一些資訊
    非常任性班主閱讀 258評論 0 0