当前位置: 首页 > news >正文

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

 

表格字段设置如图

语句:

1.输出

1.输出name和age列 

SELECT name,age from student

1.2.全部输出 

select * from student 

2.where子语句

1.运算符:

=等于

>大于

>=大于等于

<小于

<=小于等于

!=    <>不等于

select * from student where age!=24

 

select * from student where age<24

2.逻辑运算符:

and 并且
or  或者
not 取非 主要用在is 或in

select * from student where age>=24 and sex="女" and name="admin"

select * from student where age>=24 or sex="男"

select * from student where age>=20 and age<=24

3.范围 

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

in 范围查询 包含

select * from student where id between 3 and 5

select * from student where id not in(1,4,5)

4.空 

is null 为null

select * from student where age is not null

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

3.分页查询

1.语句

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

limit b offset a 

select * from student  limit 0,5

 

eg.

一页3个 pagesize

$1.第一页  page

select * from student  limit 0,3

$2. 第二页

select * from student  limit 3,3

$3. 第三页

select * from student  limit 6,3

 

$4.第四页

select * from student  limit 9,3

2.总结 :

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

 3.位置:

limit 子语句放在最后位置

select * from student  where sex="男" limit 0,3

4.排序子语句

1.语句

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

 

select * from student ORDER BY age desc

2.位置:

排序子语句的相对位置  

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

 

select * from student where sex="女" order by class_num desc limit 0,3

5.分组函数和聚合函数

1.聚合函数

-- sum()求和
-- min()取最小值
-- max() 取最大值
-- avg()取平均值
-- count()取得的记录数量  count(*)表示取得当前查询表的所有记录数  

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

select count(age) from student

 

select count(*) from student

 

2.分组函数

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

select max(age),class_num from student GROUP BY class_num

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. 查询

select * from 班级表,学生表 where 学生表.cid=班级表.id

-- 连表查询 join on
-- 内连接
-- 外连接   左外连接和右外连接

 把where的地方换成on

select * from 班级表 join 学生表 on 学生表.cid=班级表.id

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

select * from 班级表 left join 学生表 on 学生表.cid=班级表.id

 

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

select * from 班级表 right join 学生表 on 学生表.cid=班级表.id

http://www.lryc.cn/news/443685.html

相关文章:

  • 基于springboot的在线视频点播系统
  • 笔记整理—内核!启动!—kernel部分(8)动态编译链接库与BSP文件
  • Cpp类和对象(中续)(5)
  • 深度学习02-pytorch-01-张量的创建
  • pg入门9—pg中的extentions是什么
  • JAVA:Nginx(轻量级的Web服务器、反向代理服务器)--(1)
  • 互斥锁和自旋锁
  • 救生圈检测系统源码分享
  • 容器技术--Dockerfile 构建镜像
  • Hive企业级调优[5]—— HQL语法优化之数据倾斜
  • 表示速度的speed与velocity语义辨析
  • Electron 图标修改
  • 项目扩展二:消息拉取功能的实现
  • C语言6大常用标准库 -- 4.<math.h>
  • 【图像匹配】基于SIFT算法的图像匹配,matlab实现
  • C++门迷宫
  • 用最通俗易懂的语言和例子讲解三维点云
  • VM虚拟机下载以及激活
  • 详解Ajax与axios的区别
  • golang学习笔记28——golang中实现多态与面向对象
  • 运行 xxxxApplication 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。
  • k8s自动清理pod脚本分享
  • Go并发编程的高级技巧——请求复制与限流
  • 网站建设模板选择哪种
  • 【linux】kill命令
  • Python基础 | 在虚拟环境中安装并在指定文件夹中打开Jupyter notebook
  • 1.Spring-容器-注册
  • Mapper.xml SQL大于小于号转义符
  • Linux:进程(三)——进程状态
  • Effective Java 学习笔记 如何为方法编写文档