高级操作

高级更新

update 表名 set 字段= 值 【 where 】;
高级新型 语法
UPDATE 表名 SET 字段 = 值 【where条件】【limit 更新数量】;

update student set name = 'jake' where name = 'xiaoming' limit 3;

高级删除

Delete from student where name = 'jake' limit 10;

删除:如果表中存在主键自增长,那么删除之后,自增长不会还原

思路:数据的删除是不会改变表结构,只能删除表后重新建表
Truncate 表名:--先删除改变,再创建 重置自增长

高级select

基本语法
Select 字段列表/* from 表名【where条件】;
完整语法
Select [select选项] 字段列表【字段别名】/*from 数据源 【where 条件子句】【gruop by 子句】【having 子句】【order子句】【limit子句】;

  • Select选项
    Select选项:select对查出来的结果的处理方式
    All:默认的,保留所有的结果
    Distinct:去重,查出来的结果,将重复给去除(所有的字段都相同);
    select * from student;
    select all * from student;

字段别名

字段别名:当数据进行查询出来的时候,有时候·名字并不一定就满足需求(多表查询会有同字段名),需要对字段名进行别名:别名
字段名【as】别名

SELECT id, mignZi as 名字, age as 年龄, score as 分数 from student;
高级操作_第1张图片
Paste_Image.png

数据源

数据源:数据的来源 关系型数据库的来源都是数据表:本质上只要保证数据类似二维表最终都可以作为数据源

数据源分为多中: 单表数据源,多表数据源 查询语句

多表数据源
select *from 表名1, 表名2;

子查询:
select * from (select * from 表名) as 别名;

where子句

Where子句:用来判断数据,筛选数据
Where 子句返回的结果:0 或者1,0代表false, 1代表true

判断条件
比较运算符:> 、< 、>= 、!= 、<>(不等于) 、=  、like, between and, in/not in
逻辑运算符:&&(and), ||(or), !(not)

where原理:where是唯一一个直接从磁盘获取数据的时候就开始判断;从磁盘取出记录,开始进行where判断:判断的结果,如果判断成立保存到内容;如果失败直接放弃

select * from student WHERE id in(1,3, 5); -- 逻辑判断
select * from student WHERE id = 3 || id =5; -- 落在集合中

gruop by子句

Group by:分组,根据某个字段进行分组,(相同的放一组,不同的分到一组 )

基本语法:group by 字段名;
分组的意思:视为了统计数据(按组统计:按分组字段进行数据统计);
SQL:提供了一些列的统计函数:
count(): 统计分组后的记录数;每一组有多少记录
Max(): 统计每一组的最大的值
Min():统计最小的值
Avg():统计平均数
Sum:统计和

select sex, count(*), max(height), min(height), avg(age), sum(age) from student group by sex;

having子句

与where一样:进行条件判断的
where是针对磁盘数据进行判断:进入到内存之后,会进行分组处理:分组结果操作就需要having来处理;

having能做where能做的几乎所有的事情;

。。。。。

Order by子句

根据某个字段进行升序或者降序

order by 字段名 【asc/desc】; -- asc是升序(默认的)

SELECT *from student order BY age ASC; 

排序可以进行多个字段排序:先根据某个字段进行排序,然后排序好的内部,在按照某个数据进行再次排序;

select student *from student order by age, score desc;

高级操作_第2张图片
Paste_Image.png

Limit子句

方案1,:只用来显示长度(数据量): limit 数据量
方案2:限制起始位置,限制数量:limit 起始位置,长度;
limit 0, 2;
limit 2, 2
limit 4, 2;
limit 6, 2
主要用于实现数据的分页:为用户节省时间,提交服务器的响应效率,减少资源的浪费。

对于用户来讲:可以点击的分页按钮:1,2,3,4,5
对于服务器来讲: 根据用户选择的页码来获取不同的数据:limit offset,length;
length:每一页显示的数据量:基本不变
offset:offset = (页码 - 1) *每页显示量

你可能感兴趣的:(高级操作)