千家信息网

MySQL该如何操作数据表中的记录

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,下文主要给大家带来MySQL该如何操作数据表中的记录,希望这些内容能够带给大家实际用处,这也是我编辑MySQL该如何操作数据表中的记录这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。1.插入记
千家信息网最后更新 2026年11月01日MySQL该如何操作数据表中的记录

下文主要给大家带来MySQL该如何操作数据表中的记录,希望这些内容能够带给大家实际用处,这也是我编辑MySQL该如何操作数据表中的记录这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。

1.插入记录 INSERT

INSERT [INTO] tbl_name [(col_name,...)] {VAULES|VALUE} ({expr|DEFAULT},...),(...),...

例,插入单条记录:

mysql> USE testDatabase changedmysql> CREATE TABLE users(    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,    -> username VARCHAR(20) NOT NULL,    -> password VARCHAR(32) NOT NULL,    -> age TINYINT UNSIGNED NOT NULL DEFAULT 10,    -> sex BOOLEAN    -> );mysql> INSERT users VALUES(NULL,'Tom','asd123',24,1);mysql> SELECT * FROM users;+----+----------+----------+-----+------+| id | username | password | age | sex  |+----+----------+----------+-----+------+|  1 | Tom      | asd123   |  24 |    1 |+----+----------+----------+-----+------+

插入多条记录:

mysql> INSERT users VALUES(DEFAULT,'John','asd123',24,1),    -> (NULL,'Huang','daddd',25,1);mysql> SELECT * FROM users;                           +----+----------+----------+-----+------+| id | username | password | age | sex  |+----+----------+----------+-----+------+|  1 | Tom      | asd123   |  24 |    1 ||  2 | John     | asd123   |  24 |    1 ||  3 | Huang    | daddd    |  25 |    1 |+----+----------+----------+-----+------+

插入数学表达式:

mysql> INSERT users VALUES(NULL,'John','asd123',3*7-5,1);mysql> SELECT * FROM users;+----+----------+----------+-----+------+| id | username | password | age | sex  |+----+----------+----------+-----+------+|  1 | Tom      | asd123   |  24 |    1 ||  2 | John     | asd123   |  24 |    1 ||  3 | Huang    | daddd    |  25 |    1 ||  4 | John     | asd123   |  16 |    1 |+----+----------+----------+-----+------+

插入md5的哈希密码:

mysql> INSERT users VALUES(NULL,'John',md5('123'),DEFAULT,0);mysql> SELECT * FROM users;+----+----------+----------------------------------+-----+------+| id | username | password                         | age | sex  |+----+----------+----------------------------------+-----+------+|  1 | Tom      | asd123                           |  24 |    1 ||  2 | John     | asd123                           |  24 |    1 ||  3 | Huang    | daddd                            |  25 |    1 ||  4 | John     | asd123                           |  16 |    1 ||  5 | John     | 202cb962ac59075b964b07152d234b70 |  10 |    0 |+----+----------+----------------------------------+-----+------+

2.插入记录 INSERT SET-SELECT

(与第一种方式的区别是 可以使用子查询,不可以同时插入多条记录)

INSERT [INTO] tbl_name SET col_name={expr|DEFAULT},...

例:

mysql> INSERT users SET username='Ben',password=md5('345');mysql> SELECT * FROM users;+----+----------------------+----------------------------------+-----+------+| id | username             | password                         | age | sex  |+----+----------------------+----------------------------------+-----+------+|  1 | Tom                  | asd123                           |  24 |    1 ||  2 | John                 | asd123                           |  24 |    1 ||  3 | Huang                | daddd                            |  25 |    1 ||  4 | John                 | asd123                           |  16 |    1 ||  5 | John                 | 202cb962ac59075b964b07152d234b70 |  10 |    0 ||  6 | Ben                  | d81f9c1be2e08964bf9f24b15f0e4900 |  10 | NULL |+----+----------------------+----------------------------------+-----+------+

3.更新记录 UPDATE

单表更新

UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [,col_name2={expr2|DEFAULT}]... [WHERE where_condition]
  • 例,将所有记录的年龄加5:

mysql> UPDATE users SET age = age+5;mysql> SELECT * FROM users;                                +----+----------------------+----------------------------------+-----+------+| id | username             | password                         | age | sex  |+----+----------------------+----------------------------------+-----+------+|  1 | Tom                  | asd123                           |  29 |    1 ||  2 | John                 | asd123                           |  29 |    1 ||  3 | Huang                | daddd                            |  30 |    1 ||  4 | John                 | asd123                           |  21 |    1 ||  5 | John                 | 202cb962ac59075b964b07152d234b70 |  15 |    0 ||  6 | Ben                  | d81f9c1be2e08964bf9f24b15f0e4900 |  15 | NULL |+----+----------------------+----------------------------------+-----+------+
  • 将Tom的年龄加10岁:

mysql> UPDATE users SET age = age+10 WHERE id=1;mysql> SELECT * FROM users WHERE id=1;+----+----------+----------+-----+------+| id | username | password | age | sex  |+----+----------+----------+-----+------+|  1 | Tom      | asd123   |  39 |    1 |+----+----------+----------+-----+------+
  • 将id为偶数的年龄加10岁:

mysql> UPDATE users SET age = age+10 WHERE id % 2 = 0;mysql> select * from users;                           +----+----------------------+----------------------------------+-----+------+| id | username             | password                         | age | sex  |+----+----------------------+----------------------------------+-----+------+|  1 | Tom                  | asd123                           |  39 |    1 ||  2 | John                 | asd123                           |  39 |    1 ||  3 | Huang                | daddd                            |  30 |    1 ||  4 | John                 | asd123                           |  31 |    1 ||  5 | John                 | 202cb962ac59075b964b07152d234b70 |  15 |    0 |+----+----------------------+----------------------------------+-----+------+
  • 修改所有记录的sex为0:

mysql> UPDATE users SET sex = 0;mysql> select * from users;    +----+----------------------+----------------------------------+-----+------+| id | username             | password                         | age | sex  |+----+----------------------+----------------------------------+-----+------+|  1 | Tom                  | asd123                           |  39 |    0 ||  2 | John                 | asd123                           |  39 |    0 ||  3 | Huang                | daddd                            |  30 |    0 ||  4 | John                 | asd123                           |  31 |    0 ||  5 | John                 | 202cb962ac59075b964b07152d234b70 |  15 |    0 ||  7 | Ben                  | d81f9c1be2e08964bf9f24b15f0e4900 |  15 |    0 |+----+----------------------+----------------------------------+-----+------+

4.删除记录 DELETE

单表删除 (若不添加WHERE则删除【全部记录】)

DELETE FROM tbl_name [WHERE where_condition]
  • 例,删除id=7的记录:

mysql> DELETE FROM users WHERE id = 7;mysql> select * from users;           +----+----------+----------------------------------+-----+------+| id | username | password                         | age | sex  |+----+----------+----------------------------------+-----+------+|  1 | Tom      | asd123                           |  39 |    0 ||  2 | John     | asd123                           |  39 |    0 ||  3 | Huang    | daddd                            |  30 |    0 ||  4 | John     | asd123                           |  31 |    0 ||  5 | John     | 202cb962ac59075b964b07152d234b70 |  15 |    0 |+----+----------+----------------------------------+-----+------+

5.查找记录 SELECT

SELECT select_expr [,select_expr...][  FROM tbl_references  [WHERE where_condition]  [GROUP BY {col_name | position} [ASC | DESC],...]  [HAVING where_condition]  [ORDER BY {col_name | expo | position}  [ASC | DESC],...]  [LIMIT {[offset,] row_count | row_count OFFSET offset}]]

查询表达式(select_expr)

1. 每一个表达式表示想要的一列,必须有至少一个

2. 多个列之间以英文逗号分隔

3. 星号(*)表示所有列;tbl_name.*可以表示命名表的所有列

4. 查询表达式可以使用[AS]alias_name为其赋予别名

5. 别名可用于GROUP BY,ORDER BY或HAVING子句

SELECT查询表达式字段出现的顺序将影响结果集字段出现的顺序

字段的别名也会影响以后的结果集 , 在以后的PHP中有重要作用

例,只查询users表中 id 和 username 两列:

mysql> SELECT id,username FROM users;+----+----------+| id | username |+----+----------+|  1 | Tom      ||  2 | John     ||  3 | Huang    ||  4 | John     ||  5 | John     |+----+----------+

