day08数据库开发-MySQL 7.29

day08数据库开发-MySQL  7.29

1.DSL:数据查询语言,用来查询数据库中表的记录

基本查询

select

from

字段列表

表名列表

1.查询多个字段:select  字段1, 字段2, 字段3  from   表名;

2.查询所有字段(*为通配符):select  *  from   表名;

3.设置别名:select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ]  from  表名;(as可不写)

4.去除重复记录:select  distinct  字段列表  from   表名;

条件查询(where)

where

条件列表

select  字段列表  from   表名   where   条件列表 ;

比较运算符

>

>=

<

<=

=

<> 或 !=

between..and..

In(...) 多选一

like  _ %

is null

逻辑运算符

and  或  &&

or  或  ||

not 或 !

分组查询(group by)

group by

having

分组字段列表

分组后条件列表

select  聚合函数(字段列表)  from 表名

聚合函数

count

max

min

avg

sum

  1. null不参与集合函数运算
  2. 统计数量可用:count(*)  count(字段)  count(1),推荐使用count(*)。

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

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

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

3.执行顺序: where  >  聚合函数 > having 。

If(条件,‘true的 值’,‘false的值’)

case when 字段名=值1 then ‘值1’ when 字段名=值2 then ‘值2’....end

case 字段名  when 值1 then ‘值1’ when 值2 then ‘值2’....end

排序查询(order by)

order by

排序字段列表

select  字段列表  from  表名where 条件列表order by 字段1排序方式1 , 字段2 排序方式2

排列方式:asc 升序 默认值 可不写,  desc  降序

分页查询(limit)

limit

分页参数

select  字段列表  from   表名  limit  起始索引, 每页数量 ;

1.起始索引从0开始, =(查询页数-1)*每页数量

2.第一页可以不写起始索引

2.多表设计

一对多

实现:在数据库表中多的一方,添加字段,来关联一的一方的主键。

建立外键关联,以保证数据的一致性和完整性的

创建表时指定

create table 表名(

字段名  数据类型,

...

[constraint]  [外键名称] foreign  key (外键字段名) references 主表 (主表列名) );

建完表后,添加外键

alter table  表名  add constraint  外键名称  foreign key (外键字段名) references  主表(主表列名);

物理外键:使用 foreign key 定义外键关联另外一张表。

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

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

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

逻辑外键:在业务层逻辑中,解决外键关联。(不定义外键,管理员自己去处理

通过逻辑外键,就可以很方便的解决上述问题。

一对一

在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)

多对多

建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

primary key(表1主键,表2主键)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值