怎么做网站引流,做网站横幅用什么软件好,学院管理网站建设,外包的优缺点目录
#x1f959;8.1.1 mysql中常用的三种插入数据的语句
1. insert into - 插入数据
2. replace into - 插入替换数据
3. insert ignore - 如果已存在#xff0c;忽略当前新数据
#x1f959;8.1.2 以上三种方法的练习及区分
#x1f959;8.1.3 说明
#x1f959…目录
8.1.1 mysql中常用的三种插入数据的语句
1. insert into - 插入数据
2. replace into - 插入替换数据
3. insert ignore - 如果已存在忽略当前新数据
8.1.2 以上三种方法的练习及区分
8.1.3 说明
8.1.4 牛客练习题 8.1.1 mysql中常用的三种插入数据的语句
1. insert into - 插入数据
数据库会检查主键如果出现重复会报错
# 第一种方式
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);# 第二种方式按照表中所有字段进行插入数据一定要与字段在表中定义的顺序一致
insert into 表名 values(值1,值2,...);
2. replace into - 插入替换数据
需求表中有PrimaryKey或者unique索引如果数据库已经存在数据则用新数据替换如果没有数据效果则和insert into一样 # 第一种方式
replace into 表名(字段名1,字段名2,...) values(值1,值2,...);# 第二种方式按照表中所有字段进行插入数据一定要与字段在表中定义的顺序一致
replace into 表名 values(值1,值2,...);
3. insert ignore - 如果已存在忽略当前新数据
如果已经存在相同的记录则忽略当前新数据 # 第一种方式
insert ignore into 表名(字段名1,字段名2,...) values(值1,值2,...);# 第二种方式按照表中所有字段进行插入数据一定要与字段在表中定义的顺序一致
insert ignore into 表名 values(值1,值2,...); 注对于以上三种方法如果表中没有设置主键或唯一索引则效果都是一样的即直接插入数据。 8.1.2 以上三种方法的练习及区分
drop table if exists actor;
CREATE TABLE actor (actor_id smallint(5) NOT NULL PRIMARY KEY,first_name varchar(45) NOT NULL,last_name varchar(45) NOT NULL,last_update DATETIME NOT NULL,addresses varchar(45));
insert into actor values (3, WD, GUINESS, 2006-02-15 12:34:33,北京); 问题1用以上三种方式对于表actor插入如下数据 actor_id first_name last_name last_update addresses 3 ED CHASE now() 上海’
① 使用insert into语句直接插入
insert into actor values(3,ED,CHASE,now(),上海);
结果由于主键重复报错 ②使用replace into语句插入
replace into actor values(3,ED,CHASE,now(),上海);
插入成功可以看到数据被替换了 ③使用insert ignore句插入
insert ignore actor values(3,ED,CHASE,now(),上海);
结果没有报错数据也没有更改 问题2 同时插入多行以下数据 actor_id first_name last_name last_update addresses 4 ZS Fuel now() 上海’ 5 LS Son now() 南京’
# 可以同时插入多行
insert into actor values (4, ZS, Fuel,now(),上海),(5, LS, Son,now(),南京);
结果 如果VALUES前面的()中没有列出字段那么默认就是为表中的所有字段赋值那么个数与顺序与表结构中字段定义的一致 问题3插入指定字段数据 actor_id first_name last_name last_update 6 PENELOP GUINESS now()
insert into actor(actor_id,first_name,last_name,last_update)
values (6, PENELOP, GUINESS,now());
结果 对于没有列出的字段像自增列就自动赋值像默认值列就自动赋默认值像允许NULL的列就自动赋NULL值但是非空列又没有提供默认值会自动赋值为对应数据类型的默认值例如字符串赋值为空字符串int赋值为0 8.1.3 说明
1、值列表(值1值2......)的顺序、个数与字段列表(字段1字段2......) 中字段的顺序、个数一致 如果个数少了就报Column count doesn’t match value count 如果VALUES前面的()中没有列出字段那么默认就是为表中的所有字段赋值那么个数与顺序与表结构中字段定义的一致
2、关于自增长列、默认值列、允许为NULL列的赋值 如果字段列表列出了字段名那么值列表中就要为其赋值哪怕它是自增长列有默认值列可以为NULL值的列。 InnoDB表的自动增长列可以手动插入合适的值但是插入的值如果是NULL或者0则实际插入的将是自动增长后的值 如果列声明了“默认约束”那么对应的位置可以赋值具体的值也可以使用“DEFAULT”表示使用默认值 如果列允许了NULL值那么可以为对应的字段可以赋值为具体值也可以赋值为NULL
3、VALUES也可以写成VALUE但是VALUES是标准写法
4、如果插入从表的数据要注意查看主表参照字段的值是否存在
5、值的位置可以是常量值、表达式、函数 8.1.4 牛客练习题
SQL229 批量插入数据