后端-navicat查找语句(单表与多表)

表格字段设置如图

语句:

1.输出

1.输出name和age列

sql 复制代码
SELECT name,age from student

1.2.全部输出

sql 复制代码
select * from student 

2.where子语句

1.运算符:

=等于

>大于

>=大于等于

<小于

<=小于等于

!= <>不等于

sql 复制代码
select * from student where age!=24
sql 复制代码
select * from student where age<24
2.逻辑运算符:

and 并且

or 或者

not 取非 主要用在is 或in

sql 复制代码
select * from student where age>=24 and sex="女" and name="admin"
sql 复制代码
select * from student where age>=24 or sex="男"
sql 复制代码
select * from student where age>=20 and age<=24
3.范围

between ..and ..范围查询,在两个值之间

in 范围查询 包含

sql 复制代码
select * from student where id between 3 and 5
sql 复制代码
select * from student where id not in(1,4,5)
4.空

is null 为null

sql 复制代码
select * from student where age is not null

模糊查询 like 为模糊查询 需要配合占位符一起使用 _代表一位字符 %代表任意位字符

3.分页查询

1.语句

limit a,b ----a表示起始的索引值 b表示查询的个数

limit b offset a

sql 复制代码
select * from student  limit 0,5

eg.

一页3个 pagesize

$1.第一页 page

sql 复制代码
select * from student  limit 0,3

$2. 第二页

sql 复制代码
select * from student  limit 3,3

$3. 第三页

sql 复制代码
select * from student  limit 6,3

$4.第四页

sql 复制代码
select * from student  limit 9,3
2.总结

select * from student limit (page-1)*pagesize,pagesize

3.位置:

limit 子语句放在最后位置

sql 复制代码
select * from student  where sex="男" limit 0,3

4.排序子语句

1.语句

order by 列名 desc降序排列 || asc升序

sql 复制代码
select * from student ORDER BY age desc
2.位置:

排序子语句的相对位置

在where子语句之后 在limit子语句之前

sql 复制代码
select * from student where sex="女" order by class_num desc limit 0,3

5.分组函数和聚合函数

1.聚合函数

-- sum()求和

-- min()取最小值

-- max() 取最大值

-- avg()取平均值

-- count()取得的记录数量 count(*)表示取得当前查询表的所有记录数

count(字段名称)不会统计为null的记录

sql 复制代码
select count(age) from student
sql 复制代码
select count(*) from student
2.分组函数

GROUP BY 字段名称 分完组之后做查找用having

sql 复制代码
select max(age),class_num from student GROUP BY class_num
sql 复制代码
select max(age),class_num from student GROUP BY class_num having class_num=2

2.多表查询

1.关系

1.1 一对一

$ 1.合并成一张表 效果最好

$ 2. 在其中一张表加入外键

&&or

$3. 单独创建一张表存关系

1.2 一对多

学生对班级

$1. 合成一张表

缺点:有多少学生这些信息得存多少遍 数据冗余

$2. 在多方加入外键 效果最好

修改班级等方便, &&查看班级多少人,只需看cid有多少个

②在1方加入外键 数据冗余

$3. 单独创建一张表存关系

1.3 多对多

学生对课程

课程对学生

$1. 合并成一张表----->重复

$2. 加外键

在谁方谁冗余

①学生方

②课程方

$3. 单独创建一张表存关系

1.4 结论:

2.查询

$1. 建立班级表和学生表

$2. 添加外键

$3. 填入数据

$4. 查询

sql 复制代码
select * from 班级表,学生表 where 学生表.cid=班级表.id

-- 连表查询 join on

-- 内连接

-- 外连接 左外连接和右外连接

把where的地方换成on

sql 复制代码
select * from 班级表 join 学生表 on 学生表.cid=班级表.id

#左连接 (公共的部分加上左边空的<独有的>)

sql 复制代码
select * from 班级表 left join 学生表 on 学生表.cid=班级表.id

#右连接(公共的部分加上右边空的<独有的>)

sql 复制代码
select * from 班级表 right join 学生表 on 学生表.cid=班级表.id
相关推荐
VX:Fegn089513 小时前
计算机毕业设计|基于springboot + vue乡村振兴服务系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
大柏怎么被偷了13 小时前
【Linux】文件系统
linux·运维·数据库
即将进化成人机13 小时前
验证码生成 + Redis 暂存 + JWT 认证
数据库·redis·笔记
画***林13 小时前
雷家林诗歌集录一英文版Collected Poems of Lei Jialin, Volume I (English Edition)
数据库·sql
fantasy_arch13 小时前
pd_process.c 文件源码分析
c语言·数据库·视频编解码·av1
Elastic 中国社区官方博客13 小时前
Kibana:使用 ES|QL 构建地图,对国家或地区的指标进行对比
大数据·数据库·elasticsearch·搜索引擎·信息可视化·全文检索·kibana
vortex514 小时前
ORM是什么?如何理解ORM?ORM的优缺点?
java·数据库·sql·mysql·oracle·orm
盟接之桥14 小时前
盟接之桥--说制造:从“找缝隙”到“一万米深”——庖丁解牛式的制造业精进之道
大数据·前端·数据库·人工智能·物联网·制造
九章-14 小时前
国企国产化替代标杆实践:金仓数据库赋能贵州磷化EMS系统自主可控升级
数据库·mysql·安全
利刃大大14 小时前
【Mybatis】Mybatis入门 && 基础操作 && XML配置文件开发 && 多表查询 && 注入问题 && 数据库连接池
xml·数据库·mybatis