【MySQL-->数据操作】

文章目录

  • 前言
  • 一、insert
    • 1.单行插入
    • 2.多行插入
    • 3.插入更新/替换
  • 二、select
    • 1.全列查询
    • 2.指定列插入
    • 3.列别名
    • 4. 表达式计算
    • 5.去重
    • 6.where条件查询
    • 7.排序
    • 8.limit分页显示
  • 三、update
  • 四、delete
  • 五、插入查询结果
  • 六、聚合函数
  • 六、聚合分组
    • 1.格式
    • 2.where和having的区别


前言


一、insert

1.单行插入

指定列单行插入
【MySQL-->数据操作】_第1张图片
可以省略into关键字
【MySQL-->数据操作】_第2张图片
全列单行插入
【MySQL-->数据操作】_第3张图片

2.多行插入

指定列多行插入
【MySQL-->数据操作】_第4张图片
全列多行插入
【MySQL-->数据操作】_第5张图片

3.插入更新/替换

如果插入时唯一键或者主键冲突,将冲突数据更新,更新的同时不插入. 可用select row_count();命令查询受影响的行数.
【MySQL-->数据操作】_第6张图片
插入时,如果冲突就将冲突数据删除,插入新的数据
【MySQL-->数据操作】_第7张图片

二、select

1.全列查询

【MySQL-->数据操作】_第8张图片

2.指定列插入

【MySQL-->数据操作】_第9张图片

3.列别名

可以带as也可以省略
【MySQL-->数据操作】_第10张图片

4. 表达式计算

【MySQL-->数据操作】_第11张图片

5.去重

【MySQL-->数据操作】_第12张图片

6.where条件查询

比较运算符,null不能直接参与比较,<=>和<>是null安全运算符,可以比较null.
【MySQL-->数据操作】_第13张图片
【MySQL-->数据操作】_第14张图片
【MySQL-->数据操作】_第15张图片
英语不及格的同学及英语成绩 ( < 60 )
【MySQL-->数据操作】_第16张图片
语文成绩在 [80, 90] 分的同学及语文成绩
【MySQL-->数据操作】_第17张图片
数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
【MySQL-->数据操作】_第18张图片
姓孙的同学 及 孙某同学
【MySQL-->数据操作】_第19张图片
语文成绩好于英语成绩的同学
【MySQL-->数据操作】_第20张图片
总分在 200 分以下的同学
这里的对于总分起的别名不能用在条件语句中,因为,sql的语句执行顺序先执行from语句,在执行条件语句,最后执行列选项.

【MySQL-->数据操作】_第21张图片
语文成绩 > 80 并且不姓孙的同学
【MySQL-->数据操作】_第22张图片
孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80
在这里插入图片描述
NULL 的查询
【MySQL-->数据操作】_第23张图片

7.排序

asc(ascending)升序,desc(dscending)降序
【MySQL-->数据操作】_第24张图片
查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
【MySQL-->数据操作】_第25张图片
查询同学及总分,由高到低
order by语句可以使用别名是因为语句执行顺序是先有条件,通过条件筛选数据,有数据之后再排序.

【MySQL-->数据操作】_第26张图片
查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示
【MySQL-->数据操作】_第27张图片

8.limit分页显示

limit 3 offset 0其中3代表显示几行,0代表从第几行开始显示
【MySQL-->数据操作】_第28张图片
limit 2,3其中2代表其实位置,3代表显示几行,表的小标是从0开始的.
【MySQL-->数据操作】_第29张图片

三、update

将孙悟空同学的数学成绩变更为 80 分,如果不加where语句,会对全列的值更新.
【MySQL-->数据操作】_第30张图片
将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分
【MySQL-->数据操作】_第31张图片
将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
【MySQL-->数据操作】_第32张图片
将所有同学的语文成绩更新为原来的 2 倍
【MySQL-->数据操作】_第33张图片

四、delete

删除指定行的数据
【MySQL-->数据操作】_第34张图片
删除整表数据,delete是对数据操作,不对表结构操作,所以表信息不被重置.truncate会重置表信息.
【MySQL-->数据操作】_第35张图片

截断表,truncate不对数据 操作,而是对表操作,所以比delete快,但是truncate不被记录在sql日志中,无法回滚.
【MySQL-->数据操作】_第36张图片

五、插入查询结果

删除表中的的重复复记录,重复的数据只能有一份
【MySQL-->数据操作】_第37张图片
【MySQL-->数据操作】_第38张图片

六、聚合函数

【MySQL-->数据操作】_第39张图片

统计班级共有多少同学
【MySQL-->数据操作】_第40张图片
【MySQL-->数据操作】_第41张图片
统计数学成绩总分
【MySQL-->数据操作】_第42张图片
统计平均总分
【MySQL-->数据操作】_第43张图片
返回英语最高分
【MySQL-->数据操作】_第44张图片
返回 > 70 分以上的数学最低分
【MySQL-->数据操作】_第45张图片

六、聚合分组

1.格式

select column1,column2,聚合统计 from tablename group by column1,column2;
【MySQL-->数据操作】_第46张图片
显示每个部门的平均工资和最高工资
【MySQL-->数据操作】_第47张图片
显示每个部门每个岗位的平均工资和最低工资
【MySQL-->数据操作】_第48张图片
显示平均工资低于2000的部门以及平均工资.
【MySQL-->数据操作】_第49张图片

2.where和having的区别

where和having的区别在于筛选的阶段不同.
比如:显示小于2000的员工中各部门工资最高的工资
【MySQL-->数据操作】_第50张图片
select deptno,max(sal) as 最高 from emp where sal<2000 group by deptno;
语句执行顺序是先执行from语句->where筛选->group by分组->max聚合,分组可以理解为分表.筛选出来的表都可以叫做表.


你可能感兴趣的:(1024程序员节,mysql)