贡献作者 -【XJDomain】
博客XJ: GitHub直播地址:1:DQL:数据查询语句?
1:格式: // 查询指定字段记录 select 字段1,字段2,.... from 表名2:特殊格式: // 查询所有字段记录 select * from 表名1: select name , age from t_stu2: select * from t_stu3: select * from t_stu where age > 20 <条件查询>条件查询>
2:DQL查询相关?统计?排序?分页?
01:统计:
计算记录总个数:1: 查询并统计所有的记录count(x): 01:select count(*) from t_stu 02:select count(age) from t_stu-- 统计-- count:查询计算所有的记录-- select count(*) from t_stu -- 计算所有age不为null的个数-- select count(age) from t_stu
平均值:avg(x):计算某个字段的平均值select avg(age) from t_stuselect avg(score) from t_stu
求和:sum(x):计算某个字段的数据之和select sum(age) from t_stu
最大值:max(x):计算某个字段的最大值select max(age) from t_stu
最小值:min(x):计算某个字段的最小值select min(age) from t_stu02:排序?
1:查询结构可以使用order by进行排序2:默认所有记录都是按照升序进行排序3:也可以使用多个字段进行排序
排序:order by升序:ASC降序:DESCselect * from t_stu order by age ASC, score DESC03:limit分页?
1: 使用limit可以精确的控制查询的结构的数量,比如每次只查询10条记录,一般服务器中会限定比较多2: 格式: select * from t_stu limit 数值1,数值2注意⚠️:数值1:表示起点位置 数值2:表示从起点位置往后的数据长度 例如:select * from t_stu 4, 8 表示:跳过前面4跳记录,然后取8条记录 特例:select * from t_stu 4 表示:取前三条数据3: 分页: limit常用来做分页查询,例如每页固定取出5条记录,那么应该这样? 第1页:limit 0,5 第2页:limit 5,5 第3页:limit 10,5 第4页:limit 15,5 第n页:limit (n-1)*5,5
3:多表查询?
多表查询? 1:格式 select 字段1,字段2....from 表名1,表名2 select * from t_user, t_weibo 2:需求例子? 比如一个用户信息表 和 一个微博内容数据表 关联 01:新建一个t_user表 和 一个 t_weibo表 02:分别在两个表中创建自身的字段,主键不可缺少 03:在t_weibo表中增加一个新的字段,简称外键,如user_id 对应t_user表中的id,这一步见下图 04:开始查询就可以关联下来了 查询: select * from t_user,t_weibo where user_id = t_user.id 别名: 01:表名设置别名 select * from t_user as tu, t_weibo as tw where user_id = tu.id 02:其他设置别名 select count(*) as num from t_user as tu, t_weibo as tw where user_id = tu.id 03:字段设置别名 select tu.id as uid, tw.id as wid from t_user as tu, t_weibo as tw where user_id = uid
01:设置外键的图文结合?
02:外键:
1:如果表A 的主关键字是表B中的字段,则该字段称为表B的外键如上述需求中,t_user表中的id 等于 t_weibo表中的user_id,所以user_id称为t_weibo表中的外键2:作用是: 保持数据一致性、完整性、主要目的是控制存储在外键表中的数据,使两张表形成关联注意⚠️:外键只能引用外表中的列的值或使用空值