1.SELECT [ALL|DISTINCT] <目標(biāo)列表達(dá)式> [,<目標(biāo)列表達(dá)式> ]...
2.FROM <表名或視圖名> [,<表名或視圖名> ]...
3.[ WHERE <行條件表達(dá)式> ]
4.[ GROUP BY <列名1> ,[列名2][,...][HAVING組條件表達(dá)式] ]
5.[ ORDER BY <列名1> ,[ASC|DESC][,...] ];
上面5個(gè)句子書寫時(shí)按順序,盡量一個(gè)句子一行,但在機(jī)器內(nèi)部執(zhí)行時(shí)的順序是2-3-4-1-5,
即先確定從哪個(gè)數(shù)據(jù)源查找,
然后確定過(guò)濾條件,
若有分組則對(duì)過(guò)濾后的記錄進(jìn)行分組,若分組有限制條件則對(duì)分組進(jìn)一布限制,
然后將符合條件的列查詢出來(lái),
最后對(duì)結(jié)果進(jìn)行排序。
select name as '名字',password as '密碼' form user;select * from message where id between 2 and 6;select * from message where title like '%留言_'; //%匹配任意個(gè)字符,_匹配一個(gè)字符select * from message where uid in (2,3,4); //刪除2、3、4共3條數(shù)據(jù)
[<表名1>.][<列名1>] <比較運(yùn)算符> [<表名2>.][<列名2>]
[<表名1>.][<列名1>] BETWEEN [<表名2>.][<列名2>] AND [<表名2>.][<列名3>]
select * from user,msg where user.id=msg.uid;select m.id,m.title '標(biāo)題',m.ip,u.username '名字' from message as m,user as u where m.uid=u.id;
一個(gè)SELECT-FROM-WHERE語(yǔ)句成為一個(gè)查詢塊。
將一個(gè)查詢塊嵌套到另外一個(gè)查詢塊的WHERE子句或HAVING短句條件中的查詢成為子查詢或嵌套查詢,它允許我們根據(jù)另一個(gè)查詢的結(jié)果檢索數(shù)據(jù)。
子查詢的方法是由里向外處理,即每個(gè)子查詢?cè)谄渖弦患?jí)查詢之前查詢,子查詢的結(jié)果用于建立其副查詢的查詢條件。
select *from messagewhere id in (
select id
from users
where username='admin'
);
集合的并操作:使用UNION運(yùn)算符經(jīng)多個(gè)SELECT查詢結(jié)果合并起來(lái),形成一個(gè)完整的查詢結(jié)果,系統(tǒng)合并時(shí)會(huì)自動(dòng)去掉重復(fù)的元組。
注意:前后SELECT語(yǔ)句查詢的列數(shù)要相同。
1. 插入數(shù)據(jù)
1. 插入單個(gè)元組:
INSERT INTO <表名> [(<屬性列1>[,<屬性列2>...])]
VALUES (<常量1>[,<常量2>]...);
2. 通過(guò)子查詢向表中插入多條數(shù)據(jù)
INSERT INTO <表名> [(<屬性列1>[,<屬性列2>...])]
SELECT [(<屬性列1>[,<屬性列2>...])]
FROM <表名>
[WHERE 子句]
[GROUP BY 子句]
[ORDER BY 子句];
3. 通過(guò)SELECT INTO語(yǔ)句創(chuàng)建新表并插入多條數(shù)據(jù)
SELECT <列名1>,<列名2>,...<表達(dá)式1> as <別名1>,...INTO <表名>
FROM <表名1>,<表名2>,...
[WHERE 條件表達(dá)式]
[GROUP BY 子句]
[ORDER BY 子句];
2. 修改數(shù)據(jù)
UPDATE <表名>
SET <列名1> = <表達(dá)式1> [,<列名2> = <表達(dá)式2>]...
[WHERE <條件>];
3. 刪除數(shù)據(jù)
DELETE
FROM <表名>
[WHERE <條件>]
授權(quán)語(yǔ)句
GRENT <權(quán)限1>,[,<權(quán)限2>]...
[ON <對(duì)象名>]
TO <用戶1>[,<用戶2>],
[WITH GRANT OPTION];
創(chuàng)建用戶blog,設(shè)密碼為666666,并將數(shù)據(jù)庫(kù)db_blog的所有權(quán)限賦給他
grant all privileges on db_blog.* to blog@localhost identified by '666666';
select * from message order by uid desc;select * from message order by uid desc limit 5; //默認(rèn)從0開(kāi)始,查詢5條數(shù)據(jù)
select * from message order by uid desc limit 2,4; //從第2條開(kāi)始查詢4條數(shù)據(jù)
count()
sum()
avg()
max()
min()
原文來(lái)自:簡(jiǎn)書/reber