Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abfrage aktualisieren, um Zeilen in MySQL zu aktualisieren

Dieses Tutorial ist Teil der Reihe Learn Basic SQL Queries Using MySQL. In diesem Tutorial besprechen wir SQL-Abfragen zum Aktualisieren der Zeilen oder Daten einer Tabelle in MySQL.

Aktualisierungsabfrage

Der Befehl UPDATE kann verwendet werden, um Zeilen einer Tabelle mit dem Schlüsselwort SET zu ändern oder zu aktualisieren. Falls Sie remote bei der Datenbank angemeldet sind, benötigen Sie auch das UPDATE-Privileg für die Tabelle, um die Zeilen aus einer Tabelle zu lesen.

# UPDATE - Syntax
UPDATE `table_name` SET `column_1` = <value>, `column_2` = <value> ... [WHERE <single or multiple filter conditions>];

Erklärung der Abfrage

Der MySQL-Befehl UPDATE kann verwendet werden, um Zeilen oder Daten des angegebenen Tabellennamens zu ändern, wobei der Spaltenname, der Zeilenwert und der Name der Tabelle obligatorisch sind. Das SET Schlüsselwort ist erforderlich, um den neuen Spaltenwert festzulegen.

Wir müssen mindestens eine Spalte und ihren neuen Wert angeben, während wir die UPDATE-Abfrage verwenden. Der Wert muss in einfache Anführungszeichen gesetzt werden, falls es sich um einen Zeichenfolgenwert handelt.

Wir müssen auch die Bedingungen angeben, die beim Aktualisieren der Zeilen berücksichtigt werden sollen. Die Verwendung der WHERE-Klausel mit dem UPDATE-Befehl ist erforderlich, wenn wir die Zeilen selektiv aktualisieren müssen, die ist das Idealszenario. Wir können die Verwendung von WHERE bei der Verwendung des UPDATE-Befehls weglassen, aber es führt zu Leistungsproblemen, falls die Tabellendaten groß sind.

Beispiele

Dieser Abschnitt enthält Beispiele zum Aktualisieren von Tabellenzeilen mit dem UPDATE-Befehl. Verwenden Sie die unten aufgeführte Abfrage, um die Benutzertabelle mit den Spalten „ID“, „Vorname“, „Nachname“ und „Aktiv“ zum Speichern von Benutzerdaten zu erstellen.

# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));

Die unten genannte Abfrage kann verwendet werden, um Daten in die Benutzertabelle einzufügen.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'Catherine', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );

Die oben erwähnte Abfrage fügt 5 Zeilen in die Tabelle ein, die die Spalten ID, Vorname, Nachname und Aktiv enthalten, um 5 verschiedene Benutzer darzustellen.

Nun aktualisieren wir die von uns eingefügten Daten in der Benutzertabelle. Dies kann mit dem unten gezeigten UPDATE-Befehl erfolgen.

# UPDATE - Activate all the inactive users - without key column
UPDATE `user` SET `active` = 1 WHERE `active` = 0;

# Notes - Workbench - You might need to disable safe updates in case the primary key is not used in WHERE clause
SET SQL_SAFE_UPDATES = 0;
UPDATE `user` SET `active` = 1 WHERE `active` = 0;
SET SQL_SAFE_UPDATES = 0;

# Result
1 John Smith 1
2 Rick Jones 1
3 Catherine Ponting 1
4 Harsh Upadhyay 1
5 Tajwinder Singh 1


# UPDATE - Deactivate selective users - with key column
UPDATE `user` SET `active` = 0 WHERE `user_id` = 1;
UPDATE `user` SET `active` = 0 WHERE `user_id` IN( 3, 5 );

# Result
1 John Smith 0
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0

Die oben erwähnten Abfragen aktualisieren die Benutzertabelle unter Verwendung der WHERE-Klausel. Die Tabellenzeilen werden aktualisiert, falls die Zeile die angegebenen Bedingungen erfüllt.

Wir können auch mehrere Spaltenwerte wie unten gezeigt aktualisieren.

# UPDATE - Modify first name and last name of first user
UPDATE `user` SET `first_name` = 'Roy', `last_name` = 'Jordan' WHERE `user_id` = 1;

# Result
1 Roy Jordan 0
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0

So können wir die in den MySQL-Tabellen gespeicherten Daten ändern.