这里以前面新建的 teacher 表为例, teacher 表的字段为 name、age、id_number,向教师表新增一条数据命令如下:
我们提供的服务有:成都网站制作、成都做网站、微信公众号开发、网站优化、网站认证、新田ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的新田网站制作公司
执行下上面的这条命令,执行结果如下图:
其中 “INSERT INTO” 关键字表示这条命令是插入数据命令,“teacher” 是要插入数据的目标数据表名称,“name,age,id_number” 是表的字段名,“VALUES” 后面跟的是字段对应的值,值的顺序和前面字段的顺序一致。
上面介绍了如何向数据表插入一条数据,这里需要查看数据表已有的所有数据:
执行结果如下图:
“SELECT” 关键字表示这条命令是查询相关命令,"*" 则代表要查询出表中所有的数据。“FROM teacher” 则表明要查询的是哪一个数据表。
关于 SELECT 查询语句还有很多中使用场景,比如我们要查询出表中 age 字段的值大于 20 岁的数据。关于 SELECT 的其他使用我们会在后面的小节详细讲解。
新增多条数据命令:
执行结果如下图:
本小节介绍了如图向数据表插入一条数据、查询表所有数据、向表插入多条数据。前面介绍数据表的设计规范时介绍了数据表的第二设计范式要求所有数据表需要有业务主键。需要注意的是本节中 teacher 表的业务主键为自增 id,因此插入数据的时候不需要插入 id 字段的值。id 字段的默认是从 1 开始自增的,也可以指定自增起始值,如下建表语句,id自增值是从100开始的:
其中 “AUTO_INCREMENT=100” 表示自增主键 id 的值默认从 100 开始自增加的。
本节介绍数据的插入,复制数据到另一张表的Sql语法,主要语法有: insert into,insert into select,select into from 等用法,下面将一一为大家详细说明:
以下面两张表进行sql脚本说明
insert into有两种语法,分别如下:
语法1:INSERT INTO table_name VALUES (value1,value2,value3,...); --这种形式无需指定要插入数据的列名,只需提供被插入的值即可:
语法2:INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...); --这种形式需指定要插入数据的列名,插入的值需要和列名一一对应:
eg:insert into customer values('1006','14006','王欣欣','27','深圳市'); --向表customer插入一条数据
eg:insert into customer values('1007','14007','孟一凡','27',''); --向表customer插入一条数据,最后一个值不填表示对应的值为空,非必填项可以不用插入值
eg:insert into customer (cus_id,cus_no,cus_name,cus_age,cus_adds) values('1008','14008','孔凡','26','广州市'); --向表customer插入一条数据,插入的值与列名一一对应
详解:insert into select --表示从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
语法1:INSERT INTO table_name2 SELECT * FROM table_name1; --表示将表table_name1中复制所有列的数据插入到已存在的表table_name2中。被插入数据的表为table_name2,切记不要记混了。
eg:insert into customer select * from asett --将表asett中所有列的数据插入到表customer中
语法2:INSERT INTO table_name2 (column_name(s)) SELECT column_name(s) FROM table_name1; --指定需要复制的列,只复制制定的列插入到另一个已存在的表table_name2中:
eg:insert into customer (cus_id,cus_no) select ast_id,ast_no from asett --将表asett中列ast_id和ast_no的数据插入到表customer对应的cus_id,cus_no列中
详解:从一个表复制数据,然后把数据插入到另一个新表中。
语法1:SELECT * INTO newtable [IN externaldb] FROM table1; --复制所有的列插入到新表中:
eg:select * into customer from asett --将asett表中数据插入到customer中,被插入的 表customer不存在
eg:select * into customer from asett where ast_id = '1008' --只复制表asett中ast_id=1008的数据插入到customer中,被插入的 表customer不存在
语法2:SELECT column_name(s) INTO newtable [IN externaldb] FROM table1; --只复制指定的列插入到新表中:
eg:select ast_id,ast_no into customer from asett --将asett表中列ast_id,ast_no数据插入到customer中,被插入的 表customer不存在
区别1:insert into customer select * from asett where ast_id='1009' --插入一行,要求表customer 必须存在
区别2:select * into customer from asett where ast_id='1009' --也是插入一行,要求表customer 不存在
区别3:select into from :将查询出来的数据复制到一张新表中保存,表结构与查询结构一致。
区别4:insert into select :为已经存在的表批量添加新数据。
在mysql中要向数据库中保存数据我们最常用的一种方法就是直接使用Insert into语句来实现了,下面我来给大家详细介绍Insert into语句用法
INSERT用于向一个已有的表中插入新行。INSERT…VALUES语句根据明确指定的值插入行。让我们先来看一下insert语句标准的定义,放在[]内的都是可以省略的:
语法
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
实例
create table links (name varchar(255) not null default '', address varchar(255) not null default '');
最简单的插入方法
代码如下
复制代码
Mysqlinsert into worker values(‘tom’,’tom@yahoo.com’),(‘paul’,’paul@yahoo.com’);
或
insert into links values('jerichen','gdsz');
批量保存数据
假如我们想一次性的往数据库里插入多条数据咋办?一定要写多条语句吗?肯定是不会的,因为MySQL设计的还是很人性的。其提供insert语句的
一种非标准格式,即,values(字段值1,字段值2,字段值3),(另一个字段1的值,另一个字段2的值,另一个字段3的值);
# 同时插入两条数据,看语法说明,那个into被我省略了
代码如下
复制代码
insert links (name,url) values('jerichen','gdsz'),('alone','gdgz');
使用INSERT…SELECT语句插入从其他表选择的行
当我们在上一节学习创建表时,知道可以使用select从其它表来直接创建表,甚至可以同时复制数据记录。如果你已经拥有了一个表,你同样可以从select语句的配合中获益。
从其它表中录入数据,例如:
代码如下
复制代码
mysqlinsert into tbl_name1(col1,col2) select col3,col4 from tbl_name2;
你也可以略去目的表的列列表,如果你每一列都有数据录入。
代码如下
复制代码
mysqlinsert into tbl_name1 select col3,col4 from tbl_name2;
INSERT INTO ... SELECT语句满足下列条件:
查询不能包含一个ORDER BY子句。
如何在MYSQL插数据ID自增的方法。
如下参考:
1.在添加字段之前,第一个应该首先检查当前tb1表的结构,如下图所示。
2.实例字段列添加到表,如下所示。
3.再次看表结构和比较之前和之后的情况添加字段,如下图所示。
4.最后,插入新的数据行看到的样子,最后添加自动增长的字段,如下所示。
注意事项:
MySQL使用的SQL语言是访问数据库最常用的标准语言。MySQL软件采用双重许可政策,分为社区版,商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特性,一般中小网站开发选择MySQL作为数据库。