基本操作(增删改查):
添加:
全列插入:insert into 表名 values(全部字段值),
(全部字段值),
(全部字段值),
...
...后面可跟多条记录值,同时插入
缺省插入:insert into 表名 (指定的任意个字段)
values(对应的值)
...
...后面可跟多条记录值,同时插入
删除:
delete from 表名 where 字段=字段值
修改:
update 表名 set 字段1=字段值1,字段2=字段值2... where 条件
查询:
select * from 表名 where 条件
(若有多个条件,把筛选数据量最大的条件放在最左边执行,有助于提高查询效率)
复杂查询操作:
1.去除重复结果:
select distinct gender from students
2.模糊查询like:
select * from 表名 where name like '黄%' 查询所有姓黄的人的信息
select * from 表名 where name like '黄_' 查询所有姓黄的并且姓名只有2个汉字的文的信息
select * from 表名 where url like '%@qq.com' 查询所有的qq邮箱的用户
(注:%表示任意多个字符的占位符,_表示一个字符的占位符)
3.范围查询:
in表示在一个非连续的范围内
select * from students where id in(1,3,8)
查询编号是1或3或8的学生
between ... and ...表示在一个连续的范围内
查询学生是3至8的男生
select * from students where id between 3 and 8 and gender='男'
4.聚合函数
为了快速得到统计数据,提供了5个聚合函数
count(*)表示计算总行数,括号中写星与列名,结果是相同的
select count(*) from students 查询学生总数
max(列)表示求此列的最大值
select max(id) from students where gender='女' 查询女生的编号最大值
min(列)表示求此列的最小值
select min(id) from students where isdelete=0;查询未删除的学生最小编号
sum(列)表示求此列的和
select sum(id) from students where gender='男';查询男生的编号之和
avg(列)表示求此列的平均值
select avg(id) from students where isdelete=0 and gender='女' 查询未删除女生的编号平均值
5.分组
select gender as 性别,count(*) from students group by gender 查询男女生总数
select hometown as 家乡,count(*) from students group by hometown 查询各城市人数
分组后的数据筛选
查询男生总人数
select gender as 性别,count(*)
from students group by gender having gender='男';
having是对group by的结果进行筛选
where是对from后面指定的表进行数据筛选,属于对原始数据的筛选
6.排序
select * from 表名 order by 列1 asc|desc,列2 asc|desc,...
将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推
默认按照列值从小到大排列 asc从小到大排列,即升序 desc降序
查询未删除男生学生信息,按学号降序
select * from students where gender=1 and isdelete=0 order by id desc
7.分页
当数据量过大时,在一页中查看数据是一件非常麻烦的事情
select * from 表名 limit start,count
从start开始,获取count条数据 start索引从0开始
8.完整的select语句
select * from 表名
where 条件...
group by ...
having ...
order by ...
limit start,count
9.union关键字:将两个查询结果类似的数据拼接到一个表中展示
select * from 表名 where 条件1
union select * from 表名 where 条件2
添加:
全列插入:insert into 表名 values(全部字段值),
(全部字段值),
(全部字段值),
...
...后面可跟多条记录值,同时插入
缺省插入:insert into 表名 (指定的任意个字段)
values(对应的值)
...
...后面可跟多条记录值,同时插入
删除:
delete from 表名 where 字段=字段值
修改:
update 表名 set 字段1=字段值1,字段2=字段值2... where 条件
查询:
select * from 表名 where 条件
(若有多个条件,把筛选数据量最大的条件放在最左边执行,有助于提高查询效率)
复杂查询操作:
1.去除重复结果:
select distinct gender from students
2.模糊查询like:
select * from 表名 where name like '黄%' 查询所有姓黄的人的信息
select * from 表名 where name like '黄_' 查询所有姓黄的并且姓名只有2个汉字的文的信息
select * from 表名 where url like '%@qq.com' 查询所有的qq邮箱的用户
(注:%表示任意多个字符的占位符,_表示一个字符的占位符)
3.范围查询:
in表示在一个非连续的范围内
select * from students where id in(1,3,8)
查询编号是1或3或8的学生
between ... and ...表示在一个连续的范围内
查询学生是3至8的男生
select * from students where id between 3 and 8 and gender='男'
4.聚合函数
为了快速得到统计数据,提供了5个聚合函数
count(*)表示计算总行数,括号中写星与列名,结果是相同的
select count(*) from students 查询学生总数
max(列)表示求此列的最大值
select max(id) from students where gender='女' 查询女生的编号最大值
min(列)表示求此列的最小值
select min(id) from students where isdelete=0;查询未删除的学生最小编号
sum(列)表示求此列的和
select sum(id) from students where gender='男';查询男生的编号之和
avg(列)表示求此列的平均值
select avg(id) from students where isdelete=0 and gender='女' 查询未删除女生的编号平均值
5.分组
select gender as 性别,count(*) from students group by gender 查询男女生总数
select hometown as 家乡,count(*) from students group by hometown 查询各城市人数
分组后的数据筛选
查询男生总人数
select gender as 性别,count(*)
from students group by gender having gender='男';
having是对group by的结果进行筛选
where是对from后面指定的表进行数据筛选,属于对原始数据的筛选
6.排序
select * from 表名 order by 列1 asc|desc,列2 asc|desc,...
将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推
默认按照列值从小到大排列 asc从小到大排列,即升序 desc降序
查询未删除男生学生信息,按学号降序
select * from students where gender=1 and isdelete=0 order by id desc
7.分页
当数据量过大时,在一页中查看数据是一件非常麻烦的事情
select * from 表名 limit start,count
从start开始,获取count条数据 start索引从0开始
8.完整的select语句
select * from 表名
where 条件...
group by ...
having ...
order by ...
limit start,count
9.union关键字:将两个查询结果类似的数据拼接到一个表中展示
select * from 表名 where 条件1
union select * from 表名 where 条件2