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 表名

相关推荐
丙氨酸長鏈40 分钟前
Web前端入门第 问:JavaScript 一个简单的 IndexedDB 数据库入门示例
前端·javascript·数据库
独行侠影a1 小时前
APScheduler+Redis 分布式定时任务:解决多实例任务重复执行
数据库·redis·分布式
传说故事2 小时前
数据库中一些常用英文单词含义
数据库·oracle
夏贰四2 小时前
中小企业搭建业务中台如何控成本?业务中台轻量化落地分几步实施?
数据库·业务中台
林焱RPA3 小时前
影刀RPA200篇纪念版:最实用的20个自动化场景大盘点
数据库
名字还没想好☜3 小时前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine
每天都要进步哦5 小时前
SQL单行函数详解:字符、数字、日期、转换与通用函数全解析
数据库·mysql
不剪发的Tony老师5 小时前
VeloxDB:一款免费开源的轻量级数据库管理工具
数据库·sql
dotnet905 小时前
批量生成所有表的修改脚本
数据库·sql·oracle
@Mike@5 小时前
06-数据库学习笔记(存储模型与数据压缩)
数据库·笔记·学习