一怼:黄发小儿,尔等休要以为站成WiFi之型,老夫便会再入尔等罗网,大丈夫生于天地之间,当读圣贤之书,养浩然正气,仿天地之德以爱人,效圣贤之志以成业,岂不闻骗人是小狗,开挂死全家。乎!(by阅后即瞎)
书接上回,我们继续来说数据CRUD。
按列插入语句
insert into 表名(列名)values(插入内容)。
插入多个数据:
insert into 表名(列名)values(插入内容),(插入内容2)。
修改数据
update customer set 列名(数据项)= 修改内容where 修改位置;
删除数据
delete from 表名 where 删除位置;
逻辑删除(表面上的删除,但存在于数据库)
update 表名 set is_delete=1 where 插入位置;
select * from 表名 where is_delete=0;
比较运算符
select * from 表名 where 位置>7;位置大于7的
select * from 表名 where 位置!=7;位置不等于7的
select * from 表名 where 位置<>7;位置不等于7的
还有其他运算符> 、>=、<、!=。
逻辑运算符
逻辑运算符包括and、or、not。
例子:select * from customer where id > 7 and user_name=’老王’;
模糊查询
在python中的正则中我们认识的%和‘.’在SQL语句中。
%替换了*,_替换了’.‘。请务必注意这一点。
例子:select * from customer where user_name like ‘王%’;
%代表匹配任意的多个字符
select * from customer where user_name like ‘王%’ or user_name like ‘_王%’ or user_name like ‘%王’;
范围查询
不连续的范围查询:select * from 表名 where 查询内容 in(范围);
连续的范围查询:select * from 表名 where 查询内容 between(低范围) and(高范围);
查找null和not null
查找null:select * from 表名 where 查找列 is null;
查找not null:select * from 表名 where 列名 is not null;
运算级
括号 > not >比较运算符 > 逻辑运算符
排序的问题
desc降序 asc升序
例子:select * from customer order by user_name desc ,id desc;
语句顺序的问题,如果第一个条件出现同值的情况,按照第二个语句来进行排序
删除重复行
select distinct 比较内容 from 表名;
聚合函数
sum()求和 max()最大值 min()最小值 avg()平均值 count()个数。
例子:
select avg(所求内容) from 表名 where 范围 ;
select sum(所求内容)/count(所求内容) as ‘均值’ from 表名 where范围 ;
分组的问题
select gender from 表名 group by gender;查询表中的gender数据,按照 gender数据进行分组。
select gender,group_concat(user_name) from 表名 group by gender;
查询表中的gender数据,按照 gender数据进行分组显示分组后的user_name。
select gender,group_concat(user_name) from 表名 group by gender having id>3;
查询表中的gender数据,按照 gender数据进行分组显示分组后所有id>3的user_name。
having的用法和语意与where相同,在分组中用having进行限定。
select gender,group_concat(user_name,id) from 表名 group by gender having group_concat(id)>3;
查询表中的gender数据,按照 gender数据进行分组显示分组后显示所有id>3的user_name。
select gender,avg(id) from 表名 group by gender;
以gender显示每组的平均id。
PS:
select * from customer having id>3;
having 和 where 功能是一样的
分页的问题(解决数据量大的问题)
select * form 表名 WHERE 条件 limit 5,10; //检索6-15条数据。
select * form 表名 WHERE 条件 limit 5,-1; //检索6到最后一条数据。
select * form 表名 WHERE 条件 limit 5; //检索前5条数据。
完整版语句
select 查找内容 * from 表名。
where 条件。
group by 字段 。
having 条件。
order by 以什么到什么排序。
limit start,count检索开始(start)位到结束(count)位。
from customer > where >group by> distinct * >having >order by >limit