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

2024-03-25 1425阅读

温馨提示:这篇文章已超过416天没有更新,请注意相关的内容是否还可用!

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

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

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

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

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

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

文章目录

  • 0. 前言
  • 1. 新增(Create)
    • 1.1 单行数据+全列插入
    • 1.2 多行数据+全列插入
    • 1.3 指定列插入
    • 2. 查询(Retrieve)
      • 2.1 全列查询
      • 2.2 指定列查询
      • 2.3 表达式查询
      • 2.4 别名
      • 2.5 去重
      • 2.6 排序
      • 2.7 条件查询
      • 2.8 分页查询
      • 3. 修改(Update)
      • 4. 删除(Delete)

        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数据表的增删查改(初阶)

        1.2 多行数据+全列插入

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

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

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

        1.3 指定列插入

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

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

        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数据表的增删查改(初阶)

        2.2 指定列查询

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

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

        2.3 表达式查询

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

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

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

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

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

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

        2.4 别名

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

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

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

        2.5 去重

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

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

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

        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数据表的增删查改(初阶)

        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数据表的增删查改(初阶)

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

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

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

        2.7 条件查询

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

        比较运算符:

        运算符说明
        > = 80;
      • 范围查询

        1. between...and...

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

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]