查询users表中 id 和 username 两列,分别用userid,uname作为别名:

mysql> SELECT id AS userid ,username AS uname FROM users;                         +--------+-------+| userid | uname |+--------+-------+|      1 | Tom   ||      2 | John  ||      3 | Huang ||      4 | John  ||      5 | John  |+--------+-------+

6.where语句进行条件查询

  • 条件表达式(WHERE)

  • 对记录进行过滤,如果没有指定WHERE子句,则显示所有记录

  • 在WHERE表达式中,可以使用MySQL支持的函数或运算符

7.group by语句对查询结果分组

group by

查询结果分组

[GROUP BY {col_name | position} [ASC | DESC],...]

可以制定列的列名和列的位置。

asc生序,desc降序,多个分组中间用逗号区分。

例,查询users表,按照性别分组:

mysql> SELECT sex FROM users GROUP BY sex;+------+| sex  |+------+|    0 |+------+

8.having语句设置分组条件

分组条件(HAVING)

[HAVING where_condition]

其中,where_condition要么是聚合函数(max,min,avg,count,sum),要么其中的字段必须是SELECT中的一个查询字段,否则会报错]

例,查询users表中sex分组,条件为age>20(这种方法需要查询字段也添加age字段):

mysql> SELECT sex,age FROM users GROUP BY sex having age > 20; +------+-----+| sex  | age |+------+-----+|    0 |  39 |+------+-----+

查询users表中sex分组,条件为id >=2 :

mysql> SELECT sex FROM users GROUP BY sex HAVING count(id) >= 2;    +------+| sex  |+------+|    0 |+------+

9.order by语句对查询结果排序

对查询结果进行排序(ORDER BY)

[ORDER BY {col_name | expr | position} [ASC | DESC],...]

可以按照多个列排序

例,查询users表,按年龄从小到大排列:

mysql> SELECT * FROM users ORDER BY age ASC; +----+----------+----------------------------------+-----+------+| id | username | password                         | age | sex  |+----+----------+----------------------------------+-----+------+|  8 | Hui      | 9e1e06ec8e02f0a0074f2fcc6b26303b |   8 |    1 ||  5 | John     | 202cb962ac59075b964b07152d234b70 |  15 |    0 || 10 | Luyuan   | 9e1e06ec8e02f0a0074f2fcc6b26303b |  21 |    1 ||  9 | Dui      | 9e1e06ec8e02f0a0074f2fcc6b26303b |  27 |    1 ||  3 | Huang    | daddd                            |  30 |    0 || 12 | Murouan  | 9e1e06ec8e02f0a0074f2fcc6b26303b |  31 |    1 || 11 | Oduyuan  | 9e1e06ec8e02f0a0074f2fcc6b26303b |  31 |    1 || 13 | Spqoan   | 9e1e06ec8e02f0a0074f2fcc6b26303b |  31 |    1 ||  4 | John     | asd123                           |  31 |    0 ||  2 | John     | asd123                           |  39 |    0 ||  1 | Tom      | asd123                           |  39 |    0 |+----+----------+----------------------------------+-----+------+

查询users表,第一顺序按年龄从小到大排列,第二顺序按id从小到大排列:

mysql> SELECT * FROM users ORDER BY age,id ASC;+----+----------+----------------------------------+-----+------+| id | username | password                         | age | sex  |+----+----------+----------------------------------+-----+------+|  8 | Hui      | 9e1e06ec8e02f0a0074f2fcc6b26303b |   8 |    1 ||  5 | John     | 202cb962ac59075b964b07152d234b70 |  15 |    0 || 10 | Luyuan   | 9e1e06ec8e02f0a0074f2fcc6b26303b |  21 |    1 ||  9 | Dui      | 9e1e06ec8e02f0a0074f2fcc6b26303b |  27 |    1 ||  3 | Huang    | daddd                            |  30 |    0 ||  4 | John     | asd123                           |  31 |    0 || 11 | Oduyuan  | 9e1e06ec8e02f0a0074f2fcc6b26303b |  31 |    1 || 12 | Murouan  | 9e1e06ec8e02f0a0074f2fcc6b26303b |  31 |    1 || 13 | Spqoan   | 9e1e06ec8e02f0a0074f2fcc6b26303b |  31 |    1 ||  1 | Tom      | asd123                           |  39 |    0 ||  2 | John     | asd123                           |  39 |    0 |+----+----------+----------------------------------+-----+------+

