DQL、多表结构

1.什么是DQL?

DQL英文称为:Data Query Language(数据查询语言)用来查询数据库中表的记录。


2、查询语句的完整格式是怎样的?

查询多字段: select 字段1,字段2,字段3  form 表名;

查询所以字段:select * form 表名;

设置别名:select 字段1[ as 别名1 ] ,字段2 [ as 别名2 ] (as也可以省略直接在字段后面写别名) form 表名;

去除重复记录:select distinct 字段列表 form 表名;


3、条件查询的关键字是什么,常见的运算符有哪些?

条件查询的关键字是where;

常见比较运算符:

比较运算符功能
>大于
<小于
=等于
>=大于等于
<=小于等于
<>或!=不等于
between...and...在某个范围之间(含最小值、最大值)
in(...)在in之后列表的值,多选
like 占位符模糊匹配( _ 匹配单个字符,%匹配多个字符)
is null是空

常见逻辑运算符:

逻辑运算符功能
and 或 &&并且(多个条件同时成立)
or 或 ||或者(多个条件任意一个成立)
not 或 !不等于
4、如何实现模糊查询?

select * form 表名 like ( '_' 匹配单个字符,'%' 匹配多个字符);


5、怎么实现排序查询?

select * form 表名 order by ( asc 升序  默认值 )或(desc  降序);


6、怎么实现分页查询?

select * form 表名 limit 起始索引,查询记录数;


7、分页查询中怎么计算某一页开始索引?

计算某一页开始索引公式:(页码-1)*每页显示记录数


8、怎么实现分组查询,分组查询的目的是什么?

select 字段列表 form 表名[ where 条件 ] groud by [ having 分组后过滤条件 ];

where 和 having 的区别:

1.执行时机不同:where 是分组前进行过滤,不满足where条件,不参加分组;having是分组之后对结果进行过滤的

2.判断条件不同:where 不能对聚合函数进行判断,having可以

分组查询的目的是:对数据进行分类统计


9、聚合函数有哪些?
函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和
10、怎么实现给查询的值设定新的数据:比例 1变成男,2变成女

if(条件表达式1,为 true 的值 ,为 false 的值)

select if( gender = 1 , '男' ,' 女 '   ) form 表名 groud by gender ;


11、表和表之间有哪些关系?

1.一对多

2.一对一

3.多对多


12、不同关系怎么设计外键

1. 一对多:在数据库表多的一方(从表 或者叫 子表 ),添加字段,来关联主表(父表)的主键;

2. 一对一:在任意一方加入外键,关联另一方的主键,并且设置外键为唯一的(unique)

3. 多对多:建立一个中间表,中间表至少包含两个外键,分别关联两方的主键


13、什么是物理外键,什么是逻辑外键

物理外键:使用 foreigen key (关键词)定义外键关联另一表;

缺点:

1.影响增、删、改的效率(需要检查外键关系);

2.仅用于单节点数据库,不适合用于分布式、集群场景;

3.容易引发数据库死锁问题,消耗性能。

逻辑外键:在业务逻辑中,解决外键关联(需要程序员自己清楚)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值