SQL: SLETT erklæringen
Denne SQL opplæringen forklarer hvordan du bruker SQL DELETE-setningen med syntaks, eksempler og øvingsoppgaver
Beskrivelse
.
SQL DELETE-setningen er en brukes til å slette en eller flere poster fra en tabell
Syntax
Syntaksen for SQL DELETE-setningen er:.
DELETE FROM tableWHERE vilkår;
Parametere eller argumenter
- table
- Tabellen som du ønsker å slette poster fra.
- forholdene
- De vilkår som må være møttes til postene som skal slettes
Merk: Du trenger ikke å liste felt i SQL DELETE-setningen, siden du sletter hele raden fra bordet
Eksempel -.. Med En forutsetning
La oss se på et eksempel som viser hvordan du bruker SQL DELETE-setningen
For eksempel:.
DELETE FROM suppliersWHERE supplier_name = 'IBM';Dette SQL DELETE eksempel ville slette alle poster fra leverandører bordet der supplier_name er IBM.
Det kan hende du ønsker å sjekke for antall rader som vil bli slettet. Du kan bestemme antall rader som vil bli slettet ved å kjøre følgende SQL SELECT-setningen før du utfører slette
SELECT count (*) FROM suppliersWHERE supplier_name = 'IBM.';
eksempel - med to forhold
La oss se på en SQL DELETE eksempel, der vi bare har to forhold i SQL DELETE-setningen
For eksempel:
DELETE FROM productsWHERE enheter. > = 12 Og category = 'Klær';Dette SQL DELETE eksempel ville slette alle poster fra produkter bord der enheter
er større enn eller lik 12 og kategorien
er klær.
Du kan ønske å sjekke for antall rader som vil bli slettet. Du kan bestemme antall rader som vil bli slettet ved å kjøre følgende SQL SELECT-setningen før du utfører slette
SELECT count (*) FROM productsWHERE enheter >. = 12 Og category = 'Klær';
Eksempel - Bruke SQL EXISTS Clause
Du kan også utføre mer kompliserte sletter
Det kan være lurt å slette poster i en tabell basert på verdiene i en annen tabell.. Siden du ikke kan inneholde mer enn én tabell i SQL FROM-leddet når du utfører en slette, kan du bruke SQL EXISTS klausul
For eksempel:.
DELETE FROM suppliersWHERE EXISTS (SELECT kunder. CUSTOMER_NAME fra kunder hvor customers.customer_id = suppliers.supplier_id OG customers.customer_name = 'IBM');Dette SQL DELETE eksempel ville slette alle postene i leverandører bord hvor det er en rekord i kunder tabellen hvis navn er IBM, og CUSTOMER_ID er den samme som supplier_id.
Hvis du ønsker å finne ut antall rader som skal slettes, kan du kjøre følgende SQL SELECT-setningen før du utfører slettingen.
Velg COUNT (*) FROM suppliersWHERE finnes (SELECT customers.customer_name fra kunder hvor customers.customer_id = suppliers.supplier_id og kunder .customer_name = 'IBM');
Ofte stilte spørsmål
Spørsmål: Hvordan skulle jeg skrive en SQL DELETE-setningen til å slette alle rekorder i tablea hvis data i field1 & field2 IKKE matche dataene i fieldx & fieldz av TableB
Svar: Du kan prøve noe sånt som dette for din SQL DELETE-setningen:
DELETE FROM TableAWHERE IKKE eksisterer (SELECT * FROM TableB WHERE TableA.field1 = TableB.fieldx OG TableA.field2 = TableB.fieldz); Øvelse Øvelse # 1:
Basert på Medarbeidere
tabellen, slette alle ansattes registreringer hvis lønn er større enn $ 40,000:
CREATE TABLE ansatte (employee_number nummer (10) ikke null, employee_name varchar2 (50) ikke null, lønn nummer (6), CONSTRAINT employees_pk PRIMARY KEY (employee_number));
Løsning for Practice Øvelse # 1:
Følgende SQL DELETE-setningen ville slette disse postene fra Medarbeidere
tabell:
DELETE FROM employeesWHERE lønn > 40000; Øvelse Øvelse # 2:
Basert på leverandører
tabellen, slette leverandør registrering hvis supplier_id
er 5001 og supplier_name
er Apple:
CREATE TABLE leverandører (supplier_id nummer (10) ikke null, supplier_name varchar2 (50) ikke null, by varchar2 (50), CONSTRAINT suppliers_pk PRIMARY KEY (supplier_id));
Løsning for Practice Øvelse # 2:
Følgende SQL DELETE-setningen vil slette denne posten fra leverandører
tabell:
DELETE FROM suppliersWHERE supplier_id = 5001AND supplier_name = 'Apple'; Praksis Exercise # 3:
Basert på kundene Hotell og old_customers
tabellen, slette fra kunder
bordet alle poster som finnes i old_customers
tabellen (matcher CUSTOMER_ID
feltet fra kunder
bordet til old_customer_id
feltet i old_customers
tabell).
CREATE TABLE kunder (CUSTOMER_ID nummer (10) ikke null, CUSTOMER_NAME varchar2 (50) ikke null, by varchar2 (50), CONSTRAINT customers_pk PRIMARY KEY (CUSTOMER_ID)); CREATE TABLE old_customers (old_customer_id nummer (10) ikke null, old_customer_name varchar2 (50) ikke null, old_city varchar2 (50), status varchar2 (20), CONSTRAINT old_customers_pk PRIMARY KEY (old_customer_id));
Løsning for Practice Exercise # 3:
Følgende SQL DELETE-setningen ville være løsningen (ved hjelp av SQL EXISTS klausul) som ville slette postene fra kunder
tabellen:
DELETE FROM customersWHERE foreligger (VELG old_customers.old_customer_id Fra old_customers WHERE old_customers.old_customer_id = customers.customer_id); Anmeldelser
Previous:SQL: Data TypesNext Page:SQL Tutorial