basis and exercise

select now();
select CURDATE();
insert into pa_login_logs(party_no, login_time) values(3,now());
SELECT *,max(login_time) FROM pa_login_logs group by party_no order by max(login_time) desc;
 
 
5.有一張表格s_su,有三個字段age,name,score ,現在根據要求寫出SQL語句:
1),根據年齡分組,選出分數score>90的分組的年齡分組和同學個數。
select age,count(*) from s_su where scoure >90 group by age;
2),根據年齡分組,選出平均分大於85的分組的年齡分組和平均分。
select age,avg(scoure) from s_su group by age having avg(scoure) >90;
3),假設這個表有100條記錄,用SQL語句打印出分頁記錄,打印出第50-60的記錄.
Mysql:select * from s_su limit 50,60;
—-》這個主要考到分組和使用函數,另外使用having挑選出適合的分組。至於limit是Mysql專業函數,其他數據庫不知道能不能通用,大傢可以測試下。

6.假設表A有6條記錄,B有4條記錄,進行匹配的字段為name,看下面SQL語句給出結果:
1),select * from A left join B on A.name = B.name,最多有幾條記錄,最少呢?
答,最多和最少都是6條。
2),select * from A right join B on A.name = B.name,最多有幾條記錄,最少呢?
答,最多和最少都是4條。
3),select * from A left jion B on A.name = B.name union select * from A left jion B on A.name = B.name,最多有幾條記錄,最少呢?
答,最多和最少都是6條。
4), select * from A left jion B on A.name = B.name union select * from B left jion A on B.name = A.name, 最多有幾條記錄,最少呢?
答:最多有10條,最少有6條。
5), select * from A left jion B on A.name = B.name union all select * from A left jion B on A.name = B.name ,最多有幾條記錄,最少呢?
答:最多和最少都是12條。
6), select * from A left jion B on A.name = B.name union select * from B left jion A on B.name = A.name, 最多有幾條記錄,最少呢?
答:最多和最少都是10條。
—-》這裡考到Sql語句中左聯和右聯,左聯就是以左邊作為基準,有的值保留,沒有的話就為Null,右聯也是如此。現在主要是union和union all的問題瞭,union是將相同的進行合並,不相同的向左邊基準表插入,union all則是不管相同與否都是向左基準表插入。

 

本文出自“tongxiaoming520”
 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *