Jak MySQL usuwa z instrukcjami DELEED

Jak MySQL usuwa z instrukcjami DELEED
W tym samouczku omówiono sposób korzystania z klauzuli MySQL Usuń w instrukcji łączenia, aby usunąć dane z wielu tabel, które spełniają określony warunek.

Celem tego samouczka jest pomoc w zrozumieniu, jak korzystać z klauzuli usuwania wraz z klauzulą ​​łączenia, aby usunąć dane. Jeśli jesteś nowy w MySQL, rozważ nasze inne samouczki, takie jak samouczki dołączające i upuszczone.

Zacznijmy.

Podstawowe użycie: Usuń z wewnętrznym połączeniem

Pierwsza metoda usunięcia, którą omówimy, to sposób korzystania z klauzuli MySQL Usuń wewnątrz instrukcji łączenia wewnętrznego, aby usunąć dane z wierszy pasujących do innej tabeli.

Ogólna składnia do wdrożenia takiego zapytania pokazano poniżej:

Usuń TBL1, TBL2 z TBL1 WEWNIJ WYŁĄCZ TBL2 na TBL1.col = tbl2.col gdzie [warunek];

Pozwól, że zapewnię cię, że jest to łatwiejsze niż wygląda. Pozwól mi wyjaśnić:

Zaczynamy od określenia tabel, z których chcemy usunąć dane. Tabele są określone między usuwaniem a klauzulą.

W drugiej części określamy warunek pasujących wierszy w tabelach ustawionych. Na przykład:

TBL1.col = tbl2.przełęcz

Na koniec ustawiamy warunki, które określają wiersze w określonych tabelach, które mają zostać usunięte.

Przykładowy przypadek użycia

Pozwól mi użyć przykładu, aby zilustrować, w jaki sposób możemy użyć klauzuli usuwania i łączenia wewnętrznego, aby usunąć wiersze z wielu tabel. Rozważ pytania poniżej:

Stwórz społeczeństwo schematu;
Używać społeczeństwa;
Tabela upuszcza, jeśli istnieje użytkownicy, kontakty;
Utwórz użytkowników tabeli (
User_id Int klucz podstawowy auto_increment,
First_name varchar (100),
Last_name varchar (100),
Stan Varchar (50)
);
Utwórz kontakty z tabeli (
home_id int podstawowy klucz,
Tel Varchar (50),
Adres Varchar (255)
);
Wstaw do użytkowników (First_name, Last_name, State) Wartości („John”, „Muller”, „Colorado”), („Mary”, „Jane”, „Kalifornia”), („Peter”, „Quill”, „Nowy York ”);
Wstaw wartości kontaktów (Tel, Adres) („303-555-0156”, „281 Denver, Colorado”), („661-555-0134”, „302 Drive, Bakersfield”), („516-555-0148 „,„ 626 EST MEADOW, NYC ”);

Po uzyskaniu takich danych możemy zilustrować, jak używać Delete z wewnętrznym połączeniem, jak pokazano w pytaniu poniżej:

Usuń społeczeństwo.użytkownicy, społeczeństwo.kontakty ze społeczeństwa.Użytkownicy Wewnętrzne łączą kontakty na user_id = home_id, gdzie user_id = 3;

Powyższe zapytanie wyświetli wynik, jak pokazano poniżej:

Dwa rzędy dotknięte w 7 ms, co wskazuje, że dwa rzędy zostały usunięte.

Usuń z lewym dołączeniem

Drugą metodą Delete, którą omówimy, jest użycie lewego połączenia. Ogólna składnia dla tego typu usuwania jest jak pokazano poniżej:

Usuń tbl1 z tbl1 lewy dołącz TBL2 na tbl1.col = tbl2.Col, gdzie tble.Col jest NULL;

W celu usunięcia z lewicowym połączeniem określamy tylko jedno tabelę podobną do wewnętrznego połączenia, w którym określiliśmy dwie tabele.

Rozważ całe zapytanie poniżej:

Używać społeczeństwa;
Tabela upuszcza, jeśli istnieje użytkownicy, kontakty;
Utwórz użytkowników tabeli (
User_id Int klucz podstawowy auto_increment,
First_name varchar (100),
Last_name varchar (100),
Stan Varchar (50)
);
Utwórz kontakty z tabeli (
home_id int podstawowy klucz,
Tel Varchar (50),
Adres Varchar (255)
);
Wstaw do użytkowników (First_name, Last_name, State) Wartości („John”, „Muller”, „Colorado”), („Mary”, „Jane”, „Kalifornia”), („Peter”, „Quill”, „Nowy York "), („ Mystic ”,„ Arts ”,„ Południowa Karolina ”);
Wstaw wartości kontaktów (Tel, Adres) („303-555-0156”, „281 Denver, Colorado”), („661-555-0134”, „302 Drive, Bakersfield”), („516-555-0148 „,„ 626 EST MEADOW NYC ”), („ 843-555-0105 ”, NULL);
Usuń użytkowników od użytkowników pozostawionych w kontaktach łączących na user_id = home_id, gdzie adres jest null;
Wybierz * od użytkowników;

Po wykonaniu powyższego zapytania użytkownik, którego adres jest zerowy po usunięciu połączenia, a wynik wyjściowy jest pokazany poniżej:

Wniosek

W tym samouczku omówiliśmy, jak korzystać z MySQL Usuń z instrukcjami łączenia, aby usunąć dane z wielu tabel.