广告
返回顶部
首页 > 资讯 > 数据库 >怎么使用MySQL中的select、distinct、limit
  • 524
分享到

怎么使用MySQL中的select、distinct、limit

2023-06-25 14:06:33 524人浏览 薄情痞子
摘要

这篇文章主要讲解了“怎么使用MySQL中的select、distinct、limit”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Mysql中的select、distinc

这篇文章主要讲解了“怎么使用MySQL中的select、distinct、limit”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Mysql中的select、distinct、limit”吧!

    1、简介

    这篇博客将会非常基础,如果有mysql经验的可以跳过,写这篇博客的原因是给初学者看的。下面将会讲解如何使用select查看指定表的单个列、多个列以及全部列。

    首先准备一张表,表结构如下所示:

    SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',  `name` varchar(255) NOT NULL COMMENT '用户名',  `age` int(11) NOT NULL COMMENT '年龄',  `sex` smallint(6) NOT NULL COMMENT '性别',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

    表数据如下所示:

    INSERT INTO `user` VALUES (1, '李子捌', 18, 1);INSERT INTO `user` VALUES (2, '张三', 22, 1);INSERT INTO `user` VALUES (3, '李四', 38, 1);INSERT INTO `user` VALUES (4, '王五', 25, 1);INSERT INTO `user` VALUES (5, '六麻子', 13, 0);INSERT INTO `user` VALUES (6, '田七', 37, 1);SET FOREIGN_KEY_CHECKS = 1;

    注意在Mysql4.1之后,数据库关键字是完全不区分大小写;数据库名、表名、列名默认不区分大小写,但是可以修改(不建议修改)。

    2、select

    2.1 查询单个列

    首先使用use指定需要操作的数据库。

    mysql> use liziba;Database changed

    接着使用selectuser表中查询name列,select紧跟着列名称,from后面紧跟着表名称。

    select column_name from table_name;mysql> select name from user;+--------+| name   |+--------+| 李子捌 || 张三   || 李四   || 王五   || 六麻子 || 田七   |+--------+6 rows in set (0.00 sec)

    2.2 查询多个列

    查询多个列和单个列的区别在于,select后面紧跟多个列名,用英文逗号分割即可。

    select column_name1,column_name2,column_name3 from table_name;

    mysql> select name,age from user;+--------+-----+| name   | age |+--------+-----+| 李子捌 |  18 || 张三   |  22 || 李四   |  38 || 王五   |  25 || 六麻子 |  13 || 田七   |  37 |+--------+-----+6 rows in set (0.00 sec)

    2.3 查询所有列

    查询所有列有两种方式,第一种是上面两种推导出的方式,列出所有的列名。

    mysql> select id,name,age,sex from user;+----+--------+-----+-----+| id | name   | age | sex |+----+--------+-----+-----+|  1 | 李子捌 |  18 |   1 ||  2 | 张三   |  22 |   1 ||  3 | 李四   |  38 |   1 ||  4 | 王五   |  25 |   1 ||  5 | 六麻子 |  13 |   0 ||  6 | 田七   |  37 |   1 |+----+--------+-----+-----+6 rows in set (0.00 sec)

    第二种,也是部分程序员使用的最多的一句SQL,使用 *** 通配符**代替表的所有列。

    select * from table_name;

    mysql> select * from user;+----+--------+-----+-----+| id | name   | age | sex |+----+--------+-----+-----+|  1 | 李子捌 |  18 |   1 ||  2 | 张三   |  22 |   1 ||  3 | 李四   |  38 |   1 ||  4 | 王五   |  25 |   1 ||  5 | 六麻子 |  13 |   0 ||  6 | 田七   |  37 |   1 |+----+--------+-----+-----+6 rows in set (0.00 sec)

    提示:是程序员使用的大忌, 如果我们不需要获取表的所有列且表的列名是移植的,就不应该使用查询全部数据,而是应该指定数据库列查询,这样可以提升查询的性能。

    3、distinct

    如果需要查询列值不重复的数据,可以使用distinct关键字去重。

    我们在上面的表中插入一条新的数据,数据age和李子捌相等,sex也相同。

    mysql> insert into user (name, age, sex) values('谢礼', 18, 1);Query OK, 1 row affected (0.01 sec)

    此时可以看到年龄列有相等的值

    mysql> select * from user;+----+--------+-----+-----+| id | name   | age | sex |+----+--------+-----+-----+|  1 | 李子捌 |  18 |   1 ||  2 | 张三   |  22 |   1 ||  3 | 李四   |  38 |   1 ||  4 | 王五   |  25 |   1 ||  5 | 六麻子 |  13 |   0 ||  6 | 田七   |  37 |   1 ||  7 | 谢礼   |  18 |   1 |+----+--------+-----+-----+7 rows in set (0.00 sec)

    此时我们想获取user表中的用户有哪些年龄。我们可以使用distinct关键字,应用于需要去重的列前面。

    mysql> select distinct age from user;+-----+| age |+-----+|  18 ||  22 ||  38 ||  25 ||  13 ||  37 |+-----+6 rows in set (0.00 sec)

    这里有一个问题需要注意distinct关键字去重会作用于所有的字段,如果distinct关键字后面跟了多个字段,那么多个字段的值都不相等才算不重复。

    比如说user表中不存在age,name同时都不重复的数据,此时distinct关键字并不是没生效,而是本身就不存在。

    mysql> select distinct age,name from user;+-----+--------+| age | name   |+-----+--------+|  18 | 李子捌 ||  22 | 张三   ||  38 | 李四   ||  25 | 王五   ||  13 | 六麻子 ||  37 | 田七   ||  18 | 谢礼   |+-----+--------+7 rows in set (0.00 sec)

    如果distinct关键字后跟的字段值都不相等,那么distinct关键字仍然能去重。比如李子捌和谢礼的年龄和性别均相等,此时distinct关键字会过滤一条数据。

    mysql> select distinct age,sex from user;+-----+-----+| age | sex |+-----+-----+|  18 |   1 ||  22 |   1 ||  38 |   1 ||  25 |   1 ||  13 |   0 ||  37 |   1 |+-----+-----+6 rows in set (0.00 sec)

    4、limit

    前面的查询会返回满足条件的所有记录,如果我们只需要指定数量的记录,可以使用limit关键字限制返回的行;这种场景多用于数据分页。

    limit的取值需大于等于0的整数 ,如果传入负数和小数会报错。

    mysql> select * from user limit 0;Empty set (0.00 sec)mysql> select * from user limit 1;+----+--------+-----+-----+| id | name   | age | sex |+----+--------+-----+-----+|  1 | 李子捌 |  18 |   1 |+----+--------+-----+-----+1 row in set (0.00 sec)

    如果limit给定的值大于表的行记录值,那么将会返回所有数据。比如我们通过select count(1)查询user表的记录数值,一共7条数据,此时我们传入8,并不会报错,MySQL将会放回user表中的所有数据。

    mysql> select count(1) from user;+----------+| count(1) |+----------+|        7 |+----------+1 row in set (0.01 sec)mysql> select * from user limit 8;+----+--------+-----+-----+| id | name   | age | sex |+----+--------+-----+-----+|  1 | 李子捌 |  18 |   1 ||  2 | 张三   |  22 |   1 ||  3 | 李四   |  38 |   1 ||  4 | 王五   |  25 |   1 ||  5 | 六麻子 |  13 |   0 ||  6 | 田七   |  37 |   1 ||  7 | 谢礼   |  18 |   1 |+----+--------+-----+-----+7 rows in set (0.00 sec)

    limit可以跟两个参数分别表示起始值和结束值,闭区间(包含起始值和结束值)。如果跟一个参数,则表示结束值,起始值默认为0。 注意MySQL数据的索引起始值为0。

    limit 2 , 4表示查询第三条数据到第五条数据,其行号为2到4。

    mysql> select * from user limit 2, 4;+----+--------+-----+-----+| id | name   | age | sex |+----+--------+-----+-----+|  3 | 李四   |  38 |   1 ||  4 | 王五   |  25 |   1 ||  5 | 六麻子 |  13 |   0 ||  6 | 田七   |  37 |   1 |+----+--------+-----+-----+4 rows in set (0.00 sec)

    感谢各位的阅读,以上就是“怎么使用MySQL中的select、distinct、limit”的内容了,经过本文的学习后,相信大家对怎么使用MySQL中的select、distinct、limit这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

    您可能感兴趣的文档:

    --结束END--

    本文标题: 怎么使用MySQL中的select、distinct、limit

    本文链接: https://www.lsjlt.com/news/305302.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 怎么使用MySQL中的select、distinct、limit
      这篇文章主要讲解了“怎么使用MySQL中的select、distinct、limit”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用MySQL中的select、distinc...
      99+
      2023-06-25
    • MySQL之select、distinct、limit的使用
      目录1、简介2、select2.1 查询单个列2.2 查询多个列2.3 查询所有列3、distinct4、limit 1、简介 这篇博客将会非常基础,如果有MySQL经验的...
      99+
      2022-11-12
    • MySQL中select limit怎么使用
      在MySQL中,SELECT语句的LIMIT子句用于限制查询结果的数量。使用LIMIT子句的基本语法如下:SELECT 列名...
      99+
      2023-10-19
      MySQL
    • SQL select distinct怎么使用
      使用SELECT DISTINCT语句可以返回表中唯一不重复的值。语法如下:```sqlSELECT DISTINCT 列名...
      99+
      2023-08-14
      SQL
    • MySQL中Select Limit使用方法
      本篇文章给大家主要讲的是关于MySQL中Select Limit使用方法的内容,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL中Select Limit使用方法对大家多少有点参考价值吧。Th...
      99+
      2022-10-18
    • mysql中distinct怎么用
      mysql中distinct的使用方法:1.在终端命令行中启动mysql;2.使用“mysql -u root -p”登录mysql数据库;3.打开并进入数据表;4.使用distinct函数来查询不重复的数据。具体步骤如下:首先,在终端命令...
      99+
      2022-10-22
    • mysql中的limit怎么是使用
      这篇文章主要介绍“mysql中的limit怎么是使用”,在日常操作中,相信很多人在mysql中的limit怎么是使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql中...
      99+
      2022-10-19
    • oracle中的distinct怎么使用
      在Oracle中,可以使用DISTINCT关键字来对查询结果进行去重。DISTINCT关键字应该紧跟在SELECT语句之后,...
      99+
      2023-08-15
      oracle distinct
    • MySQL中distinct的使用方法【转】
      一、基本使用 distinct一般是用来去除查询结果中的重复记录的,而且这个语句在select、insert、delete和update中只可以在select中使用,具体的语法如下: select distinct ex...
      99+
      2019-06-11
      MySQL中distinct的使用方法【转】
    • mysql中limit查询方法怎么使用
      这篇文章主要介绍“mysql中limit查询方法怎么使用”,在日常操作中,相信很多人在mysql中limit查询方法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql中limit查询方法怎么使用...
      99+
      2023-07-05
    • MySQL的select语句怎么使用
      这篇“MySQL的select语句怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL的select语...
      99+
      2023-06-27
    • mysql中limit的使用方法
      本篇文章为大家展示了mysql中limit的使用方法,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。limit语法支持两个参数,offset和limit,前者表示偏移...
      99+
      2022-10-18
    • mysql中distinct的作用是什么
      本篇文章给大家分享的是有关mysql中distinct的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  1.在count 不重复的...
      99+
      2022-10-18
    • thinkphp中的distinct怎么用
      本篇内容主要讲解“thinkphp中的distinct怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“thinkphp中的distinct怎么用”吧!在thinkphp中,distinct(...
      99+
      2023-06-30
    • MySQL中的distinct与group by如何使用
      这篇文章主要讲解了“MySQL中的distinct与group by如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL中的distinct与group by...
      99+
      2023-07-05
    • mysql的select语句中in怎么用
      本篇内容介绍了“mysql的select语句中in怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
      99+
      2022-10-19
    • MySQL中limit的用法是什么
      在MySQL中,LIMIT是一个用于限制查询结果返回的关键字。它可以用于从查询结果中选择指定数量的行。LIMIT的语法如下:SELE...
      99+
      2023-08-21
      MySQL limit
    • MySQL中select语法的使用
      本篇内容介绍了“MySQL中select语法的使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
      99+
      2022-10-18
    • MySQL中的distinct与groupby比较使用方法
      目录distinct的使用distinct用法distinct 多列去重group by的使用单列去重多列去重区别示例distinct和group by原理隐式排序先说大致的结论 :...
      99+
      2023-03-10
      MySQL distinct与group by MySQL distinct MySQL group by
    • MySQL中的LIMIT语句有什么用
      小编给大家分享一下MySQL中的LIMIT语句有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!问题为了故事的顺利发展,我们...
      99+
      2022-10-18
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作