Python34-02_資料庫----資料庫條件查詢
資料庫條件查詢
1. 分頁查詢
1. limit 查詢
select * from students limit 5;
2. limit分頁查詢(頁面+ 顯示個數)
select * from students limit 0, 2;
(從小到大排列)select * from students order by age desc, limit 0, 2;
2. 聚合函式
1. count()計算總數
select count(*) from students;
2. 聚合函式, 預設跳過null值
select count(ifnull(height, 0)) from students where gender = 1;
3. max, min,sum, avg 最大值, 最小值, 求和, 平均值
select max(age) from students;
4. round() 四捨五入
select round(avg(age) ,2) from students;
3. 分組查詢
1. group by(按類分組)
select gender from students group by gender;
2. group by + group_concat() (按類分組, 並查詢其他屬性)
select gender, group_concat(name) from students group by gender;
3. group by + 聚合函式
select gender, count(age) from students group by gender;
4. group by + having (having相當於where, 用於group by中)
select gender, group_concat(name) from students group by gender having gender in (1, 2);
5. group by + with rollup (在最後的記錄後面新增一行, 計算總數和統計結果)
select gender, count(*) from students group by gender with rollup;
4. 連線查詢
1. 內連線
select * from students inner join classes;
select s.name, c.name fromstudents as s inner join classes as c on s.cls_id = c.id;
(不使用inner join表示內連線) select s.name, c.name from students s, classes c where s.cls_id = c.id;
2. 左連線
select * from students s left join classes c where s.cls_id = c.id;
3. 右連線
select * from students s right join classes c where s.cls_id = c.id;
4. 自連線
select a.id, a.title from areas a inner join areas c on a.id = c.id where c.title = '陝西省';
select r.id, r.title from areas r inner join area.a on r.id = a.id where a.title = '西安市';
5. 子查詢
(查出高於平均身高的資訊) select * from students where height > (select avg(height) from students);
5. 外來鍵(為欄位新增約束)
alter table students add foreign key(cls_id) references classes(id);