我开始学习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个表中的列?有人能帮助我吗?我是初学者。
答案 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)
我不明白为什么你这样做。 我认为你的设计是错误的。
如果您要更新/删除多个表中的内容,请添加一个新表并将每个表与此表相关联。