首页 数据库 mysql教程 【MySQL】(4)操作数据表中的记录_MySQL

【MySQL】(4)操作数据表中的记录_MySQL

Jun 01, 2016 pm 12:59 PM
数据表

1. 插入记录INSERT

方法一:

INSERT [INTO] tbl_name [(clo_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...;

例如:

 

1

2

3

4

5

6

7

8

9

10

11

CREATE TABLE users(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, password VARCHAR(32) NOT NULL, age TINYINT UNSIGNED NOT NULL DEFAULT 10, sex BOOLEAN);

# 插入记录,不指定列的数目时,必须所有的字段都要赋值

INSERT users VALUES(NULL, 'Tom', '123', 25, 1);

INSERT users VALUES(NULL, 'Tom2', '123', 28, 1);

INSERT users VALUES(DEFAULT, 'Tom3', '111', 28, 1);

# 使用数学表达式也可以添加值

INSERT users VALUES(DEFAULT, 'Tom4', '111', 3*7+2/3, 1);

# 给年龄DEFAULT,会采用默认值10

INSERT users VALUES(DEFAULT, 'Tom5', '111', DEFAULT, 1);

# 一次添加多条记录

INSERT users VALUES(DEFAULT, 'Tom6', '111', DEFAULT, 1), (NULL, 'Rose', md5('213'), DEFAULT, 0);

登录后复制
方法二:

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

这个方法与第一种方式的区别在于,此方法可以使用子查询(SubQuery),此方法一次性只能插入一条记录。

例如:

1

INSERT users SET username='Ben', password='456';

登录后复制
方法三:

INSERT [INTO] tbl_name [(col_name, ...)] SELECT ...;

使用此方法可以将查询结果插入到指定数据表。

2. 单表更新记录UPDATE

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

例如:

1

2

3

4

5

6

# 所有记录的年龄都加5

UPDATE users SET age=age+5;

# 更新多列

UPDATE users SET age=age-id, sex=0;

# 更新id为偶数的记录

UPDATE users SET age=age+10 WHERE id%2=0;

登录后复制

3. 单表删除记录DELETE

DELETE FROM tbl_name [WHERE where_condition];

例如:

1

DELETE FROM users WHERE id=6;

登录后复制

即使在删除后,id号不连续,那么新增的数据还是会在最大的id号加一。

4. 查询表达时解析

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

每一个表达式表示想要的一列,必须至少有一个。多个烈之间以英文逗号分隔。星号(*)表示所有列。tbl_name.*可以表示命名表的所有列。查询表达式可以使用[AS] alias_name为其赋予别名。别名可用于GROUP BY,ORDER BY或HAVING字句。

例如:

1

2

3

4

5

6

7

8

9

10

11

# 查看MySQL版本

SELECT VERSION();

# 查看当前时间

SELECT NOW();

# 只查看前两列

SELECT id, username FROM users;

SELECT username, id FROM users;

SELECT users.id, users.username FROM users;

SELECT id AS userid, username AS uname FROM users;

# AS关键字可以省略,但是尽量写上,避免不必要的错误

SELECT id username FROM users;

登录后复制
字段的顺序和结果集都将影响查询出的结果集。

(1). WHERE

条件表达式

对记录进行过滤,如果没有指定WHERE字句,则显示所有记录。在WHERE表达式中,可以使用MySQL支持的函数或运算符。

(2). GROUP BY

查询结果分组

例如:

1

2

3

SELECT sex FROM users GROUP BY sex;

# 1表示按照SELECT语句中第一个出现的字段排序

SELECT sex FROM users GROUP BY 1;

登录后复制
(3). HAVING

分组条件

例如:

1

2

3

4

# 当HAVING语句有age的条件时,前面的SELECT中必须出现这个age字段

SELECT sex, age FROM users GROUP BY 1 HAVING age>35;

# 或者是一个聚合函数

SELECT sex, age FROM users GROUP BY 1 HAVING count(id)>=2;

登录后复制
(4). ORDER BY

对查询结果进行排序

例如:

1

2

3

4

# 按照id降序排列

SELECT * FROM users ORDER BY id DESC;

# 同时以两个字段排序age默认升序,id降序

SELECT * FROM users ORDER BY age, id DESC;

登录后复制
(5). LIMIT

限制查询结果返回的数量

例如:

1

2

3

4

5

6

7

8

9

10

# 从第1条开始返回2条记录

SELECT * FROM users LIMIT 2;

# 从第1条开始,偏移2条后,查询2条记录

SELECT * FROM users LIMIT 2 OFFSET 2;

# 从第4条开始(从0开始计数),返回2条记录

SELECT * FROM users LIMIT 3, 2;

SELECT * FROM users ORDER BY id DESC LIMIT 2, 2;

CREATE TABLE test(id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20));

# 将users年龄大于30的数据插入test表

INSERT test(username) SELECT username FROM users WHERE age>=30;

登录后复制

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

MySQL中的数据表压缩技术 MySQL中的数据表压缩技术 Jun 16, 2023 am 08:16 AM

MySQL是一种常见的关系型数据库,是许多网站和应用程序的核心组件。随着数据量越来越大,如何优化MySQL的性能就变得尤为重要。其中一个关键领域是数据表的压缩,在本文中我们将介绍MySQL中的数据表压缩技术。压缩表和非压缩表MySQL中有两种类型的数据表:压缩表和非压缩表。非压缩表是MySQL默认的表类型,它使用固定长度的行格式,对数据进行存储。这意味着数据

MySQL中的数据表DDL操作技术 MySQL中的数据表DDL操作技术 Jun 15, 2023 pm 07:55 PM

MySQL是一款非常流行的开源关系型数据库管理系统,它支持完整的DDL(数据定义语言)操作。DDL是用于定义和管理数据库中各种数据对象的语言,包括数据表、视图和索引等。对于数据库管理员和开发人员而言,熟练掌握MySQL中数据表DDL操作技术非常重要。本文将详细介绍MySQL中数据表DDL操作的技术和方法,并提供实际操作示例。一、创建数据表创建数据表是DDL中

mysql修改数据表名 mysql修改数据表名 Jun 20, 2023 pm 05:52 PM

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:“SHOW TABLES;”;2、修改表名,代码为:“ALTER TABLE 旧表名 RENAME [TO] 新表名;”。3、检查表名是否修改成功,代码为:“SHOW TABLES;”

MySQL中的数据表重载技巧 MySQL中的数据表重载技巧 Jun 15, 2023 pm 11:28 PM

MySQL是一种开源关系型数据库管理系统,它的基本功能在数据库设计、数据存储和管理方面非常优秀。在MySQL中,数据表是数据存储的最基本单元。在实际应用中,数据表的重载是一种非常常见的操作技巧,它可以帮助我们提高数据库的运行效率,提升系统的稳定性。本文将从MySQL中数据表重载的概念、原理和实践应用等方面详细介绍这一操作技巧。一、什么是数据表重载数据表重载是

利用MySQL的AVG函数计算数据表中数字列的平均值方法 利用MySQL的AVG函数计算数据表中数字列的平均值方法 Jul 24, 2023 pm 09:52 PM

利用MySQL的AVG函数计算数据表中数字列的平均值方法简介:MySQL是一种开源的关系型数据库管理系统,拥有丰富的内置函数来处理和计算数据。其中,AVG函数是用于计算数字列的平均值的函数。本文将介绍如何使用AVG函数来计算MySQL数据表中数字列的平均值,并提供相关的代码示例。一、创建示例数据表首先,我们需要创建一个示例数据表来进行演示。假设我们有一个名为

如何利用thinkorm实现数据表之间的关联查询 如何利用thinkorm实现数据表之间的关联查询 Aug 01, 2023 am 08:25 AM

如何利用thinkorm实现数据表之间的关联查询引言:在进行数据库开发中,经常会碰到需要在多个数据表之间进行关联查询的情况。利用thinkorm这一优秀的数据库ORM框架,可以轻松地实现数据表的关联查询,提高开发效率。本文将介绍如何利用thinkorm实现数据表之间的关联查询,并提供代码示例帮助读者更好地理解。一、基本概念在进行关联查询之前,首先需要了解th

如何实现MySQL底层优化:数据表的水平和垂直分割策略 如何实现MySQL底层优化:数据表的水平和垂直分割策略 Nov 08, 2023 pm 06:57 PM

如何实现MySQL底层优化:数据表的水平和垂直分割策略,需要具体代码示例引言:在大型应用场景下,MySQL数据库经常面临着海量数据的存储和查询压力。为了解决这个问题,MySQL提供了数据表的分割策略,包括水平分割(HorizontalPartitioning)和垂直分割(VerticalPartitioning)。本文将介绍如何实现MySQL底层优化,重

MySQL中如何使用MAX函数找到数据表中最大的数值 MySQL中如何使用MAX函数找到数据表中最大的数值 Jul 25, 2023 pm 09:49 PM

MySQL中如何使用MAX函数找到数据表中最大的数值引言:在MySQL中,我们经常需要对数据表进行各种查询和分析,其中包括找出数据表中的最大数值。使用MAX函数可以轻松地找到数据表中的最大值,并且在进一步处理数据时非常有用。本文将介绍如何使用MAX函数来找到数据表中最大的数值,并给出相应的代码示例。一、MAX函数简介MAX函数是MySQL中的一个聚合函数,用

See all articles