MySQL学习笔记汇总(三)——子查询、limit、表(insert,update,delete)

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 子查询、limit、表(insert,update,delete)的相关学习。

一、子查询


子查询就是嵌套的 select 语句,可以理解为子查询是一张表

语法:


1.png


where子句中使用子查询


案例:


找出高于平均薪资的员工信息。

1.png


from 语句中使用子查询


在 from 语句中使用子查询,可以将该子查询看做一张 表


案例:

找出每个部门平均薪水的等级。

1.png


select 语句中使用子查询


案例:


找出每个员工所在的部门名称,要求显示员工名和部门名。


1.png


二、limit的使用


limit是mysql特有的,其他数据库中没有。

limit取结果集中的部分数据

语法机制:

limit startIndex, length

startIndex表示起始位置,从0开始,0表示第一条数据。

length表示取几个


limit是sql语句最后执行的一个环节:


1.png


案例:


取出工资前5名的员工

思路:降序取前5个

1.png


找出工资排名在第4到第9名的员工


1.png



通用的标准分页sql


每页显示pageSize条记录:

第pageNo页:(pageNo - 1) * pageSize, pageSize


pageSize是什么?是每页显示多少条记录

pageNo是什么?显示第几页


三、表


创建表


建表语句的语法格式:

    create table 表名(
      字段名1 数据类型,
      字段名2 数据类型,
      字段名3 数据类型,
      ....
    );


MySql 常用数据类型

类型 描述
Char(长度) 定长字符串,存储空间大小固定,适合作为 主键或外键
Varchar(长度) 变长字符串,存储空间等于实际数据空间
double(有效数字位数,小数位) 数值型
Float(有效数字位数,小数位) 数值型
Int( 长度) 整型
bigint(长度) 长整型
Date 日期型 年月日
DateTime 日期型 年月日 时分秒 毫秒
BLOB Binary Large OBject(二进制大对象)
CLOB Character Large OBject(字符大对象)


char和varchar怎么选择?


在实际的开发中,当某个字段中的数据长度不发生改变的时候,是定长的,例如:性别、生日等都是采用char。

当一个字段的数据长度不确定,例如:简介、姓名等都是采用varchar。


案例:


创建学生表:
    学生信息包括:
      学号、姓名、性别、班级编号、生日
      学号:bigint
      姓名:varchar
      性别:char
      班级编号:int
      生日:char
create table t_student(
  no bigint,
  name varchar(255),
  sex char(1),
  classno int,
  birthday char(10)
);

查看表结构:


1.png


插入数据:insert


语法格式:

insert into 表名(字段名1,字段名2,字段名3,....) values(值1,值2,值3,....)

字段的数量和值的数量相同,并且数据类型要对应相同。


给表中插入数据:


 insert into t_student values(1,'jack','0',20200911,'1986-10-23');
 insert into t_student values(2,'lucy','女',20200911,'1986-10-23');

查看表中数据:


1.png



修改数据:update


语法格式:

  update 表名 set 字段名1=值1,字段名2=值2... where 条件;

注意:没有条件整张表数据全部更新。

修改表中的数据:


update t_student  set name='zhangsan',sex='女',birthday='1995-10-23' where no=1;
update t_student set name='lisa',classno=20200811,birthday='1999-05-06' where no=2;

查看表中数据:

1.png


删除数据:delete


语法格式:

 

    delete from 表名 where 条件;

删除表中数据:


delete from t_student where no=1;
delete from t_student where no=2;

当前表为一个空表:

1.png


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
9月前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
429 6
|
存储 关系型数据库 MySQL
MySQL索引学习笔记
本文深入探讨了MySQL数据库中慢查询分析的关键概念和技术手段。
908 81
|
存储 关系型数据库 MySQL
10个案例告诉你mysql不使用子查询的原因
大家好,我是V哥。上周与朋友讨论数据库子查询问题,深受启发。为此,我整理了10个案例,详细说明如何通过优化子查询提升MySQL性能。主要问题包括性能瓶颈、索引失效、查询优化器复杂度及数据传输开销等。解决方案涵盖使用EXISTS、JOIN、IN操作符、窗口函数、临时表及索引优化等。希望通过这些案例,帮助大家在实际开发中选择更高效的查询方式,提升系统性能。关注V哥,一起探讨技术,欢迎点赞支持!
701 5
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
575 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
340 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
SQL 缓存 关系型数据库
MySQL Limit实现原理
本文深入解析了MySQL中`LIMIT`子句的实现原理及其在分页、性能优化等场景下的应用技巧。文章详细介绍了`LIMIT`的基本语法、MySQL内部处理流程,以及如何通过索引优化、覆盖索引等策略提升分页查询的性能,并提供了实践建议。
1162 3
|
SQL 缓存 关系型数据库
MySQL高级篇——关联查询和子查询优化
左外连接:优先右表创建索引,连接字段类型要一致、内连接:驱动表由数据量和索引决定、 join语句原理、子查询优化:拆开查询或优化成连接查询
MySQL高级篇——关联查询和子查询优化
|
关系型数据库 MySQL PostgreSQL
postgresql和mysql中的limit使用方法
postgresql和mysql中的limit使用方法
782 1
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
287 1

推荐镜像

更多