MySQL之CRUD(上)

server/2024/10/17 6:36:33/

1. CURD 简介

CURD是对数据库中的记录进行基本的增删改查操作;

  • Creat (创建)
  • Retrieve(读取)
  • Update(更新)
  • Deleate(删除)

2. Creat新增

2.1 语法:

INSERT [INTO] table_name[(column[,column]...)]
VALUES(value_list)[,(value_list)]...
value_list:value,[,value]...

2.2 示例:

创建一个用于演示的表

create table users(id  bigint,name varchar(20) comment `用户名`
);

2.2.1 单行数据全列插入

注意:value_list 中的值的数量和顺序必须和定义表中的数量及顺序一致

insert into users value(1,'张三');

在这里插入图片描述

2.2.2 单行数据指定列插入

注意:value_list 中的值的数量和顺序必须和指定列中的数量及顺序一致

insert into users (id,name) value(2,'李四');

在这里插入图片描述

2.2.3 多行数据指定列插入

注意:在一条insert语句中也可以指定多个value_list,实现一次插入多行数据

insert into users (id,name) value(3,'王五') ,(4,'钱六');

在这里插入图片描述

在这里插入图片描述

3. Retrieve检索

3.1 语法:

select [DISTINCT]select_expr [,select_expr]...[from table_references][where where_condition][group by {col_name}|expr,...][having where_condition][order by {col_name|expr}][ASC|DESC,...][limit {[offset,]row_count|row_count offset offset}]

3.2 示例;

3.2.1 构造数据

//构建一个表
create table exam(
id bigint,
`name` varchar(20) comment '姓名',
chinese float comment '语文成绩',
math float comment '数学成绩',
english float comment '英语成绩'
);//插入测试数据
insert into exam (id,name,chinese,math,english) values
(1,'吕布',76,68,89),
(2,'貂蝉',97,87,89),
(3,'曹昂',69,76,88),
(4,'董卓',77,87,46),
(5,'刘备',79,88,81),
(6,'曹植',99,67,90),
(7,'曹阿瞒',93,87,69);

在这里插入图片描述

3.3 select

3.3.1 全列查询

查询所有记录,使用*可以查询表中所有列的值

select * from exam;

在这里插入图片描述

3.3.2 指定列查询

在select 后面的查询列表中指定希望查询的列,可以是一个也可以是多个,中间用逗号隔开
指定列的顺序和表结构中的列顺序无关

查询所有人的编号、姓名、语文成绩:

select id,name,chinese from exam;

在这里插入图片描述

3.3.3 查询列为表达式

1.常量表达式

select id,name,10 from exam;

在这里插入图片描述

2.把所有学生的语文成绩加10分

select id,name,chinese+10 from exam;

在这里插入图片描述

3.计算所有学生语文、数学、英语成绩的总分

select id,name,chinese+math+english from exam;

在这里插入图片描述

3.3.4 为查询结果指定别名

语法:

select column [AS] alias_name[,...] from table_name;

注意:AS可以省略不写,别名如果包含空格必须用单引号包裹

在这里插入图片描述

3.3.5 结果去重查询

1.查询当前所有的数学成绩

select math from exam;

在这里插入图片描述

2. 在结果集中去除重复记录,可以使用DISTINCT

select distinct math from exam

在这里插入图片描述

注意:使用DISTINCT 去重时,只有查询列表中所有的值都相同才会判定为重复在这里插入图片描述

建议:查询时不加限制条件会返回表中所有的结果,如果表中的数据量过大,会把服务器资源消耗殆尽,所有建议在生产环境中尽量使用带限制条件的查询

何为条件查询,我们下文叙述。

3.4 Where 条件查询

3.4.1 语法:

select select_expr[,select_expr]...[from table_references]where where_condition;

3.4.2 比较运算符

运算符说明
>,>=,<,<=大于,大于等于,小于,小于等于
=等于,对NULL的比较不安全,比如NULL=NULL 结果还是NULL
<=>等于,对NULL的安全,比如NULL=NULL 结果还是TRUE(1)
!=,<>不等于,两者对NULL的判定一样的,二者任选其一皆可
value BETWEEN a0 AND a1范围匹配,[a0,a1],如果a0<=valus<=a1,返回TRUE 或1,NOT BETWEEN 则取反
value IN (option,…)如果value在option列表中,,返回TRUE (1),NOT IN 则取反
IS NULL是NULL
IS NOT NULL不是NULL
LIKE模糊匹配,%表示任意多个(包括0个)字符,_表示任意一个字符,NOT LIKE 则取反

3.4.3 逻辑运算符

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

3.4.4 示例:

3.4.4.1 基本查询

查询英语不及格的同学及英语成绩(<60)

select name,english from exam where english<60;

在这里插入图片描述

