SELECT语句的基础用法(1)

本文详细介绍了SQL中的SELECT语句用于从数据库表中检索数据的基本用法,包括选择单个或多个列、检索所有列、去除重复行以及使用LIMIT限制返回行数。通过实例演示了如何使用DISTINCT关键字获取唯一值,以及LIMIT子句如何实现数据的分页显示。强调了避免使用通配符*以提高查询效率,并提醒注意LIMIT子句的行索引是从0开始的。
摘要由CSDN通过智能技术生成

1 SELECT语句

  SELECT语句是从表中检索一个或多个数据列

为了使用SELECT检索表数据,必须至少给出两条信息


1.想要选择什么


2.从什么地方选择

1.1 检索单个列

  我们从做简单的SQL SELECT语句开始介绍,输出单个列的语法为SELECT 列名称 FROM 表名称; 此语句如下所示:

mysql> SELECT Author_name FROM author_information;
+-----------------+
| Author_name     |
+-----------------+
| 极限剑术        |
| 秃头程序员      |
| 野兽先辈        |
| 大美妞          |
| 张三            |
+-----------------+
5 rows in set (0.00 sec)

  上述语句利用SELECT语句从表author _information中检索Author _name的列,然后输出了五行数据

1.2 检索多个列

  检索多个列则需要将列名以","来分割,输出多个列的语法为SELECT 列名称,列名称,列名称... FROM 表名; 请看如下所示

mysql> SELECT Author_name,Author_sex,Author_age From author_information;
+-----------------+------------+------------+
| Author_name     | Author_sex | Author_age |
+-----------------+------------+------------+
| 极限剑术        | 男         | 22         |
| 秃头程序员      | 男         | 35         |
| 野兽先辈        | 男         | 24         |
| 大美妞          | 女         | 24         |
| 张三            | 男         | 25         |
+-----------------+------------+------------+
5 rows in set (0.00 sec)

  上述语句利用SELECT语句从表author _ information中检索 Author_ name,Author _ sex和Author _ age三个列,输出五行数据

1.3 检索所有列

  在上一篇文章讲过,使用*可以将表格中的所有列都检索出来,语法为SELECT * FROM 表名,如下所示

mysql> SELECT * FROM author_information;
+-----------------+------------+------------+-------------------+--------------+------------+
| Author_name     | Author_sex | Author_age | Author_occupation | Author_hobby | Author_key |
+-----------------+------------+------------+-------------------+--------------+------------+
| 极限剑术        | 男         | 22         | 学生              | 睡觉         |      10001 |
| 秃头程序员      | 男         | 35         | 程序员            | 吃饭         |      10002 |
| 野兽先辈        | 男         | 24         | 学生              | 吼叫         |      10003 |
| 大美妞          | 女         | 24         | 模特              | 化妆         |      10004 |
| 张三            | 男         | 25         | 逃犯              | 犯罪         |      10005 |
+-----------------+------------+------------+-------------------+--------------+------------+
5 rows in set (0.00 sec)

使用通配符 除非是你确实需要表中的每个列,否则最好不要使用*通配符,虽然通配符非常的省事,但是检索出不需要的列会大大降低检索效率和应用程序的性能

1.4 检索不同的行

  如果我使用SELECT 列名 FROM 表名;检索出来的值应该是所有的年龄,但是我想看有多少中不同的年龄呢,这时,我们就可以使用DISTINCT关键字,请看下面例子

mysql> SELECT Author_age FROM author_information;
+------------+
| Author_age |
+------------+
| 22         |
| 35         |
| 24         |
| 24         |
| 25         |
+------------+
5 rows in set (0.11 sec)

mysql> SELECT DISTINCT Author_age FROM author_information;
+------------+
| Author_age |
+------------+
| 22         |
| 35         |
| 24         |
| 25         |
+------------+
4 rows in set (0.00 sec)

  从结果上来看第一个查询中有5个结果,而第二个查询中有4个结果,这是因为年龄中的24有重复的,使用DISTINCT关键字之后会把重复的行合并成一行

不能部分使用DISTINCT DISTINCT关键字应用与所有列而不仅仅是前置的列.如果给出SELECT DISTINCT Author_age,Author_name FROM author_information;除非指定的两个列都不同,否则所有行都会被检索出来

1.5 限制语句

  SELECT语句可以指定返回一行或者是前几行,使用LIMIT子句可以打到效果,请看下面的例子

mysql> SELECT Author_age
    -> FROM author_information
    -> LIMIT 3;
+------------+
| Author_age |
+------------+
| 22         |
| 35         |
| 24         |
+------------+
3 rows in set (0.00 sec)

  加上LIMIT之后就只返回了前3行的数据,而且LIMIT子句可以指定从第几行开始,显示几行,看下列例子

mysql> SELECT Author_age
-> FROM author_information
-> LIMIT 3,2;
+------------+
| Author_age |
+------------+
| 24         |
| 25         |
+------------+
2 rows in set (0.00 sec)

  这个效果就是从第4行开始开始显示后两行数据

值得注意的是,数据库中的行数是从第0行开始的,所以代码中写的3在实际意义中应该是第四行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值