Heim >Datenbank >MySQL-Tutorial >Was sind die grundlegenden Anweisungen zum Hinzufügen, Löschen, Ändern und Abfragen einer Datenbank?
Grundlegende Anweisungen zum Hinzufügen, Löschen, Ändern und Abfragen in der Datenbank: „INSERT INTO Tabellenname Feldliste VALUES (Werteliste)“, „DELETE FROM Tabellenname WHERE-Klausel“, „UPDATE Tabellenname SET Spalte = Wert WHERE-Klausel“ , „SELECT * FROM Tabellenname“.
(Empfohlenes Tutorial: MySQL-Video-Tutorial)
Grundlegende Anweisungen zum Hinzufügen, Löschen, Ändern und Abfragen von Datenbanken
Daten zur Datenbank hinzufügen
In MySQL können Sie verwenden Fügen Sie mit der INSERT INTO-Anweisung Daten zur vorhandenen Datenbank hinzu. Fügen Sie eine oder mehrere Zeilen mit Tupeldaten in die Tabelle ein.
Syntaxformat:
INSERT INTO 表名 ( 列名1, 列名2,...列名N ) VALUES ( 值1, 值2,...值N );
Wenn es sich bei den Daten um Zeichentypen handelt, müssen Sie einfache oder doppelte Anführungszeichen verwenden, z. B. „Wert“.
Tabellenname: Geben Sie den Namen der Tabelle an, an der gearbeitet werden soll.
Spaltenname: Geben Sie den Spaltennamen an, in den Daten eingefügt werden müssen. Wenn Daten in alle Spalten der Tabelle eingefügt werden, können alle Spaltennamen weggelassen und INSERTccc43248daffbac9770dee47fdaff697VALUES(…) direkt verwendet werden.
VALUE-Klausel: Diese Klausel enthält die Liste der einzufügenden Daten. Die Reihenfolge der Daten in der Datenliste sollte der Reihenfolge der Spalten entsprechen.
Beispiel: Fügen Sie einen neuen Datensatz in die Tabelle tb_courses ein, der Wert von course_id ist 1, der Wert von course_name ist „Network“, der Wert von course_grade ist 3 und der Wert von info ist „Computer Network“.
Bevor Sie den Einfügevorgang ausführen, überprüfen Sie die Tabelle tb_courses
mysql> SELECT * FROM tb_courses; Empty set (0.00 sec)
Das Abfrageergebnis zeigt, dass der aktuelle Tabelleninhalt leer ist und keine Daten vorhanden sind. Führen Sie als Nächstes den Vorgang zum Einfügen von Daten aus folgt.
mysql> INSERT INTO tb_courses -> (course_id,course_name,course_grade,course_info) -> VALUES(1,'Network',3,'Computer Network'); Query OK, 1 rows affected (0.08 sec) mysql> SELECT * FROM tb_courses; +-----------+-------------+--------------+------------------+ | course_id | course_name | course_grade | course_info | +-----------+-------------+--------------+------------------+ | 1 | Network | 3 | Computer Network | +-----------+-------------+--------------+------------------+ 1 row in set (0.00 sec)
Sie können sehen, dass der Datensatz erfolgreich eingefügt wurde. Beim Einfügen von Daten werden alle Felder der Tabelle tb_courses angegeben, sodass für jedes Feld neue Werte eingefügt werden.
Hinweis:
Die Reihenfolge der Spaltennamen nach der INSERT-Anweisung muss nicht der Reihenfolge entsprechen, in der die Tabelle tb_courses definiert ist. Das heißt, beim Einfügen von Daten ist es nicht erforderlich, in der durch die definierten Reihenfolge einzufügen Tabelle, sofern sichergestellt ist, dass die Reihenfolge der Werte mit der Reihenfolge der Spaltenfelder übereinstimmt.
Bei Verwendung von INSERT zum Einfügen von Daten darf die Spaltennamenliste columns_list leer sein. Zu diesem Zeitpunkt muss die Werteliste für jedes Feld der Tabelle einen Wert angeben und die Reihenfolge der Werte muss angegeben werden muss mit der Reihenfolge übereinstimmen, in der die Felder in der Datentabelle definiert sind.
Hinweis: Obwohl der Spaltenname der eingefügten Daten ignoriert werden kann, wenn INSERT zum Einfügen von Daten verwendet wird, muss der Wert nach dem Schlüsselwort VALUES nicht nur vollständig sein, sondern auch, wenn der Wert den Spaltennamen nicht enthält Die Reihenfolge muss mit der Reihenfolge der Spalten beim Definieren der Tabelle übereinstimmen. Wenn die Struktur der Tabelle geändert wird und Spalten hinzugefügt, gelöscht oder deren Positionen geändert werden, führen diese Vorgänge dazu, dass sich gleichzeitig die Reihenfolge ändert, in der Daten auf diese Weise eingefügt werden. Wenn Sie Spaltennamen angeben, sind diese von Änderungen der Tabellenstruktur nicht betroffen.
Datenbanklöschung
In MySQL können Sie die DELETE-Anweisung verwenden, um eine oder mehrere Datenzeilen in einer Tabelle zu löschen.
Das Syntaxformat lautet:
DELETE FROM 表名 [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
Angegebene Daten löschen:
DELETE FROM 表名称 WHERE 列名称 = 值
Die Syntax lautet wie folgt:
Tabellenname: Geben Sie den Tabellennamen der zu löschenden Daten an.
ORDER BY-Klausel: Optional. Gibt an, dass beim Löschen Zeilen in der Tabelle in der in der Klausel angegebenen Reihenfolge gelöscht werden.
WHERE-Klausel: Optional. Gibt an, dass die Löschbedingungen für den Löschvorgang begrenzt sind. Wenn diese Klausel weggelassen wird, bedeutet dies, dass alle Zeilen in der Tabelle gelöscht werden.
LIMIT-Klausel: Optional. Wird verwendet, um dem Server die maximale Anzahl der zu löschenden Zeilen mitzuteilen, bevor der Steuerbefehl an den Client zurückgegeben wird.
Hinweis: Wenn die WHERE-Bedingung nicht verwendet wird, werden alle Daten gelöscht.
Beispiel 1: Alle Daten in der Tabelle löschen
Alle Daten in der Tabelle tb_courses_new löschen Die Eingabe-SQL-Anweisung und die Ausführungsergebnisse sind wie folgt.
mysql> DELETE FROM tb_courses_new; Query OK, 3 rows affected (0.12 sec) mysql> SELECT * FROM tb_courses_new; Empty set (0.00 sec)
Beispiel 2: Daten in der Tabelle basierend auf Bedingungen löschen
Löschen Sie in der Tabelle tb_courses_new den Datensatz mit course_id 4. Die eingegebene SQL-Anweisung und die Ausführungsergebnisse lauten wie folgt.
mysql> DELETE FROM tb_courses -> WHERE course_id=4; Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM tb_courses; +-----------+-------------+--------------+------------------+ | course_id | course_name | course_grade | course_info | +-----------+-------------+--------------+------------------+ | 1 | Network | 3 | Computer Network | | 2 | Database | 3 | MySQL | | 3 | Java | 4 | Java EE | +-----------+-------------+--------------+------------------+ 3 rows in set (0.00 sec)
Aus den laufenden Ergebnissen ist ersichtlich, dass der Datensatz mit course_id 4 gelöscht wurde.
Datenbankänderung
In MySQL können Sie die UPDATE-Anweisung verwenden, um Daten in einer oder mehreren Tabellen zu ändern und zu aktualisieren.
Das Syntaxformat ist:
UPDATE 表名 SET 字段=值 [WHERE 子句 ] [ORDER BY 子句] [LIMIT 子句]
Beispiel:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
Die Syntaxbeschreibung lautet wie folgt:
Tabellenname: Wird verwendet, um den Namen der zu aktualisierenden Tabelle anzugeben.
SET-Klausel: Wird verwendet, um den Spaltennamen und seinen Spaltenwert anzugeben, die in der Tabelle geändert werden sollen. Unter diesen kann jeder angegebene Spaltenwert ein Ausdruck oder der der Spalte entsprechende Standardwert sein. Wenn ein Standardwert angegeben ist, kann der Spaltenwert durch das Schlüsselwort DEFAULT dargestellt werden.
WHERE-Klausel: Optional. Wird verwendet, um die zu ändernden Zeilen in der Tabelle einzuschränken. Wenn nicht angegeben, werden alle Zeilen in der Tabelle geändert.
ORDER BY-Klausel: Optional. Wird verwendet, um die Reihenfolge zu begrenzen, in der Zeilen in einer Tabelle geändert werden.
LIMIT-Klausel: Optional. Wird verwendet, um die Anzahl der geänderten Zeilen zu begrenzen.
注意:修改一行数据的多个列值时,SET 子句的每个值用逗号分开即可。
示例1:修改表中的数据
在 tb_courses_new 表中,更新所有行的 course_grade 字段值为 4,输入的 SQL 语句和执行结果如下所示。
mysql> UPDATE tb_courses_new -> SET course_grade=4; Query OK, 3 rows affected (0.11 sec) Rows matched: 4 Changed: 3 Warnings: 0 mysql> SELECT * FROM tb_courses_new; +-----------+-------------+--------------+------------------+ | course_id | course_name | course_grade | course_info | +-----------+-------------+--------------+------------------+ | 1 | Network | 4 | Computer Network | | 2 | Database | 4 | MySQL | | 3 | Java | 4 | Java EE | | 4 | System | 4 | Operating System | +-----------+-------------+--------------+------------------+ 4 rows in set (0.00 sec)
示例1:根据条件修改表中的数据
在 tb_courses 表中,更新 course_id 值为 2 的记录,将 course_grade 字段值改为 3.5,将 course_name 字段值改为“DB”,输入的 SQL 语句和执行结果如下所示。
mysql> UPDATE tb_courses_new -> SET course_name='DB',course_grade=3.5 -> WHERE course_id=2; Query OK, 1 row affected (0.13 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> SELECT * FROM tb_courses_new; +-----------+-------------+--------------+------------------+ | course_id | course_name | course_grade | course_info | +-----------+-------------+--------------+------------------+ | 1 | Network | 4 | Computer Network | | 2 | DB | 3.5 | MySQL | | 3 | Java | 4 | Java EE | | 4 | System | 4 | Operating System | +-----------+-------------+--------------+------------------+ 4 rows in set (0.00 sec)
注意:保证 UPDATE 以 WHERE 子句结束,通过 WHERE 子句指定被更新的记录所需要满足的条件,如果忽略 WHERE 子句,MySQL 将更新表中所有的行。
数据库查询数据
在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。
SELECT 的语法格式如下:
SELECT {* | <字段列名>} [ FROM <表 1>, <表 2>… [WHERE <表达式> [GROUP BY <group by definition> [HAVING <expression> [{<operator> <expression>}…]] [ORDER BY <order by definition>] [LIMIT[<offset>,] <row count>] ]
其中,各条子句的含义如下:
{*|91f4a644069eb08f05815c14fcb8b2df}包含星号通配符的字段列表,表示所要查询字段的名称。
1db5ee5e96c8774919312b86ea1e4ece,e612022ea012f486e2b8f4eb394bb6e0…,表 1 和表 2 表示查询数据的来源,可以是单个或多个。
WHERE a8db8f1ba937e93d98acf65ecbbdce13是可选项,如果选择该项,将限定查询数据必须满足该查询条件。
GROUP BY628258a999ccbeb31a9b66d6d3301cc9,该子句告诉 MySQL 如何显示查询出来的数据,并按照指定的字段分组。
[ORDER BY628258a999ccbeb31a9b66d6d3301cc9],该子句告诉 MySQL 按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)和降序(DESC),默认情况下是升序。
[LIMIT[ab76cfca1a1dc7ff1291dcdf873f72ec,]bc984d207842008469e14f06321b6461],该子句告诉 MySQL 每次显示查询出来的数据条数。
下面先介绍一些简单的 SELECT 语句,关于 WHERE、GROUP BY、ORDER BY 和 LIMIT 等限制条件就不细说了。
1、查询表中所有字段
查询所有字段是指查询表中所有字段的数据。MySQL 提供了以下 2 种方式查询表中的所有字段。
SELECT 可以使用“*”查找表中所有字段的数据,语法格式如下:
SELECT * FROM 表名;
使用“*”查询时,只能按照数据表中字段的顺序进行排列,不能改变字段的排列顺序。
示例:从 tb_students_info 表中查询所有字段的数据,SQL 语句和运行结果如下所示。
mysql> use test_db; Database changed mysql> SELECT * FROM tb_students_info; +----+--------+---------+------+------+--------+------------+ | id | name | dept_id | age | sex | height | login_date | +----+--------+---------+------+------+--------+------------+ | 1 | Dany | 1 | 25 | F | 160 | 2015-09-10 | | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | +----+--------+---------+------+------+--------+------------+ 10 rows in set (0.26 sec)
结果显示,使用“*”通配符时,将返回所有列,数据列按照创建表时的顺序显示。
注意:一般情况下,除非需要使用表中所有的字段数据,否则最好不要使用通配符“*”。虽然使用通配符可以节省输入查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。使用“*”的优势是,当不知道所需列的名称时,可以通过“*”获取它们。
2、查询表中指定的字段
查询表中的某一个字段的语法格式为:
SELECT < 列名 > FROM < 表名 >;
示例:
查询 tb_students_info 表中 name 列所有学生的姓名,SQL 语句和运行结果如下所示。
mysql> SELECT name FROM tb_students_info; +--------+ | name | +--------+ | Dany | | Green | | Henry | | Jane | | Jim | | John | | Lily | | Susan | | Thomas | | Tom | +--------+ 10 rows in set (0.00 sec)
输出结果显示了 tb_students_info 表中 name 字段下的所有数据。
使用 SELECT 声明可以获取多个字段下的数据,只需要在关键字 SELECT 后面指定要查找的字段名称,不同字段名称之间用逗号“,”分隔开,最后一个字段后面不需要加逗号,语法格式如下:
SELECT <字段名1>,<字段名2>,…,<字段名n> FROM <表名>;
示例:
从 tb_students_info 表中获取 id、name 和 height 三列,SQL 语句和运行结果如下所示。
mysql> SELECT id,name,height -> FROM tb_students_info; +----+--------+--------+ | id | name | height | +----+--------+--------+ | 1 | Dany | 160 | | 2 | Green | 158 | | 3 | Henry | 185 | | 4 | Jane | 162 | | 5 | Jim | 175 | | 6 | John | 172 | | 7 | Lily | 165 | | 8 | Susan | 170 | | 9 | Thomas | 178 | | 10 | Tom | 165 | +----+--------+--------+ 10 rows in set (0.00 sec)
输出结果显示了 tb_students_info 表中 id、name 和 height 三个字段下的所有数据。
更多编程相关知识,请访问:编程视频!!
Das obige ist der detaillierte Inhalt vonWas sind die grundlegenden Anweisungen zum Hinzufügen, Löschen, Ändern und Abfragen einer Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!