10.LIMIT语句限制查询数量

LIMIT 限制查询结果返回的数量

[LIMIT{[offset,]row_count|row_count OFFSET offset}]
SELECT * from users  #返回所有的结果 SELECT * from users limit 2  #返回所有的结果集中前两条
mysql> SELECT * FROM users LIMIT 2;+----+----------+----------+-----+------+| id | username | password | age | sex  |+----+----------+----------+-----+------+|  1 | Tom      | asd123   |  39 |    0 ||  2 | John     | asd123   |  39 |    0 |+----+----------+----------+-----+------+
SELECT * FROM users LIMIT 2,2;  #要查询结果集中第3条和第4条记录。mysql中的记录是从0开始的,共几条。
mysql> SELECT * FROM users LIMIT 2,2;+----+----------+----------+-----+------+| id | username | password | age | sex  |+----+----------+----------+-----+------+|  3 | Huang    | daddd    |  30 |    0 ||  4 | John     | asd123   |  31 |    0 |+----+----------+----------+-----+------+

总结

记录操作: INSERT , UPDATE , DELETE , SELECT

1.insert的三种

insert [into]  表名 [(列名,列名)]{values|value} ({(表达式|default},())insert [into]  表名 set 列名={(表达式|default},。。insert [into]  表名 [(列名,列名)] SELECT..

2.UPDATE

(1)单表更新

UPDATE [LOW_PRIORITY][IGNORE] table_reference SET col_name1={expr1|DEFAULT},[col_name2={expr2|DEFAULT}]...[WHERE where_condition]

多表更新

3.DELETE : 删除数据

(1)单表删除

DELETE FROM tbl_name [WHERE where_condition}

4.SELECT: //查询

SELECT select_expr [,select expr2...] #只查找某一个函数或表达式[FROM table_references #查询表名[WHERE where_conditon]  #查询条件[GROUP BY {col_name|position} [ASC|DESC],...] #按某个字段进行分组,相同的只显示第一个[HAVING where_conditon] #分组时,给出显示条件[ORDER BY {col_name|expr|position} [ASC|DESC],...] #排序[LIMIT {[offset,]row_count|row_count OFFSET offset}] #限制返回数量]

SELECT

FROM 表的参照

WHERE 条件

GROUP BY 对记录结果进行分组

HAVING 对分组条件的设定

结合内容,将查找的结果存储在指定的数据表:

mysql> CREATE TABLE test(    -> id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,    -> username VARCHAR(20) NOT NULL    -> );
mysql> INSERT test(username) SELECT username FROM users WHERE age >= 25;mysql> SELECT * FROM test;                                   +----+----------+| id | username |+----+----------+|  1 | Tom      ||  2 | John     ||  3 | Huang    ||  4 | John     ||  5 | Dui      ||  6 | Oduyuan  ||  7 | Murouan  ||  8 | Spqoan   |+----+----------+ 

对于以上关于MySQL该如何操作数据表中的记录,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。

查询 结果 分组 条件 表达式 字段 数据 年龄 语句 数据表 内容 别名 顺序 排序 更新 从小到大 从小 函数 多个 数量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州紫鲸互联网科技有限公司 互联网科技活动banner A股互联网金融科技公司 互联网科技开发公司 迪茉互联网科技 华中科技大学互联网 互联网前沿科技 一五八零互联网科技 重庆科技学院互联网 互联网科技中介 中国航天科技大学国际工业互联网 健康食品互联网创新科技园项目 群盈汇互联网科技有限公司 恒生互联网科技业指数调整周期 美国互联网科技实力 上海钢联属于互联网科技股吗 互联网领先科技宣传片 郑州欣桑互联网科技有限公司 安徽零酒互联网科技有限公司 恒生互联网科技趋势 科技与互联网 互联网科技的发展 上海致骋互联网科技 互联网和高科技公司 互联网教育科技公司vipkid 湖北码尼互联网科技有限公司电话 江阴互联网智能科技产品进口 崇明区互联网教育科技售后服务 徐州市互联网科技有限公司 广东猫王互联网科技有限公司电话
0