SQL删除和更新

时间:2009-10-24 12:55:06

标签: sql

我开始学习SQL,但我遇到了一些问题。

我有一个包含4个表的数据库。

所有4个表都有列ID。

这样的事情:

Table name................Column #1..................Column #2
  Table1....................  ID......................Data1..
  Table2......................ID......................Data2..
  Table3......................ID......................Data3..
  Table4......................ID......................Data4..

我按ID选择。

SELECT Data1, Data2, Data3, Data4 FROM TABLE1
INNER JOIN TABLE2 ON TABLE1.ID = TABLE2.ID
INNER JOIN TABLE3 ON TABLE1.ID = TABLE3.ID
INNER JOIN TABLE4 ON TABLE1.ID = TABLE4.ID
WHERE TABLE.ID=' X '

如何通过ID删除和更新此4个表中的列?有人能帮助我吗?我是初学者。

3 个答案:

答案 0 :(得分:7)

在标准SQL中,您可以一次从多个表中进行SELECT,但不能一次删除或更新多个表。因此,您将使用如下命令:

UPDATE Table1 SET Column = NewData WHERE。 。

从Table1删除WHERE。 。

例外情况是,如果表“正式”相互关联,通过使用PRIMARY和FOREIGN KEYS,您可以将链接列的UPDATE和行的DELETE“流”到链接表中。为此,在声明密钥时使用SQL的CASCADE选项。

某些供应商提供了进一步的非标准扩展,允许您从多个表中更新或删除,但对于那些您必须指定您正在使用的数据库。

答案 1 :(得分:2)

更新列值

UPDATE table1
SET data1 = myvalue
WHERE table1.id = ' X '

UPDATE table2
SET data2 = myvalue
WHERE table1.id = ' X '

UPDATE table3
SET data3 = myvalue
WHERE table1.id = ' X '

UPDATE table4
SET data4 = myvalue
WHERE table1.id = ' X '

删除符合特定条件的行

DELETE FROM table1
WHERE data1 = myvalue

DELETE FROM table2
WHERE data2 = myvalue

DELETE FROM table3
WHERE data3 = myvalue

DELETE FROM table4
WHERE data4 = myvalue

从表中删除列

ALTER TABLE table1
DROP COLUMN data1


ALTER TABLE table2
DROP COLUMN data2


ALTER TABLE table3
DROP COLUMN data3


ALTER TABLE table4
DROP COLUMN data4

答案 2 :(得分:0)

我不明白为什么你这样做。 我认为你的设计是错误的。

如果您要更新/删除多个表中的内容,请添加一个新表并将每个表与此表相关联。