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更新就可以实现删除功能,实质上并未删除

相关推荐
爱学习的阿磊4 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
枷锁—sha10 分钟前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
惜分飞22 分钟前
ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理--惜分飞
数据库·oracle
chian-ocean23 分钟前
CANN 生态进阶:利用 `profiling-tools` 优化模型性能
数据库·mysql
m0_5500246326 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
AC赳赳老秦27 分钟前
代码生成超越 GPT-4:DeepSeek-V4 编程任务实战与 2026 开发者效率提升指南
数据库·数据仓库·人工智能·科技·rabbitmq·memcache·deepseek
啦啦啦_999941 分钟前
Redis-2-queryFormat()方法
数据库·redis·缓存
玄同7652 小时前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
吾日三省吾码2 小时前
别只会“加索引”了!这 3 个 PostgreSQL 反常识优化,能把性能和成本一起打下来
数据库·postgresql
chian-ocean2 小时前
百万级图文检索实战:`ops-transformer` + 向量数据库构建语义搜索引擎
数据库·搜索引擎·transformer