MySQL筑基篇之增删改查

这篇具有很好参考价值的文章主要介绍了MySQL筑基篇之增删改查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

✅作者简介:C/C++领域新星创作者,为C++和java奋斗中
✨个人社区:微凉秋意社区
🔥系列专栏:MySql一点通
📃推荐一款模拟面试、刷题神器👉注册免费刷题

🔥前言

本文将承接前两篇MySQL专栏的博文,讲解数据库的增删改查操作,这里的查询确切的说应该是初级的查询,不涉及函数、分组等模块,当然更深层次的查询操作将放到后面的博文中,所以小伙伴们可以关注专栏,持续学习MySQL数据库。

一、增加表中数据

1、无自增列时

  1. 指定字段添加数据
    给表中的部分列添加数据:值的顺序必须跟指定列的顺序保持一致
    语法:insert into 表名(列1,列2,...) values(值1,值2,...)
  2. 默认添加数据
    向表中的所有列添加数据:值的顺序必须跟字段顺序保持一致
    语法:insert into 表名 values(值1,值2,...)

2、有自增列时

  1. 对于指定字段的添加
    不用指定自增列,语法同无自增列一致
  2. 对于默认情况的添加
    必须手动为自增列赋值或者填上null
    例如:insert into t_person VALUES(null,'wangwu',32,'男',150.9')

自增列设置方法:

create table if not exists t_person(
		p_id int primary key auto_increment,-- 主键 自增
		...
)

关键字:auto_increment

二、删除表中数据

1、使用delete

语法:delete from 表名 [where条件]

  • 删除所有数据,例如:delete from t_person
  • 删除指定数据,例如:delete from t_person where p_id=8

2、使用truncate

语法:truncate table 表名
通过表截断(truncate)的方式删除数据要优于使用delete,原因:

  1. delete是一条一条删除,效率低,而truncate是直接在物理空间中将存放该表数据的空间截断舍弃,效率更快
  2. delete主键会继续删除之前的自增,而truncate会重新开始自增

三、修改表中数据

语法:update 表名 set 列名1=新值,列名2=新值,... [where 条件]

  • 操作整张表,例如:update t_person set age=18
  • 操作部分数据,例如:update t_person set age=28 where p_id=1

第一个例子的含义是把t_person表中所有的age属性改为18,第二个含义是只把p_id为1对应的age改为28

四、*查询操作

查询是数据库基础的重点,拿小本本记上

1、简单查询

  1. 查询所有列
    select * from 表名
  2. 查询部分列
    select 列名1,列名2,... from 表名
    • 可以通过列出所有字段名的方式查询所有列
      • 弊端:书写繁琐
      • 优势:可维护性更高、更灵活、执行效率更快
  3. 别名
    select 列名1 as 别名1,列名2 as 别名2,... from 表名
    • as关键字可省
      select 列名1 别名1,列名2 别名2,... from 表名
    • 表名也可以起别名

别名使用示例:

SELECT employee_id as 员工编号,salary as 工资 from employees
SELECT employee_id 员工编号,salary 工资,first_name,last_name from employees e

  1. 数学运算
    select 列名+数字,列名-数字,列名*数字,列名/数字,列名%数字 from 表名
  2. 去重
    select distinct 列名 from 表名
    去重规则可以为多个列,只有当规则中的所有列的信息完全一致时才会去重 :
    select distinct 列名1,列名2,... from 表名
  3. case when
select 列名1,列名2,
	case
		when 条件1 then 结果2
		when 条件2 then 结果2
		...
		else 其他结果
	end
from 表名
  • when从上至下判断
  • 每行数据只会执行一个when
  • 类似java中的多重if分支:case开启分支,end结束分支

使用示例:

查询员工id及其工资,并对工资进行评级:工资>10000 高薪,工资>8000 中级,工资>5000 低级,其他 底层

 select employee_id,salary,
    	case
    		when salary>10000 then '高薪'
    		when salary>8000 then '中级'
    		when salary>5000 then '低级'
    		else '底层'
    	end as '薪资等级'
    from employees
  1. 查询表详情
    describe 表名
    describe可以简写成desc:
    desc 表名

2、条件查询

语法:
select 列名 from 表名 where 条件

  1. 单条件查询
    查询工资>10000的员工信息:
    SELECT * from employees where salary>10000

    • 比较的类型为字符串时,对比数据需要加上单引号
    • mysql默认不区分大小写,如有需求,则在对应位置添加binary关键字
      查询first_name为Steven的所有员工信息:
      select * from employees where first_name='STEVEN'
      区分大小写:
      select * from employees where binary first_name='STEVEN'
  2. 多条件查询

    多个条件之间须通过and或者or进行拼接:
    and:代表并且,多个条件同时满足,相当于java中的&&
    or:代表或者,满足任意一个即可,相当于java中的||

  3. 区间查询

    • 在区间内
      between 最小值 and 最大值
    1. 不在范围内
      not between 最小值 and 最大值
  4. 枚举查询

    1. 在列举范围内
      列名 in(值1,值2,值3,...)
      查询员工id为100、105、110的员工信息
      select * from employees where employee_id=100 or employee_id=105 or employee_id=110
      等价于:
      select * from employees where employee_id in(100,105,110)
    2. 不在列举范围内
      列名 not in(值1,值2,值3,...)
      查询员工id不是100、105、110的员工信息
      select * from employees where employee_id not in(100,105,110)
  5. 空值查询

    1. 为空时
      列名 is null
    2. 不为空时
      列名 is not null
      查询commission_pct为null的员工信息
      select * from employees where commission_pct is null
      查询commission_pct不为null的员工信息
      select * from employees where commission_pct is not null
  6. 模糊查询
    语法:
    where 列名 like '值'
    %:代表不固定长度,可以为0-n个字符
    _:代表一个长度

示例:

查询first_name中包含s的员工信息
select * from employees where first_name like '%s%'
查询firstname中以s开头的员工信息
select * from employees where first_name like 's%'
查询firstname中以s结尾的员工信息
select * from employees where first_name like '%s'
查询firstname中第二个字母为s的员工信息
select * from employees where first_name like '_s%'

3、排序

对查询结果进行指定规则的排序显示

1、单列排序
select 列名 from 表名 order by 列名 asc(升序)|desc(降序)
示例:
根据工资从高到低显示员工信息
select * from employees order by salary desc

根据工资从低到高
select * from employees order by salary asc
select * from employees order by salary

tips: 默认为升序排列

2、多列排序
order by 列名1 asc|desc , 列名2 asc|desc,...
示例:
根据工资从低到高显示员工信息,如果工资相同,根据员工id从高到低显示
select * from employees order by salary asc,employee_id desc

3、where+order by

 select 列名 from 表名
 where 筛选条件
 order by 排序条件

示例:
查询工资>10000的员工信息,从高到低显示
select * from employees where salary>10000 order by salary desc

写在最后:
查询操作前面目录前我加上了*表示其为重点内容,下一篇博客是关于查询操作的进阶,期待你的持续关注哦~文章来源地址https://www.toymoban.com/news/detail-519337.html

到了这里,关于MySQL筑基篇之增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【蓝桥杯-筑基篇】动态规划

    🍓系列专栏:蓝桥杯 🍉个人主页:个人主页 目录 1.最大连续子段和 2.LCS 最大公共子序列 3.LIS 最长上升子序列 4.数塔 5.最大子矩阵和 6.背包问题 ①01背包问题 ②完全背包 这段代码是一个求最大子数组和的算法,使用的是动态规划的思想。下面是代码的解释: 首先定义了一个

    2023年04月24日
    浏览(70)
  • 【蓝桥杯-筑基篇】排序算法

    🍓系列专栏:蓝桥杯 🍉个人主页:个人主页 目录 前言: 一、冒泡排序 二、选择排序 三、插入排序 四、图书推荐 算法工具推荐:  还在为数据结构发愁吗?这款可视化工具,帮助你更好的了解其数据结构数据结构和算法动态可视化 (Chinese) - VisuAlgo ​ 1.什么是冒泡排序? 冒

    2024年02月02日
    浏览(41)
  • 【蓝桥杯-筑基篇】贪心

    🍓系列专栏:蓝桥杯 🍉个人主页:个人主页 目录 1.找零问题 ①暴力枚举 ②贪心 2.人性总是贪婪的 3.堆果子 4.图书推荐 有币种 1 、 2 、 4 、 5 、 10 若干张,找零 n 元,输出找零方案。 ①暴力枚举 这是一个找零问题,我们需要找到一种方案,使得用给定的硬币找零时,所需的

    2024年01月18日
    浏览(38)
  • 【蓝桥杯-筑基篇】搜索

    🍓系列专栏:蓝桥杯 🍉个人主页:个人主页 目录 递归树 1.递归构建二进制串  2.全排列的 DFS 解法 3.全排列的 BFS 解法 4.数的划分法 5.图书推荐 递归树 递归树是一种用于分析递归算法时间复杂度的工具。它可以将递归算法的执行过程可视化,从而更好地理解算法的时间复杂度

    2024年01月16日
    浏览(76)
  • 算法修炼之筑基篇——筑基二层后期(初步理解解决贪心算法)

    ✨ 博主: 命运之光 🦄 专栏: 算法修炼之练气篇 🍓 专栏: 算法修炼之筑基篇 ✨ 博主的其他文章: 点击进入博主的主页 前言: 学习了算法修炼之练气篇想必各位蒟蒻们的基础已经非常的扎实了,下来我们进阶到算法修炼之筑基篇的学习。筑基期和练气期难度可谓是天差

    2024年02月11日
    浏览(35)
  • 百日筑基篇——python爬虫学习(一)

    百日筑基篇——python爬虫学习(一) 随着学习的深入,有关从各种不同的数据库中以及互联网上的海量信息,如何有选择性的爬取我们所需的数据以方便我们的数据分析工作,爬虫的学习是必要的。 Python爬虫是指使用Python编程语言编写的程序,通过模拟浏览器行为从网页中

    2024年02月13日
    浏览(49)
  • 算法修炼之筑基篇——筑基一层中期(解决01背包,完全背包,多重背包)

    ✨ 博主: 命运之光​​​​​​ 🦄 专栏: 算法修炼之练气篇​​​​​ 🍓 专栏: 算法修炼之筑基篇 ✨ 博主的其他文章: 点击进入博主的主页​​​​​​ 前言: 学习了算法修炼之练气篇想必各位蒟蒻们的基础已经非常的扎实了,下来我们进阶到算法修炼之筑基篇的

    2024年02月08日
    浏览(32)
  • python一点通: 并行技术有几种? thread和process有什么区别

    在Python中,并行性是一种技术,允许程序同时执行多个任务,从而提高整体性能。Python提供了几种实现并行性的方法,包括线程(threading)、多进程(multiprocessing)以及concurrent.futures模块。在本博文中,我们将探讨线程和进程的概念,它们的区别以及何时选择它们。我们还将

    2024年02月09日
    浏览(44)
  • 深度学习一点通:PyTorch Transformer 预测股票价格,虚拟数据,chatGPT同源模型

    预测股票价格是一项具有挑战性的任务,已引起研究人员和从业者的广泛关注。随着深度学习技术的出现,已经提出了许多模型来解决这个问题。其中一个模型是 Transformer,它在许多自然语言处理任务中取得了最先进的结果。在这篇博文中,我们将向您介绍一个示例,该示例

    2024年02月06日
    浏览(48)
  • python一点通:数据处理顶流Pandas 2.0有什么新功能?

    Pandas 2.0及其后续版本的发布引入了各种功能和增强,标志着在使用Pandas进行数据操作和分析方面的显著演进。这里是对一些新功能的深入解析: 可选依赖的安装: 在Pandas 2.0中,通过pip安装pandas时,可以通过指定extras来安装一组可选的依赖项,例如:pip install “pandas[performan

    2024年02月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包