insert into的用法1.一条insert into 可以插入多条记录

MySQL insert into select 多个 字段 insert into select多条数据_字段

2.insert into 能判断主键是否冲突,和做出冲突处理

如果主键冲突的话会报错,

还能写成如果冲突就更新的形式

格式为  : insert into 表名 (字段列表) values (字段值列表) on duplicate key update 字段=值,字段=值(列表); 

MySQL insert into select 多个 字段 insert into select多条数据_mysql_02

3.insert into 表名 select 语句

MySQL insert into select 多个 字段 insert into select多条数据_运算符_03

注意,并不是一定要字段数一致,才可以完成操作,只要是字段数量与字段类型一致,就可以完成插入!

select的用法

1.基本查询语句的结构

select [字段表达式列表] [from子句] [where 子句] [group by子句] [having 子句] [order by子句] [limit 子句] 

2.字段表达式字句

如下:在select 后面可以出现表达式;

MySQL insert into select 多个 字段 insert into select多条数据_字段_04

如果为字段名那么字段名是一个变量的概念能参与运算;

MySQL insert into select 多个 字段 insert into select多条数据_表名_05

因此可以利用多种运算符来形成sql中的表达式;

MySQL insert into select 多个 字段 insert into select多条数据_运算符_06

关系运算符:

MySQL insert into select 多个 字段 insert into select多条数据_运算符_07

也可以是一个列表:

MySQL insert into select 多个 字段 insert into select多条数据_运算符_08

每个表达式可以有一个别名,在显示字段列表的时候,显示的别名 

as关键字 as也是可以省略的 但是不建议省略

MySQL insert into select 多个 字段 insert into select多条数据_字段_09

4.from字句

from后面是查询的来源,也就是表名

from后面可以写表的列表用逗号分开;

MySQL insert into select 多个 字段 insert into select多条数据_mysql_10

因为这个时候没有条件约束约束

所以就形成了一个笛卡尔积:也就是A集合和左右的B级和里面的元素分别对应;

所有的两个集合中所有字段都会显示出来(包括重名的)

可以为访问的表名起别名,select后面可以【表名.字段名】的格式来选出不同表中的值例如:

MySQL insert into select 多个 字段 insert into select多条数据_mysql_11

dual问题

dual表示的虚表名

例如下面的语法:

MySQL insert into select 多个 字段 insert into select多条数据_字段_12

规定小这个语法就是为了使语法更加规范;

where 字句,条件查询字句

where 条件表达式

当忽略where,什么都不写的时候表示永远为真;

where 找到每条记录并依次执行条件表达式,按照根据条件结果返回数据;

形成条件表达式基本要素:

数据 (变量) 运算符 ,函数调用;

典型的运算符:

关系运算符: < >  <=  >=   =  !=

like模糊查询 like 模式匹配符‘

可以使用% 和_作为通配符

有like就会有not like

MySQL insert into select 多个 字段 insert into select多条数据_运算符_13

between a  and b  在某某区间上  【闭区间】

MySQL insert into select 多个 字段 insert into select多条数据_运算符_14

in 在某个集合之内

in(集合列表)

not in 不在某个集合中

not in (集合列表)

MySQL insert into select 多个 字段 insert into select多条数据_mysql_15

between 和 in   的区别,between 是区间 in 是集合

关于null的判断

无论什么算术运算 只要有null的参与,就肯定是null

MySQL insert into select 多个 字段 insert into select多条数据_运算符_16

做位运算的时候 null和非空相与为1  其余都为null

MySQL insert into select 多个 字段 insert into select多条数据_表名_17

is null 或者 is not null

MySQL insert into select 多个 字段 insert into select多条数据_mysql_18

snull()和 not isnull()

MySQL insert into select 多个 字段 insert into select多条数据_字段_19