一、子查询
- 子查询就是嵌套的 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 | 日期型 年月日 时分秒 毫秒 |
BLOB | Binary Large OBject(二进制大对象) |
CLOB | Character Large OBject(字符大对象) |
char和varchar怎么选择? 在实际的开发中,当某个字段中的数据长度不发生改变的时候,是定长的,例如:性别、生日等都是采用char。 当一个字段的数据长度不确定,例如:简介、姓名等都是采用varchar。
案例:
代码语言:javascript复制创建学生表:
学生信息包括:
学号、姓名、性别、班级编号、生日
学号:bigint
姓名:varchar
性别:char
班级编号:int
生日:char
代码语言:javascript复制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,....)
字段的数量和值的数量相同,并且数据类型要对应相同。 给表中插入数据:
代码语言:javascript复制 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 条件;
注意:没有条件整张表数据全部更新。 修改表中的数据:
代码语言:javascript复制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 条件;
删除表中数据:
代码语言:javascript复制delete from t_student where no=1;
delete from t_student where no=2;
当前表为一个空表:
今天的分享就到这里啦!!~感谢大家的观看,希望对大家有帮助的话麻烦给个丝滑三连击。(点赞+转发 关注) 一起加油,一起努力,一起秃见成效