查询语文成绩高于英语成绩的同学

select name,chinese,english from exam where chinese>english;

在这里插入图片描述

查询总分在200分以下的同学

select name,chinese,math,english from exam where chinese+math+english<200;

在这里插入图片描述

3.4.4.2 AND 和 OR

查询语文成绩大于80分且英语成绩大于80分的同学

select name,chinese,english from exam where chinese >80 and english >80;

在这里插入图片描述

查询语文成绩大于80分或者英语成绩大于80分的同学

select name,chinese,english from exam where chinese >80 or english >80;

在这里插入图片描述

观察AND 和 OR的优先级

我们发现AND 的优先级大于 OR

3.4.4.3 范围查询

查询语文成绩在80分到90分的同学及语文成绩

select name,chinese from exam where chinese between 80 and 90;

在这里插入图片描述

查询数学成绩是67或者68或者76

select name,math from exam where math in (67,68,76);

在这里插入图片描述

3.4.4.4 模糊查询

% -> 查询所有姓曹的同学

select name from exam where like '曹%';

在这里插入图片描述

_ -> 查询所有姓曹且名字只有两个字的同学

select name from exam where like '孙_';

在这里插入图片描述

3.4.4.5 NULL 的查询

查询英语成绩为NULL的记录

select * from exam where english is NULL;

在这里插入图片描述

查询英语成绩不为NULL的记录

select * from exam where english is not NULL;

在这里插入图片描述

NULL 与其他值进行运算结果为NULL

在这里插入图片描述


http://www.ppmy.cn/server/132417.html

相关文章

「4.4」祖孙询问

「4.4」祖孙询问 题目描述 已知一棵 n 个节点的有根树。有 m 个询问&#xff0c;每个询问给出了一对节点的编号 x 和 y&#xff0c;询问 x 与 y 的祖孙关系。 输入格式 输入第一行包括一个整数 n 表示节点个数&#xff1b; 接下来 n 行每行一对整数对 a 和 b 表示 a 和 b 之…

树莓派应用--AI项目实战篇来啦-13.OpenCV摄像头云台人脸追踪

1. OpenCV 舵机云台人脸追踪介绍 本项目内容和前面学习的云台追踪物体是一样的原理&#xff0c;只是这里把追踪物体修改成追踪人脸&#xff0c;在前面的内容中&#xff0c;我们已经学习了二维云台的物体追踪&#xff0c;理解了二维云台对物体追踪的PID控制模型&#xff0c;在本…

【DBA Part01】国产Linux上安装Oracle进行数据迁移

内容如下&#xff1a; 1.1.生产环境RHEL/OEL Linux8Oracle11gR2安装配置 1.2.国产麒麟操作系统Oracle11gR2安装配置 1.3.国产麒麟操作系统Oracle11gR2 RAC集群安装配置 1.4.Oracle11gR2迁移到国产麒麟操作系统&#xff08;单机/RAC&#xff09; 本阶段课程项目需求说明&am…

【UML】一个UML学习的还不错的几个帖子

https://segmentfault.com/a/1190000042775634 寂然解读设计模式 - UML类图&类的六大关系-阿里云开发者社区

【Spring】Spring实现加法计算器和用户登录

加法计算器 准备工作 创建 SpringBoot 项目&#xff1a;引入 Spring Web 依赖&#xff0c;把前端的页面放入项目中 **<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport"…

量化高频数据获取以及策略分析

标题&#xff1a;量化高频价差交易&#xff1a;技术与策略的完美结合 一、概述 量化高频价差交易&#xff0c;作为金融市场的一种新兴交易方式&#xff0c;以其独特的优势在众多交易策略中脱颖而出。本文将探讨量化高频价差交易的原理、策略及其在实战中的应用&#xff0c;为广…

爬虫逆向学习(十二):一个案例入门补环境

此分享只用于学习用途&#xff0c;不作商业用途&#xff0c;若有冒犯&#xff0c;请联系处理 反爬前置信息 站点&#xff1a;aHR0cDovLzEyMC4yMTEuMTExLjIwNjo4MDkwL3hqendkdC94anp3ZHQvcGFnZXMvaW5mby9wb2xpY3k 接口&#xff1a;/xjzwdt/rest/xmzInfoDeliveryRest/getInfoDe…

线下陪玩导游系统软件源码,家政预约服务源码(h5+小程序+app)

游戏陪玩系统源码陪玩小程序源码搭建基于PHP&#xff0b;MySQL陪玩系统app源码陪玩系统定制开发服务、成品陪玩系统源码 系统基于Nginx或者Apache PHP7.3 数据库mysql5.6 前端为uniapp-vue2.0 后端为thinkphp6 有域名授权加密&#xff0c;其他开源可二开 演示源码下载 开…