MySQL表的增删查改(嘎嘎详细~

news2024/11/27 12:51:06

hello呀!各位,这里是Sunlightʊə。

目前大三,主要在学习Java语言。可以一起交流呀!

相关文章:

MySQL数据库的基础操作(简单、基础版

专栏:

Java数据结构

Java基础语法

MySQL基础

目录

新增(Create)

单行数据插入

多行数据插入

指定列插入

查询(Retrieve)

全列查询

指定列查询

查询字段为表达式

别名

去重

排序

条件查询

比较运算符

 模糊查询

分页查询

修改(Update)

 删除(Delete)


前言:

对于我们平时使用MySQL数据库来说,最多的操作无非就是增删改查,那么这篇文章就带着大家来了解一下MySQL的增删改查如何书写

新增(Create)

insert into 表名 values(列的值);

 在这里一个(),就对应一条记录。

一条记录也就是一行数据。(行是新增的基本单位)。

values()中的内容个数和类型要和表的结构相匹配。

举个例子:

create database student;//创建一个student库
 create table student(  //创建一个student表
     id int,            // 学生id
     sn int,            // 学生的学号
     name varchar(20),  // 学生姓名
     qq_mail varchar(20)// 学生的qq邮箱地址
     );

 插入:

 insert into student values(1,1001,"张三","12345678@qq.com");

 插入操作后,我们查询一下我们的学生表来看插入操作是否成功:

上图明显可以看出,我们的插入操作是成功的。

当然,如果不能插入中文的话,需要把数据库配置成支持中文的utf8编码方式。 

 在SQL中,    和     "       都可以表示字符串。

单行数据插入

insert into 表名 values(列的值);
insert into student values(2,1002,"李四","098653781@qq.com");
insert into student values(1,1003,"王五","235643566@qq.com");

 

多行数据插入

insert into 表名 values
(         列值          ),
(         列值          ),
(         列值          ),
(         列值          ),
(         列值          ),
(         列值          );
insert into student values
     (4,1004,"三三","2320945@qq.com"),
     (5,1005,"二二","4345545@qq.com");

 

指定列插入

指定列插入时要注意,列的值的数量一定要和指定列的数量以及顺序一致

insert into 表名(指定列名) values(列值);
insert into student (id, sn,name) values
     (6,1006,"晨晨"),
     (7,1007,"小米");

 

查询(Retrieve)

查询使用的是select关键字。

 而select操作的是临时表

我们说,数据库的表都是写在硬盘上的,而这个地方说的临时表不在硬盘上,而是在内存中,随着进行输出后,数据也就会被释放掉

临时表的结果对数据库服务器的原始数据没有任何影响。

全列查询

全列查询是直接把一个表的所有的列所有的行查询出来。(当然,这里查询出来的表也是一个临时表)。

select * from 表名;

 这里的    *      是通配符,代表了一个表中所有的列。

但是在通常情况下,不建议使用      进行全列查询。

1.当我们表中的数据很多时,就意味着需要传输的数据量是超级超级大的。

2.可能会影响到索引的使用。

指定列查询

select 指定列 from 表名;

 列名和列名之间用逗号隔开。

指定列的顺序不需要按定义表的顺序来写。

 

查询字段为表达式

也就是说:在查询的时候同时对列和列进行一个运算操作

使用表达式查询的时候,查询的临时表的列表就是我们所写的表达式

 为了更好的介绍后面的操作,在这里我们再创建一个成绩表。

create table exam_score(
     id int,
     name varchar(20),
     chinese decimal(3,1),
     math decimal(3,1),
     english decimal(3,1)
     );
 insert into exam_score (id,name, chinese, math, english) values
    (1,'唐三藏', 67, 98, 56), 
    (2,'孙悟空', 87.5, 78, 77), 
    (3,'猪悟能', 88, 98.5, 90), 
    (4,'曹孟德', 82, 84, 67), 
    (5,' 刘玄德', 55.5, 85, 45), 
    (6,'孙权', 70, 73, 78.5),
    (7,'宋公明', 75, 65, 30);

-- 表达式不包含字段

select id, name, 10 from exam_score; 

-- 表达式包含一个字段 

select id, name, english + 10 from exam_score;

-- 表达式包含多个字段

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

别名

别名相当于给查询结果的临时表指定了一个新的列名

临时表表头的列名=别名

select 列名,列名,列名......  表达式 (as) 别名 from 表名

 

去重

去重就是指,针对于查询的结果,将重复的记录去掉

 使用distinct关键字对某列的数据进行去重操作。

去重前:

 去重后: 去重前的数据中,98.0重复了,故去重时将重复的去掉。

排序

针对于查询结果的临时表进行排序,因为是对临时表进行排序所以不会影响到数据库服务器上面的原始数据

select 列名...... from 表名 order by 列名 [asc|deac];

 ASC:升序排列

DESC:降序排列

 排序前:

 排序后:

 1.没有order by子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序。

2.ASC不写,默认也是升序

3.null数据排序,视为比任何数都小(升序null出现在最上面,降序null出现在最下面

 4.使用表达式别名排序。

 使用别名排序:

 使用表达式排序

5.对于多个字段进行排序时,排序优先级随书写顺序。(先看第一个标准、第二个、第三个......直到可以分出胜负即可。 

 

这里的math已经能分出胜负,所以后面的成绩不需要再排序。 

条件查询

比较运算符

运算符说明
>,>=,<,<=大于,大于等于,小于,小于等于
=等于(在MySQL中是等于而不是赋值)
<=>等于(null<=>null)——>true
!= , <>不等于
between a0 and a1范围匹配,[a0,a1],如果a0<=value>=a1,返回true
in(option,.....)如果是option中任意一个值,那么返回true
is null是null
not null不是null
like模糊匹配。
and多个条件必须都为true,整个语句的结果才是true
or任意一个条件为true,整个语句是结果就是true
not条件为true,结果1为false。条件为false结果为true

1.where条件可以使用表达式,但是不能使用别名。

2.and的优先级高于or,在同时使用这两个条件时,需要用小括号()包裹住优先执行的部分。

select 列名 from 表名 where 条件;

 查询语文比英语成绩好的人

其中,chinese>english,指的是同一行的语文成绩和英语成绩比较,不涉及行与行的比较。

 临时表显示什么内容取决于select后面要查询的列怎么写,写或不写不会影响到后面的条件。

MySQL执行查询操作时,先针对于每一行记录,计算条件,并且按照条件筛选,满足条件的记录,才会取出对应的列,并且计算列里的表达式(生成别名

 模糊查询

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

 2._匹配严格的一个任意字符

1. _ 代表的是任意单个字符。

2. % 代表任意长度的字符串。

3. _A% 代表返回第二个单词为A的任意字符串。 

分页查询

在查询语句的末尾,加上limit指定N,N就表示这次查询最大结果的数量。

起始下标为0.

从0开始,筛选出n个结果。
select ... from 表名[where][order by ...] limit n;

从s开始,筛选出n个结果。
select ... from 表名[where][order by ...] limit s , n;

从s开始,筛选n个结果,但是比上一条更好用。
select ... from 表名[where][order by ...] limit n offset s;

修改(Update)

修改多个列:多个列之间使用" ,  "来分搁开。

update 表名 set 列名 = 值[where条件];

修改操作后,是切实的在服务器中的硬盘数据。 

如果没有写where子句,就是匹配了所有行,但如果有null,就只修改了不是null的。

 删除(Delete)

delete from 表名 where 条件。

如果where没有写条件,那么就是把所有的数据都删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/42234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

流式 Isotype control 流式细胞仪control组

流式细胞术是非常让人着迷的实验。在众多医学研究手段里,如果说弱水三千只取一瓢的话,那我会首选流式细胞术。从我个人感受来讲,流式细胞术高速客观,具有统计学意义,能够处理复杂样本并同时获取多种参数,最最关键的是它性能可靠,可重复性非常好。 虽然也存在一些局限,…

3款超实用的电脑软件,免费又良心,内存满了也绝不卸载

超强的3款电脑软件&#xff0c;每款都是百里挑一的精品。 1、视频画质增强器 这是国人开发的图片视频增强工具&#xff0c;完全免费无任何弹屏广告&#xff0c;它能将画质很差的图片&#xff0c;一键转化为高清大图&#xff0c;同时还能无损放大图片&#xff0c;图片输出格式支…

第150篇 笔记-元宇宙(Metaverse)

定义&#xff1a;元宇宙是一个整体虚拟世界的概念&#xff0c;它与现实世界并行存在&#xff0c;提供主权数字所有权、独特的在线身份、互联环境和沉浸式体验。 随着最近区块链生态系统中NFT的爆炸&#xff0c;以及Facebook的头部转向“Meta”&#xff0c;元宇宙已进入主流公众…

代码源每日一题div1 枚举倍数 平方计数

平方计数 - 题目 - Daimayuan Online Judge 题意&#xff1a; 思路&#xff1a; 首先注意到暴力枚举一定超时&#xff0c;因此我们考虑只枚举一个指针&#xff0c;然后推一推式子降低另一个指针的复杂度 对于完全平方数这个条件&#xff0c;我们无法直接转换 即对于每一个a[…

1.3 测控电路的信号类型、测控电路的类型与组成、测控电路的发展趋势

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事硬件研发&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验&a…

技术指南 | 如何集成Perforce版本控制系统Helix Core (P4V) 与敏捷规划工具Hansoft

Helix Core是Perforce公司旗下一款集源代码管理和内容协作为一体的版本配置与管理工具&#xff0c;可以帮助您管理随时间推移而产生的数字资产&#xff08;代码&#xff0c;文件等&#xff09;变更&#xff0c;处理每天数以千万计的传输&#xff0c;上千TB的数据&#xff0c;以…

zabbix模板监控和自定义监控

目录 一、环境准备 二、使用模板监控 1、添加监控主机 2、设置应用监控模板 3、查看监控数据 三、自定义监控 1、配置自定义监控key 2、创建自定义监控模板、应用集、监控项和图形 2.1、监控模板、应用集、监控项介绍 2.2、创建监控模板 2.3、给自定义模板添加应用集…

mysql回表查询和索引覆盖

作为 JAVA 开发的必备知识&#xff0c;了解回表查询和索引覆盖可以大大提升数据库查询的速度&#xff0c;也是优化数据库查询的必备知识。 1. 什么是索引? 索引&#xff08;在 MySQL 中也叫“键key”&#xff09;是存储引擎快速找到记录的一种数据结构&#xff0c;通俗来说类…

什么是Hystrix?简述实现机制

分布式容错框架 阻⽌故障的连锁反应&#xff0c;实现熔断 快速失败&#xff0c;实现优雅降级提供实时的监控和告警资源隔离&#xff1a; 线程隔离&#xff0c;信号量隔离 线程隔离&#xff1a;Hystrix会给每⼀个Command分配⼀个单独的线程池&#xff0c;这样在进⾏单个服务调⽤…

深入react源码看setState究竟做了什么?

前言 在深究 React 的 setState 原理的时候&#xff0c;我们先要考虑一个问题&#xff1a;setState 是异步的吗&#xff1f; 首先以 class component 为例&#xff0c;请看下述代码&#xff08;demo-0&#xff09; class App extends React.Component {state {count: 0}hand…

LQ0272 矩形运算【计算几何】

题目来源&#xff1a;蓝桥杯2012初赛 Java A组H题 题目描述 在编写图形界面软件的时候&#xff0c;经常会遇到处理两个矩形的关系。 如图 1 所示&#xff0c;矩形的交集指的是&#xff1a;两个矩形重叠区的矩形&#xff0c;当然也可能不存在&#xff08;参看图 2 &#xff09…

Linux下C语言UDP协议通信实践

UDP和TCP协议一样&#xff0c;都是传输层协议。是无连接的&#xff0c;不安全的&#xff0c;报式传输层协议&#xff0c;通信过程默认也是阻塞的。其通信特点主要如下&#xff1a; &#xff08;1&#xff09;不需要建立连接 &#xff0c;所以不需要进行 connect () 操作 &…

国产操作系统之凝思磐石安装

一、凝思磐石操作系统简介 安全性是凝思磐石安全服务平台软件V2.4的主要特征&#xff0c;充分结合凝思科技独有技术与国内外多项安全标准的要求&#xff0c;在操作系统和应用程序的各个层次进行安全增强&#xff0c;使系统成为安全的有机整体。主要安全机制有以下几点&#xff…

高校房产管理现状及数图互通解决方案?

高校拥有大量的房产土地资源、公共设施、公有住房等&#xff0c;是高校开展各类教学、科研的基础场所&#xff0c;也是学校国有资产不可缺少的一部分。但是在管理过程中&#xff0c;存在着较多的困难与问题&#xff1a; 1.房地产的有效利用率不高 2.房地产管理信息化速度较慢…

异常解决!针对文件I/O写入操作时FileNotFoundException异常的修复

一. 异常问题 I/O对于在Java学习路上的初学者来说&#xff0c;简直就是一道长长的坎儿。我们在使用I/O的过程中&#xff0c;会有许多的异常需要处理&#xff0c;并且其中还带有一系列的验证逻辑在其中。如果在学习过程中&#xff0c;我们的基础打得不牢靠&#xff0c;那么可能…

如何在Xshell上运行一个C文件?

1.设置XTP服务器配置 按下图点击&#xff0c;创建一个新的连接&#xff1a; 如图所示&#xff0c;创建成功 2.Xshell界面创建 如图界面&#xff0c;就说明成功了 3.在电脑任意位置保存一个txt文件&#xff0c;注意扩展名要改成.c 4.在Xftp中导入刚写好的.c文件 如图&#xff…

pom报红

若是从其他地方导入的新工程&#xff0c;右边 maven 管理工具中 dependencies 若出现红色波浪线。通常用以下方式尝试解决。 第一步 0.导入外部项目&#xff0c;先配置jdk。 1.&#xff08;检查maven仓库配置是否正确&#xff09;File --> settings 输入maven&#xff0…

爆料,前华为微服务专家纯手打500页落地架构实战笔记,已开源

开篇 微服务是现代系统中非常受关注的“焦点”&#xff0c;越来越多地分布式系统都纷纷采用微服务的设计理念来演进其架构模型。随着微服务应用规模的增长&#xff0c;治理膨胀的系统会越来越困难。比起微服务设计和拆分&#xff0c;如何能够更好地治理大规模的微服务&#xf…

LeetCode每日一题——813. 最大平均值和的分组

LeetCode每日一题系列 题目&#xff1a;813. 最大平均值和的分组 难度&#xff1a;普通 文章目录LeetCode每日一题系列题目示例思路题解题目 给定数组 nums 和一个整数 k 。我们将给定的数组 nums 分成 最多 k 个相邻的非空子数组 。 分数 由每个子数组内的平均值的总和构成…

制作一个简单HTML西安旅游网页(HTML+CSS)

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…