• 学好MySQL增删查改,争取不做CURD程序员【上篇】


    ✨✨hello,愿意点进来的小伙伴们,你们好呐!
    🐻🐻系列专栏:【MySQL初阶】
    🐲🐲本篇内容:详解MySQL增删查改
    🐯🐯作者简介:一名现大二的三非编程小白,日复一日,仍需努力。

    前言

    在MySQL的基础操作中增删查改是很常用的一种语句,在网络上也有人调侃自己为增删查改程序员,那么增删查改的语句与细节你是否清楚呢,增删查改中的增删改的语句很简单,然后查的数据很复杂,这一章我们就把重点放在查上面。

    INSERE 语句:

    基本语句: INSERT INTO table_name VALUES(…)
    往table_name的表中添加数据。
    下面的代码简单的演示了insert的使用,

    1. 先创建一个goods表,然后在该表中添加数据。
      很简单的一个操作,好像也没有什么的,接下来我们来看看INSERT语句的细节。
    #演示insert
    CREATE TABLE goods(
    	id INT,
    	goods_name VARCHAR(8),
    	price DOUBLE);
    INSERT INTO goods
    	VALUES(1,'华为手机',2550);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    细节:

    🍕🍕🍕1. 在插入的数据应该与对于的字段的数据类型相同
    比如说把 ‘abc’ 的数据存放到 INT 的类型的话是不可行的
    在这里插入图片描述
    但是也会有一中例外,我们会发现往 INT 类型的数据存入 ‘123’ 好像就没有问题,可以成功存入,这个是为什么呢?
    在这里插入图片描述
    这个其实也是很容易理解的,我们可以记得在Java中有一中方法可以将字符串类型的数据转为int类型,但是要求是可以转的类型,所以abc的字符串其实是没办法转为int类型的,而2的字符串是可以转成功的,
    😀😘在MySQL的存放中它会尝试进行转化,看是否能成功。

    🍔🍔🍔2.数据存储的长度应该在创建表时规定的范围内。
    你不可以将一个长度为80的字符串存到长度为40的列中。
    在这里插入图片描述

    🍟🍟🍟3.在values中将要存入的数据位置必须与被加入的列的排列顺序相对应
    像这样子的话就是没办法通过的,因为表名后面括号内的数据要与存进去的数据一一对应,这样子的话会导致类型不符合。
    在这里插入图片描述
    当然我们也可以往列中存进两个数据,然后另一个字段不存数据,
    这样子没有存入数据的话,因为我们在创建的时候没有指定 not null 不为空值,那么就会默认给null值。

    在这里插入图片描述
    在这里插入图片描述
    怎么现在有引出了一个默认值的概念,在我们创建表的时候其实是可以指定默认值的,因为我们没有指定且没有指定不为null,所以,默认值就为null。

    4.在往表中添加列的时候也可以同时添加多列。
    在这里插入图片描述
    在这里插入图片描述

    OUPDATE 语句:

    基本语句:
    UPDATE table_name SET 【…】 WHERE 【…】

    接下来看看UPDATE语句的基本使用:

    我们想修改goods表中的所有手机的价格改为5000
    在这里插入图片描述
    我们想将小米手机的价格改为4000
    在这里插入图片描述
    我们要将苹果手机在原有的价格上调2000
    在这里插入图片描述

    细节:

    🌭🌭🌭1.UPDATE语句使用WHERE语句的话,指定可以更新哪些行,如果没有该语句则更新的是全部行。
    🍿🍿🍿2.如果需要修改多个字段,可以在SET后面多指定字段。

    UPDATE goods
    	SET price = 5000,id = 80
    	WHERE goods_name = '小米手机';
    
    • 1
    • 2
    • 3

    DELETE

    基本语法:
    DELETE FROM table_name WHERE【…】

    删除表中名称为小米手机的一列
    在这里插入图片描述

    细节:

    1.如果不使用where子句,将表中的所有数据删除。
    2. delect语句中不能删除记录,不删除表本身。如果要删除表,使用drop
    3 .DELECT 语句不能删除某一列的值,我们可以使用update改变使其为 null 和 ’ ’

    SELECT 语句:

    在学习SELECT语句之前我们必须先创建一张表,用来SELECT。— 创建一张学生表

    #select 单表
    #select 关键字 
    CREATE TABLE students(
    	id INT NOT NULL DEFAULT 1,
    	`name` VARCHAR(20) NOT NULL DEFAULT 0.0,
    	chinese FLOAT NOT NULL DEFAULT 0.0,
    	english FLOAT NOT NULL DEFAULT 0.0,
    	math FLOAT NOT NULL DEFAULT 0.0
    	);
    	
    INSERT INTO students
    	VALUES(1,'韩顺平',89,78,90);
    
    INSERT INTO students
    	VALUES(2,'张飞',67,98,56);
    
    INSERT INTO students
    	VALUES(3,'宋江',87,78,77);
    	
    INSERT INTO students
    	VALUES(4,'关羽',88,98,90);
    	
    INSERT INTO students
    	VALUES(5,'赵云',82,84,67);
    	
    INSERT INTO students
    	VALUES(6,'欧阳锋',55,85,45);
    	
    INSERT INTO students
    	VALUES(7,'黄蓉',75,65,30);
    INSERT INTO students
    	VALUES(8,'韩sp',85,65,30);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    在这里插入图片描述

    基本用法:

    在这里插入图片描述
    1.

    #演示select
    #查询所有学生的信息
    SELECT * FROM students;
    # * 代表所有没有特别指定
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    2.

    #演示select
    #查询表中所有学生的姓名和英语成绩
    SELECT `name` , english FROM students;
    # `name` , english 代表 查询name 与英语成绩
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    3.
    我们要注意,只有查询的记录每个字段都相同,才会去重。

    #演示select
    #查询表中所有学生的英语成绩,过滤掉一样的数据
    SELECT DISTINCT   english  FROM students;
    # DISTINCT 过滤掉相同的成绩。
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    4.在查询过程中我们可以对查询的列进行运算:

    #演示select
    SELECT `name` ,(english + chinese + math) FROM students;
    
    • 1
    • 2

    在这里插入图片描述
    然后我们会发现,就是分数的总和的列表示很难看,有一种语法可以修改这种情况----使用别名

    5.别名的使用

    #演示select
    SELECT `name` ,(english + chinese + math)  AS score FROM students;
    
    • 1
    • 2

    在这里插入图片描述

    6.统计每个学生的总分加10分的情况:

    #演示select
    SELECT `name` ,(english + chinese + math + 10)  AS score FROM students;
    
    • 1
    • 2

    在这里插入图片描述

    在SELECT中也有运算符---- 逻辑运算符与比较运算符

    在这里插入图片描述

    7.查询id为5的学生的成绩。

    #演示select
    SELECT * FROM students
    	WHERE id = 5;
    	
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    8.查询英语成绩大于90的同学的成绩。

    #演示select
    SELECT * FROM students
    	WHERE english > 90;
    	
    
    • 1
    • 2
    • 3
    • 4

    9.查询英语分数在70 - 80之间的同学,这时候我们可以使用运算符 BETWEEN AND

    #演示select
    SELECT * FROM students
    	WHERE english BETWEEN 80 AND 90;
    	
    
    • 1
    • 2
    • 3
    • 4

    10 .查询总分为179,180,181的同学 ,可以使用IN 运算符

    SELECT `name` , (english + math + chinese ) AS score FROM students
    	WHERE (english + math + chinese ) IN(179,180,181);
    	
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    11.查询所有姓李的学生的成绩:
    LIKE关键字可以来查询首字符是什么。

    SELECT * FROM students
    	WHERE `name` LIKE '赵%';
    
    
    • 1
    • 2
    • 3

    在这里插入图片描述

  • 相关阅读:
    小白也会的校园网宽带拨号自动重连设置
    物联网平台通用后端架构设计
    PMI-ACP练习题(23)
    初识设计模式 - 装饰器模式
    JS如何判断文字是否溢出(被ellipsis)?
    基于整体学习的大幅面超高分遥感影像桥梁目标检测(含数据集下载地址)
    IronPDF v2023.5.8 For .NET Crack
    LeetCode每日一题 | 309.买卖股票的最佳时机含冷冻期
    JRT多平台托盘优化
    关于websocket数据过多造成浏览器卡顿问题
  • 原文地址:https://blog.csdn.net/m0_62547912/article/details/127681880