MySQL数据库|CRUD

CRUD----增删改查

C---creat,R---retrieve,U---update,D---delete

新增

insert into 表名 字段1 字段2 value (值,值,值);

单行数据+全列插入

insert into 表名 values(值,值.....);

简写方式,不用在表名后指定列名,在value列表中按表中定义字段的顺序设置相应的值

指定列插入

insert into 表名 (字段一) values (值)

多行插入

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

查询

全列查询

select *from 表名;

指定列查询

select 列名,列名...from 表名;

查询字段为表达式

10是数值类型,效果是让所有的列中都包含一个表达式中的值,它本身并不在我们的真实的表里

列与列之间也可以参与运算,这个查询的效果就是计算总分,同时,可以通过关键字as来别名

如果别名当中包含空格则必须用单引号引起来

给结果集中的字段起别名语法:select 列名 as 别名 , 列名 \[as 别名]....from

去重

关键字---distinct

语法:select distinct 列名 from 表名

排序

关键字:OEDER BY

排序规则:

1.升序 ASC

2.降序 DESC

语法:select 列名 from 表名 order by 列名 ASC\|DESC

默认是升序

NULL数据顺序,视为比任何值都小,升序出现在最上面,降序出现最下面

使用表达式及别名排序

mysql中比较·特殊

1.不论和什么值进行运算,返回值都是NULL

2.NULL始终被判定为FALSE

3.NULL的值不是我们以前学习过的其他编程语言中的0,在MYSQL它就是NULL

可以为每个字段指定不同的排序规则

order by 列名asc\|desc ,列名asc\|desc....

在数学排序的基础上,对语文成绩进行升序排序;英文成绩是在前两个排序结果的基础上进行升序排序。

条件查询---WHERE

根据指定的一些条件,过滤掉不符合条件的记录

可以通过一些运算符

比较运算符

= 等于,预其它编程语言用==来判断相等不同,在MYSQL中用=号,以后赋值也是用号

<=> 专门针对NULL来判断的,返回值是TURE(1)

navicat 快速执行键 ----crtl+r

BETWEE a0 AND a1 范围匹配,a0,a1

IN(option,.....) 如果是option中的任意一个,返回TURE(1),条件中的值在选项列表中存在返回true,否则返回false

LIKE 模糊匹配。%表示任意多个(包括0个)任意字符;_表示任意一个字符,相当于一个占位符

逻辑运算符

AND-------&&

OR--------||

NOT-------!

使用where条件的语法:select * from 表名 where 列名/表达式 运算符 条件

where字句中不能用别名去当做过滤条件,别名可以用在order by

出现这种现象是和MYSQL内部的实现有关,换句话说就是和MYSQL执行SQl语句的顺序有关

1.如果要在数据中查某些数据,首先要确定表,先执行from

2.在查询的过程中要根据指定的查询条件把符合条件的数据过滤出来,这时执行的是where字句

3.执行select后面的指定列,这些列是需要加入到最终的结果集中

4.排序操作,根据order by子句中指定的列名和排序规则进行最后的排序

AND的优先级大于OR

整体的优先级和Java中一样

NOT>AND>OR

当查询多个或者条件时:

1.用IN(集合)

2.用OR把所有的条件关联起来

模糊查询:LIKE

%匹配任意多个(包括0个)字符

_严格匹配一个任意字符

查询过程中,先匹配明确的指定了的字符,再去通配后面的不确定字符

NULL的查询:IS NOT NULL

分页查询:LIMIT

通过select * from 表名 ; 的时候,不加限制的查询是不安全的

分页查询在项目中运行时非常多

语法:

---从0开始,筛选n条结果

select 列名 from table_name where.... order by limit n;

limit 关键字,表示限制要查询的条数

n一次要查询出来的记录的条数

---从s开始,筛选n条结果

select 列名 from table_name where.... order by limit s,n

s表示从第几条记录开始,n读取多少条记录

如果s=0,那么就可以缩写成limit n

---从s开始,筛选n条结果,比第二种用法更明确,建议使用

select 列名 from table_name where.... order by limit n offset s;

offset 关键字,表示偏移量,也就是从哪开始的意思

修改

语法:update table_name set column = expr , column = expr ... where ... order by... limit....

update:修改操作的关键字

table_name:表名,表示要修改那张表的数据

set:设置,关键字

, column = expr ...:那个列=什么值,可以有多个列,中间以逗号隔开

where ...:修改条件

order by...:排序规则

limit....:修改多少条

update操作的时候,如果不加where条件,修改的将是整张表中的所有记录,是非常危险的操作

多条操作可以用逗号隔开来实现多个数据更新

删除

语法:delete from table_name where... order by... limit...

delete:删除关键字

from table_name:从哪个表删除数据

where:过滤条件

order by:排序规则

limit:限制条件

在生产环境中一般不去使用delete操作

一般在表中会加deleteState字段,用来表示这条记录是否来删除,0表示正常(没有删除),1表示已删除,用update操作去更新deleteState字段,就可以实现删除功能,这条被删除的数据并没有实质上删除而是始终存在于数据库中

总结:

1.新增 - 插入

insert into 表名

2.查询操作

select 列名 from 表名

3.修改

update 表名

4.删除

delete from 表名

相关推荐
ccddsdsdfsdf5 小时前
DBeaver怎么链接mongoDB
数据库·mongodb
丷丩6 小时前
Postgresql基础实践教程(十一)各种Join
数据库·postgresql·join
星夜夏空996 小时前
FreeRTOS学习(4)——内存映射
数据库·学习·mongodb
TheRouter7 小时前
AI Agent 记忆体系建设实战:短期、长期与工作记忆的工程实现
数据库·人工智能·oracle
Omics Pro7 小时前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
唐青枫7 小时前
MySQL EXISTS 详解:存在性判断、NOT EXISTS 与实战示例
sql·mysql
JAVA面经实录9178 小时前
Hibernate面试题库
数据库·oracle·hibernate
2301_773643628 小时前
华为云存储实验
网络·mysql·华为云
迷枫7128 小时前
DM8 目录结构与常用排查入口梳理
服务器·数据库
Mr.Daozhi9 小时前
RAG 进阶实战:跑通 Demo 后我连续翻了 6 次车,逐一修复才真正可用(含 Gradio Web 版)
前端·数据库·langchain·大模型·gradio·rag·科研工具