除了表B中的客户服务和主管数据,如何从表A中删除数据?

时间:2019-02-13 10:36:34

标签: mysql sql xampp mariadb

这是数据库布局的屏幕截图

enter image description here

2 个答案:

答案 0 :(得分:0)

DELETE t1 
FROM Table1 t1
JOIN Table2 t2 ON t1.ID = t2.ID;  

DELETE Table1

答案 1 :(得分:0)


DELETE FROM table_name
WHERE condition;

在此语句中: __

首先,指定要从中删除数据的表。 其次,使用条件指定在WHERE子句中删除哪些行。如果该行符合条件,它将被删除。 注意,WHERE子句是可选的。如果省略WHERE子句,则DELETE语句将删除表中的所有行。

除了从表中删除数据之外,DELETE语句还返回删除的行数。

要使用单个DELETE语句从多个表中删除数据,请使用DELETE JOIN语句,我们将在下一个教程中介绍。

要删除表中的所有行而不需要知道删除了多少行,应使用TRUNCATE TABLE语句来获得更好的性能。

对于具有外键约束的表,当您从父表中删除行时,将使用ON DELETE CASCADE选项自动删除子表中的行。

MySQL DELETE示例 我们将使用示例数据库中的employees表进行演示。

MySQL删除-员工表

请注意,一旦删除数据,数据就消失了。因此,在下一节中执行DELETE语句之前,应该备份数据库。 假设您要删除办公室号码为4的员工,请使用带有WHERE子句的DELETE语句作为以下查询:


DELETE FROM employees 
WHERE
officeCode = 4;

要从employees表中删除所有行,请使用不带WHERE子句的DELETE语句,如下所示:


DELETE FROM employees;

employees表中的所有行均已删除。

MySQL DELETE和LIMIT子句 如果要限制要删除的行数,请使用LIMIT子句,如下所示:


DELETE FROM table
LIMIT row_count;

请注意,表中行的顺序未指定,因此,当您使用LIMIT子句时,应始终使用ORDER BY子句。


 DELETE FROM table_name
 ORDER BY c1, c2, ...
 LIMIT row_count;

请考虑示例数据库中的以下客户表:

例如,以下语句按客户名称的字母顺序对客户进行排序,并删除前10位客户:


 DELETE FROM customers
 ORDER BY customerName
 LIMIT 10;

类似地,以下DELETE语句选择法国的客户,按信用额度升序对它们进行排序,并删除前5个客户:  __

 DELETE FROM customers
 WHERE country = 'France'
 ORDER BY creditLimit
 LIMIT 5;