教你在MySQL数据库中操作数据

数据库 MySQL
MySQL数据库检索数据表的信息时我们可以对其进行一系列的操作,包括查询、修正错误记录、选择特定的行和列,以及排序和计数等等。

MySQL数据库中对表的操作是初学者学习时的难点,下面我们就来对MySQL数据库进行一系列的表操作来帮助初学者迅速的掌握对MySQL数据表的操作。

1、从数据库表中检索信息

实际上,前面我们已经用到了SELECT语句,它用来从数据库表中检索信息。

select语句格式一般为:

SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选)

以前所使用的“ * ”表示选择所有的列。

假设我们已经创建了表mytable,下面的所有操作都是对mytable表的操作。

2、查询所有数据

  1. mysql> select * from mytable;  
  2.  
  3. +----------+------+------------+----------+  
  4.  
  5. | name | sex | birth | birthaddr |  
  6.  
  7. +----------+------+------------+--------+  
  8.  
  9. | abccs |f | 1977-07-07 | china |  
  10.  
  11. | mary |f | 1978-12-12 | usa  
  12.  
  13. |  
  14.  
  15. | tom |m | 1970-09-02 | usa  
  16.  
  17. |  
  18.  
  19. +----------+------+------------+----------+  
  20.  
  21. 3 row in set (0.00 sec) 

3、修正错误记录

假如tom的出生日期有错误,应该是1973-09-02,则可以用update语句来修正:

mysql> update mytable set birth = "1973-09-02" where name = "tom";

再用2中的语句看看是否已更正过来。

4、选择特定行

上面修改了tom的出生日期,我们可以选择tom这一行来看看是否已经有了变化:

  1. mysql> select * from mytable where name = "tom";  
  2.  
  3. +--------+------+------------+------------+  
  4.  
  5. | name |sex | birth | birthaddr  
  6.  
  7. |  
  8.  
  9. +--------+------+------------+------------+  
  10.  
  11. | tom |m | 1973-09-02 | usa  
  12.  
  13. |  
  14.  
  15. +--------+------+------------+------------+  
  16.  
  17. 1 row in set (0.06 sec) 

上面WHERE的参数指定了检索条件。我们还可以用组合条件来进行查询:

  1. mysql> SELECT * FROM mytable WHERE sex = "f" AND birthaddr = "china";  
  2.  
  3. +--------+------+------------+------------+  
  4.  
  5. | name |sex | birth | birthaddr  
  6.  
  7. |  
  8.  
  9. +--------+------+------------+------------+  
  10.  
  11. | abccs |f | 1977-07-07 | china |  
  12.  
  13. 1 row in set (0.06 sec) 

#p#

5、 选择特定列

假如你想查看表中的所有人的姓名,则可以这样操作:

  1. mysql> SELECT name FROM mytable;  
  2.  
  3. +----------+  
  4.  
  5. | name |  
  6.  
  7. +----------+  
  8.  
  9. | abccs |  
  10.  
  11. | mary |  
  12.  
  13. | tom  
  14.  
  15. |  
  16.  
  17. +----------+  
  18.  
  19. 3 row in set (0.00 sec) 

如果想列出姓名和性别两列,则可以用逗号将关键词name和birth分开:

  1. myaql> select name,birth from mytable; 

6、对行进行排序

我们可以对表中的记录按生日大小进行排序:

  1. mysql> SELECT name, birth FROM mytable ORDER BY birth;  
  2.  
  3. +----------+------------+  
  4.  
  5. | name | birth |  
  6.  
  7. +----------+------------+  
  8.  
  9. | tom | 1973-09-02 |  
  10.  
  11. | abccs | 1977-07-07 |  
  12.  
  13. | mary | 1978-12-12 |  
  14.  
  15. +----------+------------+  
  16.  
  17. 3 row in set (0.00 sec) 

我们可以用DESC来进行逆序排序:

  1. mysql> SELECT name, birth FROM mytable ORDER BY birth DESC;  
  2.  
  3. +----------+------------+  
  4.  
  5. | name | birth |  
  6.  
  7. +----------+------------+  
  8.  
  9. | mary | 1978-12-12 |  
  10.  
  11. | abccs | 1977-07-07 |  
  12.  
  13. | tom | 1973-09-02 |  
  14.  
  15. +----------+------------+  
  16.  
  17. 3 row in set (0.00 sec) 

7、 行计数

数据库经常要统计一些数据,如表中员工的数目,我们就要用到行计数函数COUNT()。

COUNT()函数用于对非NULL结果的记录进行计数:

  1. mysql> SELECT COUNT(*) FROM mytable;  
  2.  
  3. | COUNT(*) |  
  4.  
  5. +----------+  
  6.  
  7. |  
  8.  
  9. 3 |  
  10.  
  11. +----------+  
  12.  
  13. 1 row in set (0.06 sec) 

员工中男女数量:

  1. mysql> SELECT sex, COUNT(*) FROM mytable GROUP BY sex;  
  2.  
  3. +------+----------+  
  4.  
  5. | sex | COUNT(*) |  
  6.  
  7. +------+----------+  
  8.  
  9. | f |  
  10.  
  11. 2 |  
  12.  
  13. | m |  
  14.  
  15. 1 |  
  16.  
  17. +------+----------+ 

以上就是MySQL数据库表的一些常用的操作,希望会对读者有所帮助。如果想更多地了解MySQL数据库,请参考我们网站的MySQL专栏:http://database.51cto.com/col/484/

【编辑推荐】

  1. MFC连接MySql数据库
  2. 如何安全的远程使用MySQL GUI工具
  3. 浅谈mysql在主从服务器中同步的实现
  4. 小记MySQL的mysql-udf-http效率测试
  5. MySQL数据库新特性之存储过程入门教程
责任编辑:赵鹏 来源: 中国IT实验室
相关推荐

2020-11-16 08:56:02

Python

2011-07-01 13:42:24

QT 数据库

2009-09-15 09:50:07

Linq操作数据库

2009-08-04 14:52:33

Visual Web ASP.NET

2011-04-19 10:20:09

数据库

2009-09-03 09:52:26

C# treeview

2009-08-24 16:46:04

C# 泛型

2023-04-27 09:36:43

2023-12-27 13:44:00

数据库系统分布式

2023-06-15 15:21:43

2023-12-14 15:07:31

多线程数据库代码

2022-10-09 15:41:54

Python数据库

2009-07-07 09:24:37

LINQ检索

2016-05-11 10:09:49

数据层代码FastQuery

2009-12-28 16:57:40

ADO .NET 类

2023-05-23 16:25:48

MyBatisSQL数据库

2021-06-29 06:25:22

Nest.jsTypeORM数据库

2021-01-29 10:51:48

高并发数据库缓存

2019-12-24 09:12:10

运维架构技术

2023-09-27 07:49:23

点赞
收藏

51CTO技术栈公众号