【MySQL探索之旅】MySQL数据表的增删查改(初阶)

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

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

📚博客主页:爱敲代码的小杨.

✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

0. 前言

前面我们学习了MySQL数据库和数据表的创建、删除。接下来我们就需要将数据保存在数据表中。今天我们就来学习数据表的增删查改(CRUD)。CRUD即增加(Create),查询(Retrieve),更新(Update),删除(Delete)四个单词的首字母缩写。

1. 新增(Create)

一旦创建数据库和数据表,下一步就是向数据表中添加数据。MySQL 通过 insert 语句来添加一条或多条数据。

语法格式:

insert into 表名 values (表达式, ...., 表达式);

示例:创建学生表

-- 创建学生表 id 
create table student(id int, name varchar(20));

1.1 单行数据+全列插入

-- 插入两条记录,表达式数量必须和定义表的列的数量及顺序一致
insert into student values(1,'张三');
insert into student values(2,'李四');

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

1.2 多行数据+全列插入

-- 同时插入两条记录
insert into student values(4, '王五'),(5,'赵六');

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

【注意】:一次插入多条数据,效率往往比多次插入一条数据要高。

1.3 指定列插入

-- 表达式 数量必须和指定列数量及顺序一致
insert into student(name) values('王麻子')

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

2. 查询(Retrieve)

MySQL 通过 select 语句来查询数据,查询结果通常会生成一个临时表。

语法格式:

select 列名 from 表名;

示例:

-- 创建成绩表 学好 姓名 语文成绩 数学成绩 英语成绩
create table result(id int, name varchar(20), chinese decimal(3,1), math decimal(3,1), english decimal(3,1));

-- 插入数据
insert into result values (1,'张三',67, 98, 56);
insert into result values (2,'孙悟空', 87.5, 78, 77);
insert into result values (3,'李四',90,56.5,78);
insert into result values (4,'王五',90,98,78);

2.1 全列查询

-- 通常情况下不建议使用 * 进行全列查询
-- 查询的列越多,意味着需要传输的数据量越大,可能导致数据库崩溃
select * from result;

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

2.2 指定列查询

-- 指定列的顺序不需要按定义表的顺序来
select name,id from result;

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

2.3 表达式查询

-- 表达式不包含表达式
select id,name,10 from result;

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

-- 表达式包含一个字段
select id,name,chinese+10 from result;

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

-- 表达式包含多个字段
select id,name,chinese+math+english from result;

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

2.4 别名

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:

select 表达式 as 别名 from 表名;
-- 表中列名=别名
select id,name,chinese+math+english as 总分 from result;

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

2.5 去重

MySQL 使用 distinct关键字对某列数据进行去重:

-- 数学成绩98重复了
select math from result;
select distinct math from result;

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

2.6 排序

语法:

select 列名 from 表名 order by 列名 [asc | desc];
  1. 没有 order by 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

  2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

    select id,name from result order by name;
    select id,name from result order by name desc;
    

    【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

  3. 使用表达式及别名排序

    select id,name,chinese+math+english as 总分 from result order by 总分;
    select id,name,chinese+math+english as 总分 from result order by 总分 desc;
    

    【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

  4. 可以对多个字段进行排序,排序优先级随书写顺序

    -- 查询所有同学的成绩按数学升序、语文降序排序
    select * from result order by math,chinese desc;
    

    【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

2.7 条件查询

学习条件语法之间我们先学习条件查询需要用到的运算符:比较运算符和逻辑运算符

比较运算符:

运算符 说明
> < >= <= 大于、小于、大于等于、大于等于
= 等于 NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=> 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!= <> 不等于
between a1 and a2 范围匹配,[a1 a2],如果 a1<= value <= a2,返回 TRUE(1)
in(option,…) 如果是option中的任意一个,返回TRUE(1)
is null 是null
is not null 不是null
like 模糊匹配。
%表示任意多个(包含0个)任意字符
_表示任意一个字符

逻辑运算符:

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

【注意】:

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

    SQL 的执行顺序

    1. 遍历表
    2. 代入条件
    3. 计算列名中的表达式(定义别名)
    4. 排序/聚合等操作

    示例:

    【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

    语句1中:遍历表的时候没有总成绩这个列名直接报错。

    语句2则正确执行。

  2. and 的优先级高于or,在同时使用的,需要使用小括号()括起来优先执行的部分。

示例:

  • 基础查询

    -- 查询语文成绩大于80分的同学
    select * from result where chinese > 80;
    -- 查询数学成绩小于英语成绩的同学
    select * from result where math < english;
    -- 查询总成绩大于230的同学
    select id,name,chinese+math+english as 总成绩 from result where chinese+math+english < 230;
    

    【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

  • andor

    -- 查询语文成绩大于80数学成绩小于80的同学
    select * from result where chinese>80 and math<80;
    -- 查询语文成绩大于90或者数学成绩大于80
    select * from result where chinese>90 or math>80;
    
  • 范围查询

    1. between...and...

      -- 查询语文在[80,90]之间的同学
      select * from result where chinese between 80 and 90;
      
      -- 替换成 and 实现
      select * from result where chinese >= 80 and chinese <= 90;
      

      【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

    2. in

      -- 查询数学成绩是58 或者 68 或者 78 或者 88 或者 98的同学
      select * from result where math in(58,68,78,88,98);
      -- 替换成 or 实现
      select * from result where math=58 or math=68 or math 78 or math=88 or math=98;
      

      【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

  • 模糊查询:like

    select * from result where name like "张%";
    select * from result where name like "%张";
    select * from result where name like "_张";
    select * from result where name like "张_";
    

    【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

  • null 查询

    -- 查询名字为null的同学
    select * from result where name is null;
    -- 查询名字不为null的同学
    select * from result where name is not null;
    

    【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

