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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 子查询、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


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
49 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
2月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
67 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
2月前
|
关系型数据库 MySQL Shell
MySQL回滚脚本: 误操作delete binlog回滚shell脚本
MySQL回滚脚本: 误操作delete binlog回滚shell脚本
|
2月前
|
存储 自然语言处理 关系型数据库
MySQL全文索引源码剖析之Insert语句执行过程
【8月更文挑战第17天】在MySQL中,处理含全文索引的`INSERT`语句涉及多步骤。首先进行语法解析确认语句结构无误;接着语义分析检查数据是否符合表结构及约束。随后存储引擎执行插入操作,若涉及全文索引则进行分词处理,并更新倒排索引结构。此外,事务管理确保了操作的完整性和一致性。通过示例创建含全文索引的表并插入数据,可见MySQL如何高效地处理此类操作,有助于优化数据库性能和提升全文搜索效果。
|
2月前
|
SQL 关系型数据库 MySQL
MySQL学习笔记
这篇文章是一份关于MySQL数据库操作的学习笔记,涵盖了数据库的终端操作、数据类型、建表约束、事务处理以及SQL的连接查询等基础知识点。
|
2月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
31 6
|
2月前
|
关系型数据库 MySQL
解决MySQL insert出现Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘xxx‘ at row 1
解决MySQL insert出现Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘xxx‘ at row 1
72 2
|
2月前
|
存储 SQL 关系型数据库
MySQL中的update操作与锁机制
本文探讨MySQL中`UPDATE`操作的自动加锁机制及其对数据一致性的保障作用。尤其在InnoDB存储引擎下,系统会在涉及索引的更新操作中加行锁或间隙锁,防止多事务并发修改同一条记录。通过福利码兑换系统的实例展示,当线程A开启事务更新库存时,线程B试图更新相同记录会被阻塞,直至线程A提交。此外,文章还介绍了乐观锁及版本号控制等策略进一步提升并发性能的方法。作者:小明爱吃火锅,来源:稀土掘金。
138 2
|
2月前
|
存储 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
33 4
|
2月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(中)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
25 3
下一篇
无影云桌面