当前位置: 首页 > news >正文

CRUD3

 

1. 更新(Update)操作

 

- 语法: UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET assignment [, assignment ...] [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] 

-  UPDATE  是关键字,指定要更新数据的表。

-  SET  用于指定要更新的列及其新值 。

-  WHERE  子句用于筛选符合条件的行进行更新,如果不写则会更新表中所有行。

-  ORDER BY  可对更新的行进行排序。

-  LIMIT  限制更新的行数。

- 示例

- 将孙悟空同学的数学成绩变更为80分:

 

update exam set math = 80 where name = '孙悟空';

 

 

- 将曹孟德同学的数学成绩变更为60分,语文成绩变更为70分:

 

update exam set math = 60, chinese = 70 where name = '曹孟德';

 

 

- 把唐三藏的英语成绩加10分:

 

update exam set english = english + 10 where name = '唐三藏';

 

 

- 将所有同学的语文成绩更新为原来的2倍:

 

update exam set chinese = chinese * 2;

 

 

2. 删除(Delete)操作

 

- 语法: DELETE FROM table_name [WHERE where_condition] 

-  DELETE FROM  后跟表名,指定要删除数据的表。

-  WHERE  子句用于筛选符合条件的行进行删除,若不写会删除表中所有行。

- 示例

- 删除孙悟空同学的考试成绩:

 

delete from exam where name = '孙悟空';

 

 

- 不添加条件删除整张表数据(危险操作):

 

delete from t_delete;

 

 

3. 截断表(Truncate)操作

 

- 语法: TRUNCATE [TABLE] tbl_name 

- 作用是把表恢复到刚创建的状态,删除表中所有数据,且会重置自增长列。

- 效率比  DELETE  高, DELETE  只是删除数据,不改变表结构状态。

 

4. 聚合函数

 

- 常用聚合函数

-  COUNT([DISTINCT] expr) :统计符合条件的记录条数, *  表示统计所有行,指定列时会过滤掉该列值为NULL的记录 。

-  SUM([DISTINCT] expr) :返回查询到数据的总和,只对数字列有意义,NULL值不参与运算 。

-  AVG([DISTINCT] expr) :返回查询到数据的平均值,只对数字列有意义,NULL值不参与运算 。

-  MAX([DISTINCT] expr) :返回查询到数据的最大值,只对数字列有意义。

-  MIN([DISTINCT] expr) :返回查询到数据的最小值,只对数字列有意义。

- 示例

- 统计exam表中有多少记录:

 

select count(*) from exam;

 

 

- 统计语文成绩小于50分的学生个数:

 

select count(*) from exam where chinese < 50;

 

 

- 统计所有学生数学成绩总分:

 

select sum(math) as 数学总分 from exam;

 

 

- 统计英语成绩的平均分:

 

select avg(english) as 英语平均分 from exam;

 

 

5. 分组查询(Group By)

 

- 语法: SELECT [DISTINCT] select_expr [, select_expr ...] FROM table_references [WHERE where_condition] GROUP BY {col_name | expr} [, ...] [HAVING where_condition] [ORDER BY {col_name | expr} [ASC | DESC] [, ...]] [LIMIT {[offset,] row_count | row_count OFFSET offset}] 

-  GROUP BY  用于通过一定规则将数据集划分成若干小组,然后可使用聚合函数对分组进行统计。

-  HAVING  子句用于对分组后的结果进行过滤,当使用  GROUP BY  分组后,不能再用  WHERE  子句过滤分组结果,要用  HAVING  。

- 示例

- 统计每个角色的人数:

 

select role, count(*) from emp group by role;

 

 

- 显示平均工资低于1500的角色和它的平均工资:

 

select role, avg(salary) from emp group by role having avg(salary) < 1500;

 

 

6. 分页查询(Limit)

 

- 语法: SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT num OFFSET start;  或  SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT start, num; 

-  LIMIT  用于限制查询结果返回的记录数, num  表示要查询的记录数, start  表示偏移量(从0开始)。

- 示例

- 查询exam表前3条记录:

 

select * from exam limit 3;

 

 

- 查询exam表从第3条记录开始的3条记录(即第3 - 5条记录):

 

select * from exam limit 2, 3; -- 或者写成 select * from exam limit 3 offset 2;

 

 

7. 插入查询结果

 

- 语法: INSERT INTO table_name [(column [, column ...])] SELECT ... 

- 可将一个查询的结果插入到指定表中,查询出来的列与  INSERT  中的列要对应。

- 示例

- 创建与  t_recorded  表结构相同的表  t_recorded_new ,并将  t_recorded  表去重后的记录写入新表:

 

create table t_recorded_new like t_recorded;

insert into t_recorded_new (id, name) select distinct id, name from t_recorded;

相关文章:

  • Bad Request 400
  • 什么是 矩阵号 ?为什么要做海外矩阵?
  • Axure高保真AI算法训练平台
  • SQL2API 核心理念:如何重构数据服务交付范式
  • github配置ssh,全程CV
  • chain_type=“stuff 是什么 ? 其他方式有什么?
  • 用户管理和权限管理
  • FnOS安装
  • Vue接口平台学习七——接口调试页面请求体
  • PyTorch实现权重衰退:从零实现与简洁实现
  • 蓝桥杯嵌入式开发板结构分析及功能学习笔记
  • 5.跳表(skiplist)
  • C++ | STL之list详解:双向链表的灵活操作与高效实践
  • 【项目管理】第17章 项目干系人管理-- 知识点整理
  • GEO供应商盈达科技发布:AI信源占位白皮书​
  • IDEA类图标识
  • AI驱动SEO关键词实战策略
  • 基于RV1126开发板的rknn-toolkit-lite使用方法
  • 【Docker-13】Docker Container容器
  • Google提示工程
  • “80后”保利文化集团董事长王波挂职哈尔滨副市长,负责文旅、招商
  • 诸葛燕喃出任中央文化和旅游管理干部学院党委书记
  • 我们的免疫系统,是世界上最好的“医生”
  • 世界读书日丨上图东馆开启残疾人无障碍文化服务
  • 长三角主流媒体将走进“来电”宜昌,探寻高质量发展密码
  • “站在亚洲实现整体振兴的新起点上”——习近平主席对越南、马来西亚、柬埔寨进行国事访问纪实