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

71 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情

一、子查询

  • 子查询就是嵌套的 select 语句,可以理解为子查询是一张表
  • 语法: 在这里插入图片描述

where子句中使用子查询

案例:

  • 找出高于平均薪资的员工信息在这里插入图片描述

from 语句中使用子查询

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

案例:

  • 找出每个部门平均薪水的等级。 在这里插入图片描述

select 语句中使用子查询

案例:

  • 找出每个员工所在的部门名称,要求显示员工名和部门名。 在这里插入图片描述

二、limit的使用

  • limit是mysql特有的,其他数据库中没有。
  • limit取结果集中的部分数据
  • 语法机制:

    limit startIndex, length startIndex表示起始位置,从0开始,0表示第一条数据。 length表示取几个

  • limit是sql语句最后执行的一个环节: 在这里插入图片描述

案例:

  • 取出工资前5名的员工 思路:降序取前5个 在这里插入图片描述

  • 找出工资排名在第4到第9名的员工 在这里插入图片描述

==通用的标准分页sql==

每页显示pageSize条记录: 第pageNo页:(pageNo - 1) * pageSize, pageSize

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

三、表

创建表

  • 建表语句的语法格式:
		create table 表名(
			字段名1 数据类型,
			字段名2 数据类型,
			字段名3 数据类型,
			....
		);
  • MySql 常用数据类型
类型描述
Char(长度)定长字符串,存储空间大小固定,适合作为 主键或外键
Varchar(长度)变长字符串,存储空间等于实际数据空间
double(有效数字位数,小数位)数值型
Float(有效数字位数,小数位)数值型
Int( 长度)整型
bigint(长度)长整型
Date日期型 年月日
DateTime日期型 年月日 时分秒 毫秒
BLOBBinary Large OBject(二进制大对象)
CLOBCharacter 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)
);

查看表结构: 在这里插入图片描述

插入数据: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');

查看表中数据: 在这里插入图片描述

修改数据: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;

查看表中数据: 在这里插入图片描述

删除数据:delete

  • 语法格式:
		delete from 表名 where 条件;

删除表中数据:

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

当前表为一个空表: 在这里插入图片描述