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 '')
最简单的插入方法
代码如下
复制代码
Mysql>insert 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语句的配合中获益。
从其它表中录入数据,例如:
代码如下
复制代码
mysql>insert into tbl_name1(col1,col2) select col3,col4 from tbl_name2
你也可以略去目的表的列列表,如果你每一列都有数据录入。
代码如下
复制代码
mysql>insert into tbl_name1 select col3,col4 from tbl_name2
INSERT INTO ... SELECT语句满足下列条件:
查询不能包含一个ORDER BY子句。
迭代时动态组装SQL语句去执行就可以:
$data = [['name' => 'zs', 'addr' => 'china'],
['name' => 'ls', 'addr' => 'china'],
['name' => 'ww', 'addr' => 'china'],
]
foreach ($data as $value) {
$name = $value['name']
$addr = $value['addr']
$sql = "INSERT INTO tablename (name, addr) VALUES ('$name', '$addr')"
$message = add($sql) ? '插入成功' : '插入失败'
echo $message
}
function add ($sql) {
mysql_query($sql)
return mysql_affected_rows()
}
phpmysql
insert
into
结合详解
ySQL
INSERT
INTO语句在实际应用中是经常使用到的语句,所以对其相关的内容还是多多掌握为好。
向数据库表插入数据
INSERT
INTO
语句用于向数据库表添加新记录。
语法
INSERT
INTO
table_name
VALUES
(value1,
value2,....)
您还可以规定希望在其中插入数据的列:
INSERT
INTO
table_name
(column1,
column2,...)
VALUES
(value1,
value2,....)
注释:SQL
语句对大小写不敏感。INSERT
INTO
与
insert
into
相同。
1.insert语句一次可以插入多组值,每组值用一对圆括号括起来,用逗号分隔,如下:
insert
into
`news`(title,body,time)
values('title
1','body
1',now()),('title
2','body
2',now())
2.Insert
Select
语句,将查询的结果插入到新的表,顾名思义,它由一条insert语句和一条select语句组成
insert
into
news_one(id,title,body,time)
select
id,title,body,time
from
news_two
要注意的是,这两个表的结构要完全相同,列名可以不同。
在php中使用方法
下面是
"insert.php"
页面的代码:
<?php
$con
=
mysql_connect("localhost","peter","abc123")
if
(!$con)
{
die('Could
not
connect:
'
.
mysql_error())
}
mysql_select_db("my_db",
$con)
$sql="INSERT
INTO
Persons
(FirstName,
LastName,
Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')"
if
(!mysql_query($sql,$con))
{
die('Error:
'
.
mysql_error())
}
echo
"1
record
added"
mysql_close($con)
?>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)