MySQL(2)

DML

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。

添加数据(INSERT)

指定字段添加数据:

insert into 表名 (字段名1, 字段名2)  values (值1, 值2);

全部字段添加数据:

insert into 表名 values (值1, 值2, ...);

批量添加数据(指定字段):

insert into 表名 (字段名1, 字段名2)  values (值1, 值2), (值1, 值2);

批量添加数据(全部字段):

insert into 表名 (字段名1, 字段名2)  values (值1, 值2), (值1, 值2);

注意事项:

1.插入数据时,指定的字段顺序需要与值的顺序是一一对应的。

2字符串和日期型数据应该包含在引号中。

3. 插入的数据大小,应该在字段的规定范围内。

更新数据(UPDATE)

修改数据:

update 表名 set 字段名1=值1,字段名2=值2,…[where 条件];

删除数据(DELETE)

删除数据:

delete from 表名[where 条件 ];

注意事项:

1.DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。

2.DELETE 语句不能删除某一个字段的值(如果要操作,可以使用UPDATE,将该字段的值置为NULL)。

DQL

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

关键字:SELECT

基本查询

查询多个字段:

select  字段1, 字段2, 字段3  from   表名;

查询所有字段(通配符):

select  *  from   表名;

设置别名:

select  字段1  [ as  别名1 ] , 字段2  [ as  别名2 ]   from   表名;

去除重复记录:

select  distinct  字段列表  from   表名;

注意事项:* 号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)。

条件查询

条件查询:

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

分组查询

介绍:将一列数据作为一个整体,进行纵向计算。

语法:select  聚合函数(字段列表)  from   表名 ;

注意事项:

null值不参与所有聚合函数运算。 统计数量可以使用:count(*)   count(字段)   count(常量),推荐使用count(*)。

分组查询:

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

where与having区别:

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

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

注意事项:

1.分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。

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

排序查询

排序查询:

select  字段列表  from   表名   [ where   条件列表 ] [ group by  分组字段 ] order  by  字段1  排序方式1 , 字段2  排序方式2 … ;

ASC:升序(默认值)

DESC:降序

注意事项:

如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

函数:

if(表达式, tvalue, fvalue):当表达式为true时,取值tvalue;当表达式为false时,取值fvalue  

case  expr  when  value1  then  result1 [when  value2  then  value2 ...] [else  result]  end

分页查询

分页查询:

:select  字段列表  from   表名  limit  起始索引, 查询记录数 ;

注意事项:

1.起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。

2.分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。

3.如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

多表设计

基本上分为三种:

一对多(多对一): 在多的一方添加外键,关联另外一方的主键。

多对多: 通过中间表来维护,中间表的两个外键,分别关联另外两张表的主键。

一对一: 任意一方,添加外键,关联另外一方的主键。

物理外键:

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

缺点:

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

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

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

逻辑外键(推荐):

概念:在业务层逻辑中,解决外键关联。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值