MySQL3-DML

一、数据备份

image-20200722103000407

>指向数据的接收方

image-20200722103356461

二、DML(date manipulation language)

2.1添加数据

1.Insert into 表名(列名1,列名2…)values(列值1,列值2…)

image-20200722105744864

image-20200722105525043

出了错会占用索引值1356

2.Insert into 表名 values(null,‘赵八’,default,‘xx’,1200…)

插入所有列的数据,必须与所有列一一匹配,没有的要去站位,'xx’没有数据可以替换为null

2.2删除

1.delete from 表名(索引不会重置,存在索引记录)

会删除表中所有记录

image-20200722114711772

delete from 表名 where 条件:满足条件的一条记录执行删除操作

2.truncate 表名(索引会重置)

清空表中所有的记录,重置整个表结构,索引会重新开始

2.3修改

update 表名 set 字段名1 = 新的值,字段名2 = 新的值(改变所有的)

新的值可以在原来的基础上计算(±*/%)

image-20200722115550215

改变符合条件的某一条记录

image-20200722115332550

2.4 单表查询(重点)

2.4.1 普通查询

select 常量值:则有原样输出的结果,以result表的形式呈现

select * from 表名: 查新表中所有列的数据

select 列名1,列名2…from 表名:可以查询指定列名

image-20200722120301561

select 列名1(as可省略)别名1,列名2(as可省略)别名2…from 表名:可以查询指定列名,且result按照别名来显示,如下:(公司名,地址)

image-20200722120524329

2.4.2 条件查询

1.比较运算符:>,<,>=,<=,=(用在where中表示条件判断),!=(<>)

image-20200722120808728

select * from 表名 where 条件

image-20200722121116890

日期也可以用大于小于来判断

2.逻辑运算符

and

image-20200722121309403

or

image-20200722121749165可以用()来提高优先级

not(取反)

image-20200722121858655

一共四条,对上面取反变成三条

where所有语法也可以用在delete和update中

字段 between min and max 其效果等同于 字段>=min and 字段 <= max

image-20200722144135166

in运算符

in(): 在in范围中进行查询(相当于是一个数组,集合)

not in():不在范围中

is null运算符

is null/is not null(isnull(字段名)/!isnull(字段名))

like模糊查询

​ 通配符:%;_;[abc][!abc]

image-20200722145516024

%:模糊的是任意字符0个或多个

_:模糊一个任意字符

[abc][!abc]:暂时不去用,mysql没效果

2.4.3去重查询

distinct(列名)

image-20200722154753505

2.4.4聚合函数

把数据聚集在一起做处理

image-20200722155057282

sum()avg()min()max()count()

image-20200722154805986

image-20200722155032176

sum(列名)求和 对数据的某一列进行求和

avg()min()max()同理

2.4.5排序

order by 字段名 (asc):以某个字段进行默认升序排列

order by 字段名 (desc):降序

加第二第三等等的排序条件:(salary相同再比较id…)

image-20200722160346223

image-20200722160503802

一般是对时间和数字进行排序

2.4.6分组

group by (列名):使用了group by,select后面就只能用分组字段(一般是分组的列名)或者聚合函数

分组后的数据字段是唯一的,分组后是一堆相同字段的数据,可聚合处理

image-20200722161520005

可以加第二第三等等的分组条件,相当于几个分组条件同时判断来分组

image-20200723190420006

having:对分组后的结果进行过滤,后面只能用聚合函数和group字段

image-20200722162306974

where用在group by之前,先于group by执行

image-20200722162830817

2.4.7分页

limit 起始索引值 ,每页的个数

起始索引值=(当前页-1)*每页的个数

limit使用时通常放在最后:

image-20200722163854580

//拓展:sql server中的分页,用top关键字

不在前10条记录中的前10条记录,就是每页10条记录

select top(10)*from 表名 where id not in (select top(10) id from 表名)

*(当前页-1)每页的个数:10

2.5 多表查询(重点)

自然连接,内连接(隐式链接,显示连接),外连接(左外连接,右外连接),全连接(左右外连接)

多个表之间连接查询(至少是两个表,是有主外键关联关系的表)

2.5.1自然连接(必须保证两个表列名一致)

image-20200723102311073

2.5.2内连接

1.隐式链接(笛卡尔积)

进行所有链接,在进行查询,效率较低

image-20200723102539060

结果为相乘的关系

select * from company (as) c,department (as) d where c.companyId = d.companyId

2.显示连接 inner(可以省略) join

先判断on的条件,在进行链接查询,效率比较高

image-20200723103522210

多个表:join顺序从左至右

image-20200723103853783

再加where条件

image-20200723103924561

image-20200723120432623

20题

image-20200723151218497

3.外连接(左外连接和右外连接)

连接顺序为从左到右,但谁为主表要看left和right

left (outer) join

image-20200723154027331

right (outer) join

image-20200723154317694

全外连接(默认union去重连接)

image-20200723154601425

union all不去重

image-20200723154742125

2.6子查询

将一个查询结果作为另一个查询条件

image-20200723182232097

image-20200723182326648

image-20200723182344417

最外层用别名.列名来进行select

优先级:

from选中表格(join)>on>where>group by>聚合处理>having>select选中字段>order by>limit

三、MySQL常用函数

3.1数学函数

image-20200723182438113

image-20200723182454530

3.2聚合函数

image-20200723182537857

3.2字符串函数

注意:MySQL中一个汉字三个字节;length()返回的是汉字的字节数,要*3,而char_length()就是返回的汉字个数

image-20200723182613148

image-20200723182651673

image-20200723182707299

image-20200723174438869

3.3日期函数(用的比较多)

image-20200723182729556

image-20200723182741947

image-20200723174641593

image-20200723174826314

substract减去;interval时间间隔

image-20200723175041859

这个月过生日的所有员工

image-20200723175515528

  • 作业:41题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值