1、首先你要保证你的两个表都有主键,或者有关联字段。
例如:
表A(id,name,date)
id是主键
表B(id,name,date)
id是主键
1)导入B数据数据到A表保留date字段值(确切的说这种情况应该叫利用【B】表数据更新【A】表数据),用下面的sql就可以达到目的:
update
A
set
A.date=(select
B.date
from
B
where
B.id=A.id);
说明:这样做的话要保证A表和B表都有数据并且id字段能够关联上,而且这样修改的数据只是关联上的数据,假设A表中有【id=1】的数据而B表中没有
【id=1】的数据,那么A表中【id=1】的数据就不会被修改。
2)如果A表和B表都没有主键的话,那么寻找一个能够关联两个表数据的字段(这个字段可以从一定意义上作为"主键"区分表中数据),假设是id和name字段联合起来:
update
A
set
A.date=(select
B.date
from
B
where
B.id=A.id
and
B.name=A.name);
说明:在这个更新中更新条目也只限定于能够关联上的数据。
3)如果A表中没有数据只是想把B表中的数据全部插入A表(B表中date字段的值必须被保留的话)
insert
into
A
select
*
from
B;
说明:在这个语句中,把B表中所有的数据不加修改的全部放入了B表,自然也就包含了date字段的值不变。
insert
intp
A
select
1,'张三',date
from
B;
说明:在这个语句中,把B表中的date字段的只保留,id和name字段分别换成了【1】和【张三】(当然是所有数据的id和name字段都换了)
2、综合上面的观点
1)如果表1没有数据:insert
into
表1
select
*
from
表2;
2)如果表1中有数据,并且和表2中的数据完全关联的上的话:
update
表1
set
表1.sj=(select
表2.sj
from
表2
where
表2.字段X=表1.字段X
and....);
3)如果表1中有数据,但是表2中只有一部分能够关联上,目的是关联上的更新,关联不上的插入表1的话:
先:update
表1
set
表1.sj=(select
表2.sj
from
表2
where
表2.字段X=表1.字段X
and....);
后:insert
表1
select
*
from
表2
where
表2.关联字段X
not
in(select
表1.关联字段X
from
表1)
and
表2.关联字段Y
not
in(select
表1.关联字段Y
from
表1)....
---
以上,希望对你有所帮助。
B. 怎么修改mysql数据库表中内容
以windows为例
方法一(假设mysql在d:\mysql目录下)
1、用系统管理员登陆windows系统。
2、停止MySQL的服务。
3、运行cmd进入dos命令窗口,然后进入MySQL的安装目录,比如安装目录是d:\mysql,进入d:\mysql\bin (如果是c:\Program Files\mysql目录,目录包含空格,使用cd "c:\Program Files\mysql"进入mysql目录)
4、跳过权限检查启动MySQL(关键的一步)
d:\mysql\bin>mysqld-nt --skip-grant-tables(会占用一个dos控制台窗口,不能关闭)
5、重新打开一个dos控制台窗口,进入d:\mysql\bin目录,设置root的新密码
d:\mysql\bin>mysqladmin -u root flush-privileges password 【新密码】
(注意:这条命令如果重复执行,可能需要关闭4的窗口并重新运行)
d:\mysql\bin>mysqladmin -u root -p shutdown(或直接关闭第一个dos控制台窗口)
将【新密码】替换为你要用的root的密码,第二个命令可能会提示你输入新密码,重复第一个命令输入的密码。
6、关闭MySQL的控制台窗口,用正常模式启动Mysql
7、你可以用新的密码链接到Mysql了。
方法二
1、停止mysql服务
2、找到mysql数据的data目录,将另外一个mysql的data目录下的mysql目录覆盖过来(如果知道root密码)
(操作之前先备份mysql\data\mysql目录的所有文件)
这种方法缺点:覆盖掉其他的用户,mysql的版本需相同
3、重新启动mysql服务
C. 数据库中如何更改表的字段
增加表的字段alter table 表名 add 字段名 列属性
alter table xxx1 add age int(11)修改表的字段(重命名、修改约束)
alter table xxx1 modify age varchar(11) -- 修改约束
alter table xxx1 change age age1 int(11) -- 字段重命名删除表的字段
alter table xxx1 drop age1
D. 如何使用SQL语句修改表内的数据
修改表中内容
修改用到update语句,语句格式为:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
即 update 员工表 set 部门id=01 where 员工id=0004
SQL联合主键
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3????
字段名N???? )
(4)数据库修改表内容扩展阅读
主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的。 建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。
在数据库提供的GUI环境中建立(以SQL7为例)。输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。
通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。
在建表语句中直接写:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3????
字段名N???? )
E. mysql修改表数据
修改mysql数据库表的方法:使用“ALTER TABLE”语句,可以改变原有表的结构,例如增加字段或删减字段、修改原有字段数据类型、重新命名字段或表、修改表字符集等;语法“ALTER TABLE <表名> [修改选项]”。
修改数据表的前提是数据库中已经存在该表。修改表指的是修改数据库中已经存在的数据表的结构。修改数据表的操作也是数据库管理中必不可少的,就像画素描一样,画多了可以用橡皮擦掉,画少了可以用笔加上。
不了解如何修改数据表,就相当于是我们只要画错了就要扔掉重画,这样就增加了不必要的成本。
在 MySQL 中可以使用ALTER TABLE语句来改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。
F. 在access中什么可以对数据表中原有的数据内容进行编辑修改
access数据库中有下面三种对象可直接编辑修改数据表中的数据:
1) 数据表对象。以数据视图打开某张数据表,然后就可以直接修改表中的数据了;
2) 查询对象。在sql视图里编写动作查询语句查询、或在查询设计视图设定动作查询、又或者选择已经预先定义好的查询,然后点击执行查询命令即可修改数据表的记录了;
3)绑定窗体对象。在已经绑定了某张表的窗体上直接修改记录即可,方法与在数据表中修改记录一样。
另外还可以通过运行VBA代码的方式实现对数据表原有记录的修改。