SQL更新并添加数据的语句是什么

A表一组数据如下
1,name 李明,age 25,sex 男,local 北京

2,name王红,age 58,sex 女,local 上海

现在B表一组数据如下

1,...李明,..26,..女,..上海

3,..王大红,..44,..女,..昆明

我怎么才能更新“李明”信息时在加入“王大红的”信息。
得到

1,..李明,..26,..女,..上海

2,..王红,..58,..女,..上海

3,..王大红,..44,..女,..昆明
把A表中ID为李明德数据添加更新为B表中ID为李明的数据 并插入B表中的其他数据
谢谢了!

先更新,再添加,没必要非要合成一条sql语句吧

这样的sql,你应该在代码中用逻辑来实现吧,而不是让sql来判断是否有数据并插入

http://www.111cn.net/database/mysql/76509.htm

(3)insert

复制代码
private static int insert(Student student) {
Connection conn = getConn();
int i = 0;
String sql = "insert into students (Name,Sex,Age) values(?,?,?)";
PreparedStatement pstmt;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
pstmt.setString(1, student.getName());
pstmt.setString(2, student.getSex());
pstmt.setString(3, student.getAge());
i = pstmt.executeUpdate();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
复制代码

(4)update

复制代码
private static int update(Student student) {
Connection conn = getConn();
int i = 0;
String sql = "update students set Age='" + student.getAge() + "' where Name='" + student.getName() + "'";
PreparedStatement pstmt;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
i = pstmt.executeUpdate();
System.out.println("resutl: " + i);
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return i;

    分开来的话是这样的,至于合在一起,sorry,我是小白,
把B表中的数据插入到A表中,判断B表中插入的数据A表是否存在,若存在,则更新,若不存在则插入。

1.你可以分开实现:先insert,再update
2.你也可以用一条sql语句实现:insert ...on duplicate

具体你可以参考:
MySQL insert用法详解 http://www.data.5helpyou.com/article421.html

oracle数据库:merge into 具体使用自己百度。
ps:MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。 可以解决你的问题。

先执行更新语句,判断是否添加成功(就是对更新结果判断,你会写吧)
若成功继续执行添加语句(就是前面哪一步先执行,成功在执行这个,不成功,就不执行if(){}else{})