基本查詢方法
實(shí)例1:多字段查詢
select 字段1权逗,字段2……字段n from user妆绞;
解析:從user表中查詢字段1、字段2一直到字段n的記錄曼尊,且展示順序也是這樣卜朗。
實(shí)例2:as新命名查詢
select 字段1 ?as 'newname' from user;
解析:在user表中席覆,查詢到字段1中記錄的數(shù)據(jù)浙炼,并將字段1改名為newname展現(xiàn)出來粒梦。但是晦嵌,并不能修改數(shù)據(jù)庫中的字段名鞋既,而且這個(gè)引號(hào)不能省略。
distinct不重復(fù)查詢方法
實(shí)例1:
select distinct ?email from user;
解析:將user表中email這一列的數(shù)據(jù)耍铜,只顯示不重復(fù)的數(shù)據(jù)邑闺。在email這里,不建議用多個(gè)列棕兼,因?yàn)閐istinct最好單獨(dú)用在一個(gè)列上陡舅。
邏輯組合語句查詢方法:
實(shí)例1:and并且
select id from user where pwd=md5(123456) and email='user2@jkxy.com';
解析:查詢user表中密碼為md5(123456)加密過的,且郵箱地址為'user2@jkxy.com'的id號(hào)碼伴挚。
實(shí)例2:運(yùn)算符
select id from user where pwd=md5(123456) and id >=5;
解析:查詢密碼為md5(123456)加密過的且id大于等于5的ID號(hào)碼
同理靶衍,and可以變成or,就是或茎芋,其他的例如颅眶!=不等于,各種運(yùn)算符田弥,都可以嘗試涛酗。
實(shí)例3:is not 不為……
select id from user where pwd is not null;
解析:查詢user表中,密碼不為空的ID號(hào)碼。
同理商叹,若改成is則是為空的……
實(shí)例4:between ……and……在……和……之間
select * from user where id between 6 and 8;
解析:查詢user表中燕刻,id在6和8之間的所有符合條件的id號(hào)碼。
同理剖笙,也可以not between,那么就查詢不在6和8之間的id號(hào)了
實(shí)例5:模糊查詢like
select * from user where username like '%user%';
解析:查詢user表中卵洗,username字段中,中間有user字符的所有記錄弥咪。%表示可以為任意數(shù)值过蹂。
同理,not like就是查詢與上方相反的數(shù)據(jù)聚至。
實(shí)例6:in指定范圍查詢
select * from user where id in(5,7,8);
解析:查詢id在5榴啸,7,8三個(gè)數(shù)字中的所有記錄晚岭。
實(shí)例7:order排序
select * from user order by score ASC;
解析:查詢user表中所有的以分?jǐn)?shù)為關(guān)鍵字鸥印,由低向高排序的記錄;ASC代表由低向高排序坦报。
select * from user where order by score DESC;
解析:同上库说,只不過是按分?jǐn)?shù)由高到低排序,查詢片择。若不添加DESC之類的潜的,就會(huì)默認(rèn)從低向高排序。
計(jì)算表中記錄的方法
實(shí)例1:count計(jì)算id數(shù)量
select count(id) num from user where id>6;
解析:計(jì)算user表中字管,符合where條件的id數(shù)量啰挪,展現(xiàn)出來,并且起名為num嘲叔;
實(shí)例2:avg計(jì)算平局值
select avg(score) num from user;
解析:將user表中score字段中所有記錄的平均值計(jì)算出來亡呵,并且以num的名字展現(xiàn)。
實(shí)例3:min最小值max最大值
select min(score) minname from user;
select max(score) maxname from user;
解析:查詢score字段中的最小值和最大值硫戈,并且以相應(yīng)的名字展現(xiàn)
實(shí)例4:綜合實(shí)例sum和group
select userid,sum(score) as total from mark group by (userid);
解析:查詢mark表中以u(píng)serid為分組標(biāo)準(zhǔn)的userid字段和分?jǐn)?shù)字段的總和锰什,userid字段值相同的為一組。
實(shí)例5:綜合實(shí)例count和total
select userid,count(id) as num from mark group by(userid);
解析:在以u(píng)serid值為標(biāo)準(zhǔn)分組后丁逝,計(jì)算出每一組的id值是多少汁胆,以num的名字展現(xiàn)。這里我用的是userid代表用戶名字霜幼,id表示考試的科目嫩码,只要count計(jì)算出來的科目總數(shù)符合要求,那么就說明用戶沒有缺考罪既。
實(shí)例6:綜合實(shí)例min和group
select userid,min(score) as minname from mark group by(userid);
解析:查詢userid的最低分?jǐn)?shù)并且展現(xiàn)铸题。铡恕。。回挽。
select userid,xk,min(score) as minname from mark group by(userid);
解析:這就是在上面的基礎(chǔ)上没咙,又展現(xiàn)出了到底哪門學(xué)科是最低分猩谊。
select userid,xk,min(score) as minname from mark group by(userid) having min<70;
解析:后面新多出來的having是指在前面的基礎(chǔ)上千劈,再次篩選,篩選條件是min<70的牌捷。附一句:having只能跟在gruop by后面進(jìn)行二次篩選墙牌。