网站推广.NET

网站推广.NET

数据库增删改查基本语句是什么?

来源:互联网

(推荐教程: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,&#39;Network&#39;,3,&#39;Computer Network&#39;);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: 0mysql> 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=&#39;DB&#39;,course_grade=3.5    -> WHERE course_id=2;Query OK, 1 row affected (0.13 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> 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[,]],该子句告诉 MySQL 每次显示查询出来的数据条数。

下面先介绍一些简单的 select 语句,关于 WHERE、GROUP BY、ORDER BY 和 LIMIT 等限制条件就不细说了。

1、查询表中所有字段

查询所有字段是指查询表中所有字段的数据。MySQL 提供了以下 2 种方式查询表中的所有字段。

select 可以使用“*”查找表中所有字段的数据,语法格式如下:

select * FROM 表名;

使用“*”查询时,只能按照数据表中字段的顺序进行排列,不能改变字段的排列顺序。

示例:从 tb_students_info 表中查询所有字段的数据,SQL 语句和运行结果如下所示。

mysql> use test_db;Database changedmysql> 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 三个字段下的所有数据。

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

数据库增删改查语句