注释: 文中所有**代表查询的条件;文中所有#代表表格名称;#1代表表1名称;#2代表表2名称





mysql批量更新利弊 mysql批量更新数据 多个条件_mysql 批量 update 多个条件


数据库的基础认识

1.建库

1.连接数据库(mysql- uroot -p 密码)

2.查看数据库(show databases;)

3.windows必须指明编码数据库


create


4.删库:drop database 数据库名称;

2.mysql的数据类型

1.整数类型:

2.浮点数、位类型:

3.时间、日期类型:

4.字符串类型:

3.表的基本操作

1).建表(表名称:##)

1.基于数据库建表,use 数据库名称;

2.查看表:show tables;

3.以表格形式查看:desc ##;

4.删表:drop table 表名;

5.列设置


1


6.克隆表格:


create


2).改表


1


Mysql的使用

单表使用(基础)

数据插入(select into ** values #;)



数据更新(update # set ** ;)



数据查询(select ** from # where;)

基础查询

1).全部查询


select


2).去重查询


select


3).运算查询


1


条件查询

1).单条件查询 :直接按照单一条件查询,上述既是

2).多条件查询

1.where精准查询

基础查询(and/or /!=) 拓展(not and/ not or/ =)


select


between and 格式 拓展(not between and)


select


is null 格式 拓展(is not null)


select


带 in 关键字查询


select


2.like模糊查询

占位符(_)

%模糊查询(like %)


select


3.分组查询(group by)


select


4.排序查询(order by)


select


5.聚合函数查询(sum/avg/count/max/min)

不能放在where语句之后(参见where子句和having子句的异同)

where子句和having子句的异同

1.where和having子句具体用法差不多

2.having子句后面的条件必须在前面出现过,where不能在分组之后使用,必须使用原始数据;所以导致where后面不能使用聚合类函数

3.Where子句在聚合前先筛选数据,是从磁盘读入内存中一条条判断的;Having 子句筛选的是分组后的数据,是将所有数据读入内存后,在分组统计之前,根据having的条件再将不符合的条件删除;《准确的说就是where比较霸道,必须用原始数据,不能对后面新的数据进行分组判断的操作

多表使用(常用)

1 为了减少冗余,通过相应id(是唯一标识,另一个表的主键最合适)进行相应的连接,也是关系型数据库的根本; (2) 关联方式



2. 查询



子查询(灵活)

1 一次查询无法得到结果,笛卡尔积太大占用内存;

2 方式:select from # where sal=(select max()from #); (3) 复杂方式



综上所述,统计万能公式如下:


select


另,笔者能力有限,若文章出现错误,也拜托大佬在评论区指出,马上进行更改,不要因为笔者能力问题造成影响。

码字不易,谢谢支持!