2.8 分页查询

语法:

-- 起始下标为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;

案例:

-- 查询表的前3条记录
select * from result order by id limit 3;
-- 查询表的3到6条记录
select * from result order by id limit 3,3;
select * from result order by id limit 3 offset 3;

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

3. 修改(Update)

语法:

update 表名 set 列名 =where 表达式;

示例:

-- 将张三的数学成绩修改80
update result set math = 80 where name = '张三';
-- 将王五的数学成绩修改90,语文修改95
update result set math = 90,Chinese = 95 where name = '王五';

4. 删除(Delete)

语法:

delete from 表名 [where] [order by] [limit];

示例:

-- 删除张三同学这条记录
delete from result where name = '张三';
-- 删除整张表
 delete from result;

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库

【MySQL探索之旅】MySQL数据表的增删查改(初阶),MySQL探索之旅,mysql,android,数据库文章来源地址https://www.toymoban.com/news/detail-841386.html

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

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

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

相关文章

  • oracle数据表转换为mysql数据表

    oracle数据表转换为mysql数据表,或者反过来,我们可以借助navica的工具 1.打开navicat的工具-数据传输 2.选择源数据库以及目标数据库 目标可以选择数据库也可以选择文件,目标数据库需要提前建好表,这里是选择文件,注意选择一个文件,sql格式即为目标数据库类型,这里不

    2024年02月16日
    浏览(60)
  • 【MySQL】MySQL 数据类型,数值、日期和时间、字符串类型,创建数据表,删除数据表

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL 支持多种类型,大致可以分为三类:数值、日

    2024年02月15日
    浏览(74)
  • MySql基础教程(三):创建数据表、数据增删改查、删除数据表

    创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 1.1 语法 下面是创建MySQL数据表的SQL通用语法: 以下例子在 nobug 数据库中创建数据表 nobug_user : 实例解析: 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,

    2024年02月11日
    浏览(64)
  • 详解初阶数据结构之顺序表(SeqList)——单文件文件实现SeqList的增删查改

    目录 一、线性表 二、顺序表 2.1概念及结构 2.2接口实现 2.3动态顺序表的创建 2.3动态顺序表的初始化 2.3.1传值初始化 2.3.2传址初始化 2.4动态顺序表的清空 2.5动态顺序表的扩容 2.6动态顺序表内容的打印 三、动态顺序表的使用 3.1尾插尾删 3.1.1尾插 3.1.2尾删 3.2头插头删 3.2.1头插

    2024年02月09日
    浏览(40)
  • 实现一个MYSQL工具类,包含判断创建数据表是否存在,创建数据表

    可以使用Python的MySQLdb模块来实现一个MYSQL工具类。下面是一个简单的实现示例: 使用示例: 在上面的示例中,我们首先创建了一个MySQLTool类,并在初始化方法中传入了数据库的连接信息。然后使用connect方法连接到数据库。 table_exists方法用于判断给定的数据表是否存在,它执

    2024年01月15日
    浏览(61)
  • MySQL数据表查询

    😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:进入MySQL知识专栏 🌼欢迎小伙伴们访问到博主的文章内容,在浏览阅读过程发现需要纠正的地

    2024年02月11日
    浏览(68)
  • MySQL数据表

    首先要进入数据库USE name,再创建数据表 或者使用数据库.数据表的方式创建 1.创建数据表 CREATE TABLE [IF NOT EXISTS] 表名( 字段1, 数据类型 [约束条件] [默认值],# 数据类型有INT,VERCHAR(30),CHAR,DATETIME等等 字段2, 数据类型 [约束条件] [默认值],#约束条件,比如指定为主键:PRIMARY KEY,例

    2024年02月13日
    浏览(50)
  • MySQL数据表操作

    目录 内容如下 一、相关的概念 one / 表(关系表) two / 字段(表结构) three / 记录(具体的数据) four / 表之间的关系 five / 二、数据类型 one / 整数类型 two / 浮点数类型 three / 定点数类型 four / 字符类型 five / 日期时间类型 six / 二进制类型 三、存储引擎 one / 概念 tw

    2024年02月10日
    浏览(45)
  • mysql数据库和数据表

    常用的数据类型: int : 整型  用于定义整数类型的数据 float : 单精度浮点4字节32位  准确表示到小数点后六位. double :双精度浮点8字节64位 char :固定长度的字符类型  用于定义字符类型数据 varchar :可变长度的字符类型 text : 文本 image: :图片 SQL语言: Structured Query La

    2024年02月10日
    浏览(65)
  • MySQL 数据表修复方法

    本文主要讲check table和repair table指令; 在检查、修复表,除了用 myisamchk 指令,还可以用 check table 、 repair table 指令。(指令不区分大小写) 检查表是否有错误 CHECK TABLE对 MyISAM 和 InnoDB 表有作用。 对于MyISAM表,统计信息会被更新,CHECK TABLE也可以检查视图是否有错误,

    2024年02月13日
    浏览(61)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包