MySQL中的 增 删 查 改(CRUD)
创始人
2025-01-15 07:04:59
0

目录

新增

insert into 表名 value(数据,数据),.......;

insert into 表名(列1,列2.....) value(数据,数据),.......;

datatime 类型的数据如何插入?

查询

select * from 表名;

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

查询字段为表达式

为查询结果的列 取别名

去重:DISTINCT

排序:ORDER BY

条件查询

比较运算符

逻辑运算符

注:select 条件查询的执行顺序

分页查询:LIMIT

删除

delete from 表名 ;

delete from 表名 where 条件;

修改

update 表名 set (列名=值),(列名=值).... where 条件;


先创建一个名为: title 表:下文的所有操作都基于此表

注:因为MySQL对大小写不敏感所以大写小写都可以。

新增

insert into 表名 values/value(数据,数据),.......;

可以单行,多行插入。

insert into 表名(列1,列2.....) value(数据,数据),.......;

指定列插入可以单行,多行插入。

datatime 类型的数据如何插入?

可以用一个固定格式的字符串来表示日期

还可以利用 now() 函数获取当前时间

新增表字段

alter table 表名 add 字段名和类型

插入之后表的字段为:


查询

select * from 表名;

全列查询 显示该表的所有数据

* 表示 通配符 可以指代所有的列

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

指定列查询

查询字段为表达式

  • 查询语文成绩减20

  • 查询各科成绩总和

注:最后两行之所以为 null 是因为在 MySQl 中 null 与任何值进行运算结果都为 null

为查询结果的列 取别名

select 表达式/列名 as 别名 from 表名;

去重:DISTINCT


select distinct 单列/多列 from 表名;

去除查询结果中的重复项(只保留一项)

排序:ORDER BY

select * from 表名 order by 列名 asc/desc;

  • ASC 为升序(从小到大)
  • DESC 为降序(从大到小)
  • 默认为 ASC

列名可以是单个也可以是多个

例:select * from 表名 order by A,B ;

在A相等的情况下按照B进行排序

select * from 表名 order by A asc,B desc;

按照A列升序B列降序进行排列

指定某个列按照 升序/降序 排列 

null 被认为是最小值,但是也只是在排序中。


条件查询

select * from 表名 where表达式/条件(不能是别名)

显示满足条件的数据

比较运算符

运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL -> false
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>不等于
BETWEEN a0 AND
a1
范围匹配,[a0, a1],闭区间,如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, ...)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE ‘..%../.._..’模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字

LIKE ‘..%../.._..’ 使用实例:

select * from 表名 where 列名 like '孙%';

在指定列中寻找满足like后面条件的记录。

  1. ‘%孙’:字符串最后一个子符为‘孙’
  2. ‘孙%’:字符串第一个字符为‘孙’
  3. ‘%孙%’:字符串中包含‘孙’ 

逻辑运算符

运算符说明
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT条件为 TRUE(1),结果为 FALSE(0)

例:满足数学成绩大于80的人

注:select 条件查询的执行顺序

  1. 遍历表中的每个记录
  2. 把当前记录的值带入条件,根据条件进行筛选
  3. 如果这条记录满足条件,保留并进行列上的表达式的计算
  4. 如果有 order by 会在所有行都被获取到之后(表达式也算完了)在针对所有结果进行排序。

因为第三步是定义别名,而 where 是在第二步被执行所以会报错;

分页查询:LIMIT


select * from 表名 limit 要查询的行数 ;

select * from 表名 limit 要查询的行数  offset 偏移量('下标'从 0 开始);

删除

delete from 表名 ;

删除这个表中的所有数据,但不会删除表。

delete from 表名 where 条件;

修改

update 表名 set 列名=值,列名=值.... where 条件;

可以修改一列也可以修改多列。

此处的 where 条件 是为了限定有哪些值可以被修改。

一次修改一列:

一次修改多列:

MySQL中的数值类型

数据类型大小说明
BIT[ (M) ]M指定位
数,默认
为1
二进制数,M范围从1到64,
存储数值范围从0到2^M-1
TINYINT1字节相当于JAVA语言的byte
SMALLINT2字节相当于JAVA语言的short
INT4字节
BIGINT8字节相当于JAVA语言的Long
FLOAT(M, D)4字节单精度,M指定长度,D指定
小数位数。会发生精度丢失
DOUBLE(M,
D)
8字节双精度,M指定长度,D指定
小数位数。会发生精度丢失
DECIMAL(M,
D)
M/D最大
值+2
双精度,M指定长度,D表示
小数点位数。精确数值
NUMERIC(M,
D)
M/D最大
值+2
和DECIMAL一样

MySQL中的字符类型:

数据类型大小说明
VARCHAR (SIZE) 0-65,535字节可变长度字符串,size是字符长度
TEXT0-65,535字节长文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
BLOB0-65,535字节二进制形式的长文本数据

MySQL中的日期类型:

数据类型大小说明
DATETIME8 字 节范围从1000到9999年,不会进行时区的
检索及转换。
TIMESTAMP4 字 节范围从1970到2038年,自动检索当前时
区并进行转换。

MySQL中的约束类型

约束类型说明示例
NULL约束使用NOT NULL指定列不为
name varchar(20) not null,
UNIQUE唯一约束指定列为唯一的、不重复的name varchar(20) unique,
DEFAULT默认值约
指定列为空时的默认值age int default 20,
主键约束NOT NULL 和 UNIQUE 的
结合
id int primary key,
外键约束关联其他表的主键或唯一键foreign key (字段名) references 主
表(列)
CHECK约束(了
解)
保证列中的值符合指定的条
check (sex ='男' or sex='女')

相关内容

热门资讯

XML Schema 杂项数据... XML Schema 杂项数据类型XML Schema 提供了多种数据类型,用于定义 XML 文档中...
Html5前端基本知识整理与回... 今天我们继续结合发布的Html5基础知识点文档进行复习,希望对大家有所帮助。目录列表无...
数据结构练习 1.快速排序的非递归是通过栈来实现的,则前序与层次可以通过控制入栈的顺序来实现...
AJAX学习笔记上(学习自用) AJAX原生AJAX1.1AJAX简介AJAX全程为Asynchronous JavaScript ...
React 开发报错整理 1、'yield' expression implicitly results in an 'any...
LLaMA 模型 大模型LLaMA详解LLaMa系列模型详解(原理介绍、代码解读)...
LlamaFactory可视化... LlamaFactory 前言LLaMA Factory 是一个用于微调大型语言模型的强大工具,特别...
Ajax从零到实战   💝💝💝欢迎来到我的博客,很高兴能够...
基于泰坦尼克号生还数据进行 S... 基于泰坦尼克号生还数据进行 Spark 分析在这篇博客中,我们将展示如何使用 Apac...
在亚马逊云科技AWS上利用Sa... 项目简介:接下来,小李哥将会每天介绍一个基于亚马逊云科技AWS云计算平台...