mysql insert语法(MySQL 关于表复制 insert into 语法的详细介绍)
本文目录
- MySQL 关于表复制 insert into 语法的详细介绍
- mysql 自增如何写insert 语句
- mysql 带参数的insert过程语法错误
- 如何使用mysql语句向表中插入数据
- Mysql中的insert语句哪里错了
MySQL 关于表复制 insert into 语法的详细介绍
web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码。下面我以mysql数据库为例分情况一一说明:
两张表:insertTest和insertTest2,前者中有测试数据
复制代码
代码如下:
create
table
insertTest(id
int(4),name
varchar(12));
insert
into
insertTest
values(100,‘liudehua’);
insert
into
insertTest
values(101,‘zhourunfa’);
insert
into
insertTest
values(102,‘zhouhuajian’);
1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:
INSERT
INTO
目标表
SELECT
*
FROM
来源表;
复制代码
代码如下:
insert
into
insertTest
select
*
from
insertTest2;
2.如果只希望导入指定字段,可以用这种方法:
复制代码
代码如下:
INSERT
INTO
目标表
(字段1,
字段2,
…)
SELECT
字段1,
字段2,
…
FROM
来源表;
注意字段的顺序必须一致。
复制代码
代码如下:
insert
into
insertTest2(id)
select
id
from
insertTest2;
3.如果您需要只导入目标表中不存在的记录,可以使用这种方法:
复制代码
代码如下:
INSERT
INTO
目标表
(字段1,
字段2,
…)
SELECT
字段1,
字段2,
…
FROM
来源表
WHERE
not
exists
(select
*
from
目标表
where
目标表.比较字段
=
来源表.比较字段);
1》.插入多条记录:
复制代码
代码如下:
insert
into
insertTest2
(id,name)
select
id,name
from
insertTest
where
not
exists
(select
*
from
insertTest2
where
insertTest2.id=insertTest.id);
2》.插入一条记录:
复制代码
代码如下:
insert
into
insertTest
(id,
name)
SELECT
100,
‘liudehua’
FROM
dual
WHERE
not
exists
(select
*
from
insertTest
where
insertTest.id
=
100);
使用
dual
作表名,select
语句后面直接跟上要插入的字段的值。
mysql 自增如何写insert 语句
对于自增型的字段,在插入数据的时候,不需要赋值。
但是在写语句的时候,你得注意一下。
假设col1自增,表一共3列,col1,
col2,
col3,
那么语句就是insert
into
table(col2,
col3)
values(’1’,
’2’);
希望能解决你遇到的问题。
mysql 带参数的insert过程语法错误
我有点建议:在过程或者程序中不要使用与参数的名字的局部变量,或者参数不应该与要使用的表字段名字想同。你这里使用@ID说明你想声明局部变量ID,在存储过程和函数中应该使用
DECLARE 变量名 类型 [DEFAULT value]的格式,然后SET 变量名=value。
上面SET@ID=ID改为 DECLARE NEWID INT DEFAULT 0; SET NEWID=ID;以此类推
如何使用mysql语句向表中插入数据
在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 ’’);
最简单的插入方法
代码如下
复制代码
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子句。
Mysql中的insert语句哪里错了
insert into table values(“,,“```)按照你的字段写数据就可以
insert TABLE (栏位1,栏位2...)VALUES (’’,’’,...)
这种插入的格式的意思是,TABLE()中有写了多少个字段名,VALUES()中对应写入多少数据就可以了,例:TABLE(id,name) VALUES(1,smile)
你把两种都搞混了~
更多文章:
excel中index函数的用法(Excel中INDEX函数怎么使用)
2024年6月24日 10:25
router是什么意思(vue的$route和$router有什么区别和关系呢)
2024年6月27日 17:14
jdbc的作用(在java中JDBC的主要作用是什么和他的组成有哪些)
2024年7月4日 06:29
android系统签名怎么查看(Android怎样获取应用的签名信息)
2024年5月26日 13:05
script hook rdr2(请问谁知道哪里有远程控制软件VNC的源码)
2024年7月16日 06:04
正则匹配两个汉字(正则表达式在一段文本中匹配到包含的两个汉字的某一行)
2024年7月7日 18:50
php判断数据库是否连接成功(php pdo连接mysql如何判断数据库是否连接成功)
2024年7月8日 13:31
cluster的同义词(有人能不能告诉我 crowd , cluster和throng 这三个单词的区别啊)
2024年7月29日 15:10
php学校新闻管理系统代码(用php制作新闻页面的后台管理系统怎么设计.急用!!!)
2024年8月23日 16:50