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

MYSQL表的增删改查

首先我们要明确一下我们操作的是那部分数据

电脑上有一个数据库服务器---》管理着很多个数据库(数据的集)---》很多张数据表(保存着真实的数据)---》很多数据行(记录)---》很多列(字段)

新增(CREATE)

语法:insert into 表名[字段1,字段2]  values (值,值);

单行数据+全列插入 insert into 表名 values(值,值...);(简写方式,不写类名,在values列表中按照表中字段顺序设置对应的值)

指定列插入+多行数据

insert into 表名[(指定列...)] values(值[值])

一条insert语句在values部分可以跟很多个values组,每一组表示要插入的一个数据行

一次插入一条数据和一次插入多条数据哪个效率高?

1.执行所有SQL时都有网络开销(这是个不可控因素)

2.写入数据时还有磁盘IO开销

3.每执行一条SQL语句都会开启一个事务,事务的开启和关闭都会消耗系统资源

综合来看(在可控范围内)一次提交多条比一次提交一条效率高

查询(RETRIEVE)

1.全列查询

语法 select*from 表名;(*表中所有的列,这在生产环境中是十分危险的操作,因为在生产环境中,一个表中的数据量会有很多)

2.指定列查询

语法 select 列名[列名...]from 表名;

3.查询结果是一个表达式

效果就是让所有的列中都包含一个表达式的值,他本身不在我们的表中,他在临时表中(列与列也可以进行计算)

4.别名 列名+列名+列名[as]别名(别名中如果包含空格,必须用单引号引起来)

5.去重查询

关键字DISTINCT

语法:select distinct 列名 from 表名(注意:在查询结果中,每一列都相同MYSQL才认为是重复数据)

(因为id不同,所以第一个查询结果不变)

6.排序

order by(用这个子句会在查询结果中根据指定规则排序)

排序规则:1.升序 ASC 2.降序desc

语法:select  列名 from 表名 order by 列名[ASC/DESC](默认升序)

MYSQL中NULL比较特殊

1.无论和什么值运算,结果均为null;

2.NULL始终被判定为false

3.不是0

注意SQL中可以对多个字段进行排序,排序优先级与书写顺序有关(可以为不同字段设置不同的排序规则)

7.条件查询

关键词 where

根据指定的一些条件,过滤掉不符合条件的记录,把符合条件的记录返回给用户

运算符:

1.比较运算符

> >= < <= 和JAVA中用法一样

= 等于 NULL=NULL,结果为NULL  !=,<>不等于

<=>等于NULL安全专门针对NULL NULL<=>NULL 结果为1

between a0 and a1 [a0,a1]  区间查询(闭区间)

in (option,..) 列表或者集合,如果是option中任意一个返回true

IS NULL /IS NOT NULL  判断是否为null

Like 模糊匹配 %表示任意多个字符  _表示一个字符(孙% 孙是第一个,后面可以有无数个,有几个_就要有多少个字符)

2.逻辑运算符

AND 类似JAVA中的&&

OR  类似JAVA中的||

NOT  类似JAVA中的!

优先级 NOT>AND>OR

建议通过小括号来指定优先级

语法 :select 列名 from表名 where 列名/表达式(必须完整)运算符 条件;

where子句中不能用别名这与MYSQL执行SQL语句的顺序有关:1.确定表  2.符号条件 3.执行select后面的指定列  4.排序

8.分页查询 

关键词:LIMIT 

不加限制记录条数的查询是不安全的

语法:

select 列名 from 表名 [where..][order by..] limit n offset s;(查询n条,从s开始)

修改(UPDATE)

语法:

update 表名 set column=expr[,column=expr...][where..][order by..][limit ];

只要找到符合条件的数据行就会一次性符合条件的数据行全部修改了(如果不加条件的修改表中的记录,这是非常危险的操作)

删除(DELETE)

语法:

DELETE FROM 表名[where..][order by..][limit..];

在生产过程中一般不使用DELETE操作,一般会在表中加入一个DELETEBASE字段,用来表示字段是否删除,用update更新就可以实现删除功能,实质上并未删除

http://www.xdnf.cn/news/19599.html

相关文章:

  • 深入解析数据结构之单链表
  • ros2bag_py的api小结、丢帧问题对策
  • 【Linux基础】Linux系统启动:深入理解GRUB引导程序
  • 平面椭圆转化为三阶Bezier曲线的方法
  • 并发编程——10 CyclicBarrier的源码分析
  • 大模型参数到底是什么?
  • synchronized的锁对象 和 wait,notify的调用者之间的关系
  • EKS上部署gpu服务利用karpenter实现自动扩缩(s3作为共享存储)
  • 一、计算机系统知识
  • C++ 枚举算法详细利用与数字分解教学教案
  • Spring Security 6.x 功能概览与代码示例
  • 程序员独立开发直播卖产品 SOP 教程
  • arm容器启动spring-boot端口报错
  • 基于开源AI大模型、AI智能名片与S2B2C商城小程序的“教育用户”模式探究
  • 谈谈对BFC的理解
  • 当代科学(范畴大辩论) 的学科分科(论据)的要素论(论点)及方法论(论证):边缘处理
  • 浅谈 SQL 窗口函数:ROW_NUMBER() 与聚合函数的妙用
  • 机器视觉opencv教程(三):形态学变换(腐蚀与膨胀)
  • 利用爬虫获取淘宝商品信息,参数解析
  • 基于单片机停车场管理系统/车位管理/智慧停车系统
  • 小迪自用web笔记22
  • Java线程池使用入门
  • uvm验证环境中struct(结构体)和class的区别与联系
  • 基于单片机老人防丢失防摔倒系统/老人健康状态检测系统
  • CMake⼯程指南-3
  • [光学原理与应用-361]:ZEMAX - 分析 - 像差分析
  • KingbaseES V009版本发布:国产数据库的新飞跃
  • 基于全参考图的质量评价均方误差MSE、峰值信噪比PSNR
  • [特殊字符] Rust概述:系统编程的革命者
  • 力扣(LeetCode) ——101. 对称二叉树(C语言)