Risorse per webmaster

L A   C O M U N I T À   V I R T U A L E   I T A L I A N A   P E R   W E B   M A S T E R S

 
 
      Tecnologie
      HTML
      CSS
      DHTML
      FLASH
      ASP
      PHP
      JSP
      PERL
      XML
      SMIL
      WIRELESS
      PALMARI
      APACHE
      MYSQL
      PICOSQL
 
      Grafica
 
      Servizi
 
      Raccolte
 
      Recensioni
 
      Analisi
 
      Disclaimer

   Per tutti
 
  .: Magazine
  .: Editor
  .: Appunti
  .: Gratis
  .: Scripts
  .: Components
 
   Home page

Partner
Comunicati stampa
Proposte di viaggio
Prenotazione hotel
Prenota vacanze
Accessori palmari
Cerca alberghi
Guide turistiche

versione stampabile Mostra una versione adatta per la stampa  

Livello di difficoltà:Livello di difficoltà: medio  
MySQL è il database open source per eccellenza. Cresciuto molto in questi anni, è diventato il DBMS più utilizzato dalla comunità open source e apprezzato anche da chi scrive pagine con tecnologie diverse da PHP e su server diversi da Linux.
 

Eliminare una riga o più

MySQL
Per eliminare una o più righe da una tabella MySQL, si utilizza il termine DELETE. La struttura, è identica alla proprietà SELECT, già analizzata nella puntata dedicata a SQL di base.

Eliminare una sola riga
La sintassi è:

DELETE nomeCampo FROM nomeTabella WHERE nomeCampo = 'valore' LIMIT 1;

Una buona abitudine da prendere quando si vuole eliminare un determinato numero di righe (anche una sola) è quella di usare la proprietà LIMIT. Per capire perché, vediamo l'esempio successivo:

DELETE nome FROM clienti WHERE nome = 'WebMilano.NET';

In questo caso, ammettiamo di voler eliminare una società dall'elenco dei clienti che si chiami WebMilano.NET. Se però ci fossero più campi "nome" con tale valore, la query precedente li eliminerebbe tutti, con il rischio di ritrovarsi con una tabella inutilizzabile. Per evitare ciò, è sempre bene aggiungere LIMIT 1, così, in caso di poca specificità della query, perderemmo comunque un solo valore:

DELETE nome FROM clienti WHERE nome = 'WebMilano.NET' LIMIT 1;

Se avessimo un campo di riferimento univico, ad esempio un "id" di tipo INT e AUTO_INCREMENT, potremmo fare:

DELETE nome FROM clienti WHERE id = n;

Dove "n" è il numero univoco che identifica la riga da eliminare.

Eliminare più righe
Per eliminare più righe da una tabella MySQL, la sintassi è uguale. Se sapessimo esattamente quante sono le righe da cancellare, potremmo comunque includere LIMIT:

DELETE nome FROM clienti WHERE citta = 'milano' LIMIT 10;

Se invece non sapessimo il numero di righe da eliminare ma volessimo comunque eliminare tutte quelle che rispondono alla clausola WHERE, potremmo fare:

DELETE nome FROM clienti WHERE citta = 'milano';

Eliminare tutti i records di una tabella
Si possono cancellare tutti i records da una singola tabella con una sola linea di codice:

DELETE * FROM clienti;

In questo caso, resta la struttura della tabella ma vengono rimossi i campi. Nel caso in cui avessimo però dei valori auto incrementali (spesso si usano per campi di nome "id" o simili) i nuovi campi terranno conto dei valori auto incrementali che sono stati rimossi.
Ad esempio, se avessimo avuto un campo "id" auto incrementale arrivato fino a 100, con la sintassi DELETE * FROM nomeTabella, i nuovi campi partiranno da 101.

Per evitare ciò, si utilizza il termine TRUNCATE, ad esempio:

TRUNCATE TABLE nomeTabella;

In questo modo, il contenuto della tabella sarà completamente svuotato e i campi auto incrementali ripartiranno da 1.
 

 
 
Home > mysql > ...   © 1999-2017 Risorse.net, tutti i diritti riservati