概述
(推荐教程:mysql视频教程)
数据库增删改查基本语句
数据库增加数据
在 MySQL 中可以使用 INSERT INTO 语句向数据库已有的表中插入一行或者多行元组数据。
语法格式:
INSERT INTO 表名 ( 列名1, 列名2,...列名N )
VALUES
( 值1, 值2,...值N );
登录后复制
表名:指定被操作的表名。
列名:指定需要插入数据的列名。若向表中的所有列插入数据,则全部的列名均可以省略,直接采用 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 为空,此时值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同。
数据库删除数据
在 MySQL 中,可以使用 DELETE 语句来删除表的一行或者多行数据。
语法格式为:
DELETE FROM 表名 [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
登录后复制
删除指定数据:
DELETE FROM 表名称 WHERE 列名称 = 值
登录后复制
语法说明如下:
表名:指定要删除数据的表名。
ORDER BY 子句:可选项。表示删除时,表中各行将按照子句中指定的顺序进行删除。
WHERE 子句:可选项。表示为删除操作限定删除条件,若省略该子句,则代表删除该表中的所有行。
LIMIT 子句:可选项。用于告知服务器在控制命令被返回到客户端前被删除行的最大值。
示例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 子句:可选项。用于限定被修改的行数。
示例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>]
]
登录后复制
其中,各条子句的含义如下:
{*|<字段列名>}包含星号通配符的字段列表,表示所要查询字段的名称。
<表 1>,<表 2>…,表 1 和表 2 表示查询数据的来源,可以是单个或多个。
WHERE <表达式>是可选项,如果选择该项,将限定查询数据必须满足该查询条件。
GROUP BY< 字段 >,该子句告诉 MySQL 如何显示查询出来的数据,并按照指定的字段分组。
[ORDER BY< 字段 >],该子句告诉 MySQL 按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)和降序(DESC),默认情况下是升序。
[LIMIT[<offset>,]<row count>],该子句告诉 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 三个字段下的所有数据。
最后
以上就是疯狂硬币为你收集整理的数据库增删改查基本语句是什么?的全部内容,希望文章能够帮你解决数据库增删改查基本语句是什么?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复