資料庫增刪改查基本語句是什麼?

青灯夜游
發布: 2020-11-04 10:25:44
原創
67516 人瀏覽過

資料庫中增刪改查基本語句:“INSERT INTO 表名字段列表VALUES (值列表)”,“DELETE FROM 表名WHERE子句”,“UPDATE 表名SET 列=值WHERE子句” ,「SELECT * FROM 表名」。

資料庫增刪改查基本語句是什麼?

(推薦教學:mysql影片教學

資料庫增刪改查基本語句

資料庫增加資料

在 MySQL 中可以使用INSERT INTO 語句向資料庫已有的表中插入一行或多行元組數據。

語法格式:

INSERT INTO 表名 ( 列名1, 列名2,...列名N ) VALUES ( 值1, 值2,...值N );
登入後複製

如果資料是字元型,必須使用單引號或雙引號,如:"value"。

  • 表名:指定被操作的表名。

  • 列名:指定需要插入資料的列名。若向表中的所有欄位插入數據,則全部的列名均可省略,直接採用 INSERT <表名> VALUES(…) 即可。

  • VALUE 子句:此子句包含要插入的資料清單。資料清單中資料的順序要和列的順序相對應。

範例:在 tb_courses 表中插入一筆新記錄,course_id 值為 1,course_name 值為“Network”,course_grade 值為 3,info 值為“Computer Network”。

在執行插入操作之前,查看tb_courses 表

mysql> SELECT * FROM tb_courses; Empty set (0.00 sec)
登入後複製

查詢結果顯示當前表內容為空,沒有數據,接下來執行插入數據的操作,輸入的SQL 語句和執行過程如下所示。

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)
登入後複製

可以看到插入記錄成功。在插入資料時,指定了 tb_courses 表的所有字段,因此將為每個字段插入新的值。

說明:

  • INSERT 語句後面的列名稱順序可以不是tb_courses 表定義時的順序,即插入資料時,不需要按照表定義的順序插入,只要保證值的順序與列欄位的順序相同就可以。

  • 使用INSERT 插入資料時,允許列名清單column_list 為空,此時值清單中需要為表的每一個欄位指定值,且值的順序必須與資料表中欄位定義時的順序相同。

注意:雖然使用INSERT 插入資料時可以忽略插入資料的列名稱,若值不包含列名稱,則VALUES 關鍵字後面的值不僅要求完整,而且順序必須和表格定義時列的順序相同。如果表的結構被修改,對列進行增加、刪除或位置改變操作,這些操作將使得用這種方式插入資料時的順序也同時改變。如果指定列名稱,就不會受到表格結構改變的影響。

資料庫刪除資料

在 MySQL 中,可以使用 DELETE 語句來刪除表格的一行或多行資料。

語法格式為:

DELETE FROM 表名 [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
登入後複製

刪除指定資料:

DELETE FROM 表名称 WHERE 列名称 = 值
登入後複製

語法說明如下:

  • ##表名:指定要刪除資料的表名。

  • ORDER BY 子句:可選項。表示刪除時,表中各行將依照子句中指定的順序刪除。

  • WHERE 子句:可選項。表示為刪除操作限定刪除條件,若省略該子句,則代表刪除該表中的所有行。

  • LIMIT 子句:可選項。用於告知伺服器在控制命令被返回到客戶端前被刪除行的最大值。

注意:在不使用 WHERE 條件的時候,將刪除所有資料。

範例1:刪除表中的全部資料

刪除 tb_courses_new 表中的全部數據,輸入的 SQL 語句和執行結果如下所示。

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)
登入後複製

範例2:根據條件刪除表中的資料

在 tb_courses_new 表中,刪除 course_id 為 4 的記錄,輸入的 SQL 語句和執行結果如下所示。

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)
登入後複製

由運行結果可以看出,course_id 為 4 的記錄已經被刪除。

資料庫修改資料

在 MySQL 中,可以使用 UPDATE 語句來修改、更新一個或多個資料表的資料。

語法格式為:

UPDATE 表名 SET 字段=值 [WHERE 子句 ] [ORDER BY 子句] [LIMIT 子句]
登入後複製

範例:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
登入後複製

語法說明如下:

  • 表名:用於指定要更新的表名稱。

  • SET 子句:用於指定表中要修改的列名及其列值。其中,每個指定的列值可以是表達式,也可以是該列對應的預設值。如果指定的是預設值,可用關鍵字 DEFAULT 表示列值。

  • WHERE 子句:可選項。用於限定表中要修改的行。若不指定,則修改表格中所有的行。

  • ORDER BY 子句:可選項。用於限定表中的行被修改的次序。

  • LIMIT 子句:可選項。用於限定被修改的行數。

注意:修改一行数据的多个列值时,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  [HAVING  [{ }…]] [ORDER BY ] [LIMIT[,] ] ]
登入後複製

其中,各条子句的含义如下:

  • {*| <字段列名> }包含星号通配符的字段列表,表示所要查询字段的名称。

  • <表 1> , <表 2> …,表 1 和表 2 表示查询数据的来源,可以是单个或多个。

  • WHERE <表达式> 是可选项,如果选择该项,将限定查询数据必须满足该查询条件。

  • GROUP BY< 字段 >,该子句告诉 MySQL 如何显示查询出来的数据,并按照指定的字段分组。

  • [ORDER BY< 字段 >],该子句告诉 MySQL 按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)和降序(DESC),默认情况下是升序。

  • [LIMIT[ ,] ],该子句告诉 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 三个字段下的所有数据。

更多编程相关知识,请访问:编程视频!!

以上是資料庫增刪改查基本語句是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!