DQL:數據庫查詢語言(查詢出來的都是虛擬結果集,存在內存裏)
條件查詢where,後面可跟
=,!=,<>,<,>,<=,>=
between.. and..(在範圍內)
in(集合)
is null,is not null
and,or,not
alter table student add stu_gender varchar(2);
update student set stu_gender = '男';
select * from student where stu_age = 10 or stu_gender = '男';
select * from student WHERE stu_age BETWEEN 1 and 100;
select * from student WHERE stu_age in(11,41);
select * from student WHERE stu_name is not NULL;
select * from student WHERE stu_name != 'name1';
模糊查詢,根據關鍵字查詢like ...(_單個字符,%任意個字符)
select * from student WHERE stu_name like '%1';
select stu_name from student WHERE stu_name like '%a%';
結果去重,只能對單列去重:
select distinct stu_name from student;
新增一個虛擬列,as起別名
select *,stu_age+stu_score from student;
select *,stu_age+stu_score as stu_age_score from student;
設置默認值,ifnull(列名,默認值):
select *,ifnull(stu_age,0)+ifnull(stu_score,0) as stu_age_score from student;
排序:
升序,order by 列名 asc select stu_id from student ORDER BY stu_id asc;
降序,order by 列名 desc select stu_id from student ORDER BY stu_id desc;
聚合函數:
count(),sum(),avg(),max(),min()
select count(*) from student;
select sum(stu_score) from student;
select avg(stu_score) from student;
select max(stu_score) from student;
select min(stu_score) from student;
分組: 將查詢結果按1個或者多個字段分組,字段值相同的爲一組
group by(列名)
如:select stu_gender from student GROUP BY stu_gender;
女
男
當group by單獨使用時,只能顯示出每組的第一條記錄,因此單獨使用group by的意義不大
多用於以下使用場景:
(一)GROUP_CONCAT,分組後輸出字段
select stu_gender,GROUP_CONCAT(stu_id) from student GROUP BY stu_gender;
女 1,22,33,77
男 4,3,7,11,44,99
select stu_gender,GROUP_CONCAT(stu_name),GROUP_CONCAT(stu_score) from student GROUP BY stu_gender;
女 name1,Abc,aaa,aaa 99,110,110,110
男 name4,name3,name7,tomA,bbb,bbb 90,90,90,110,110,110
(二)GROUP by 後使用聚合函數
select stu_gender,sum(stu_id) from student GROUP BY stu_gender;
(三)group by + having:對GROUP by 後結果作篩選
select stu_gender, count(stu_age) from student group by stu_gender having count(stu_age) > 3;
where對分組前的數據篩選,having對分組後的結果作篩選
where後不能使用聚合函數,having對分組後的結果使用聚合函數作篩選
where和having後都能使用order by 排序
select 書寫順序:
select -->from -->where--> group by--->order by-->limit(起始索引,顯示條數)
mysql---DQL
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.