簡單查詢
創建students表
create table students(
id int not null unique primary key auto_increment,
name varchar(10) not null,
class varchar(10) not null,
grade int
)
添加數據
insert into students values(0,'老1','1班',80);
insert into students values(0,'老2','2班',90);
insert into students values(0,'老3','3班',86);
insert into students values(0,'老4','4班',70);
insert into students values(0,'老5','5班',89);
insert into students values(0,'老6','6班',93);
查詢所有數據
select * from students
查詢指定字段
select name,class from students
通過as給表起別名
select s.name,s.class from students as s
通過as給字段起別名
select name as 姓名,class as 班級 from students
條件查詢
比較運算
select * from students where class='1班'
select * from students where grade>90
邏輯運算
and、or、not
select * from students where grade<90 and class!='1班'
模糊查詢
like、%任意多個字符、_一個任意字符
select * from students where name like '老%'
select * from students where name like '%5'
范圍查詢
in表示非連續范圍內、between...and...在一個連續范圍內
select * from students where class in('1班','3班','4班')
select * from students where grade between 80 and 90
空判斷
is null 與' '不同,' '為空字符串
select * from students where grade is null
select * from students where class=' '
insert into students(name,class,grade) values('老7','1班',null)
排序
order by 列1 asc|desc,列2 asc|desc
asc從小到大,升序,不寫則為升序
desc從大到小,降序
select * from students order by grade
先按grade降序、再按id升序
select * from students order by grade desc,id
先按id升序、再按grade降序
select * from students order by id,grade desc
聚合函數
count
select count(*) from students
帶字段的不統計為null的數據
select count(grade) from students
max、min、sum、avg
select max(grade) from students
select avg(grade) from students
分組
select sex,count(*) from students group by sex
select grade,count(*) from students group by grade
select class,grade,count(*) from students group by grade,class
分組后過濾
使用having,必須跟在group by之后
where是用於from后的數據篩選、having是對group by的結果進行篩選
獲取部分行
索引0開始
select * from students order by grade limit 0,3
分頁
每頁顯示m條數據,第n頁的數據
select * from students limit (n-1)*m,m