后端-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
相关推荐
qq_529835351 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New3 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6753 小时前
数据库基础1
数据库
我爱松子鱼3 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo4 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser5 小时前
【SQL】多表查询案例
数据库·sql
Galeoto5 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)5 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231115 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白5 小时前
PostgreSQL:更新字段慢
数据库·postgresql