您的位置:首页 > 文旅 > 美景 > select简单查询

select简单查询

2024/10/5 19:09:24 来源:https://blog.csdn.net/qq_55909023/article/details/139663335  浏览:    关键词:select简单查询

SELECT 简单查询

假如我们有一张表,表名为 students,如下所示:

+----+--------+------+---------------+
| id | name   | age  | department_id |
+----+--------+------+---------------+
|  1 | 张三   |   20 |           101 |
|  2 | Alice  |   21 |           102 |
|  3 | 李四   |   22 |           103 |
|  4 | Bob    |   19 |           101 |
|  5 | 张三   |   20 |           102 |
|  6 | Frank  |   21 |           103 |
|  7 | Grace  |   22 |           101 |
|  8 | Hannah |   20 |           102 |
|  9 | Isaac  |   21 |           103 |
| 10 | 张三   |   22 |           101 |
+----+--------+------+---------------+

查询指定列

以下是 SELECT 命令的基本语法:

SELECT 列名1, 列名2
FROM 表名;

接下来我们试着查询一下表中的 name 和 age:

select name,age from students;+--------+------+
| name   | age  |
+--------+------+
| 张三   |   20 |
| Alice  |   21 |
| 李四   |   22 |
| Bob    |   19 |
| 张三   |   20 |
| Frank  |   21 |
| Grace  |   22 |
| Hannah |   20 |
| Isaac  |   21 |
| 张三   |   22 |
+--------+------+
10 rows in set (0.00 sec)

看起来十分的臃肿?有重复值!!!别急,接下来介绍一下如何去重。

这里有细心的同学发现查询的时候字母都是小写。没错,就是你想的那样,关键字不区分大小写 select 和 SELECT 是一样的。

DISTINCT 去重

以下是 DISTINCT 命令的基本语法:

SELECT DISTINCT 列名1, 列名2
FROM 表名;

来,展示一下:

select distinct name from students;+--------+
| name   |
+--------+
| 张三   |
| Alice  |
| 李四   |
| Bob    |
| Frank  |
| Grace  |
| Hannah |
| Isaac  |
+--------+
8 rows in set (0.00 sec)

是不是比刚刚舒服多了。还有些同学会想我想查看整个表,这样一个一个写列名太麻烦了,有没有简单的方法?有!当然有!

查找所有列

星号( * )代表所有的意思:

select distinct * from students;+----+--------+------+---------------+
| id | name   | age  | department_id |
+----+--------+------+---------------+
|  1 | 张三   |   20 |           101 |
|  2 | Alice  |   21 |           102 |
|  3 | 李四   |   22 |           103 |
|  4 | Bob    |   19 |           101 |
|  5 | 张三   |   20 |           102 |
|  6 | Frank  |   21 |           103 |
|  7 | Grace  |   22 |           101 |
|  8 | Hannah |   20 |           102 |
|  9 | Isaac  |   21 |           103 |
| 10 | 张三   |   22 |           101 |
+----+--------+------+---------------+
10 rows in set (0.00 sec)

这样就很容易查看整个表

为列设置别名

什么?老板让我把这些列名的查新结果变成中文?

别急,我们可以用as为列设置别名。我们以 name 和 age 为例。

select distinct 
name as "姓名" ,
age "年龄"  
from students;
+--------+------+
| 姓名   | 年龄 |
+--------+------+
| 张三   |   20 |
| Alice  |   21 |
| 李四   |   22 |
| Bob    |   19 |
| Frank  |   21 |
| Grace  |   22 |
| Hannah |   20 |
| Isaac  |   21 |
| 张三   |   22 |
+--------+------+
9 rows in set (0.00 sec)

细心的同学可能发现 name 后面有 as 而 age 后面却没有。

这是没关系的,两种方式都对。

条件查询

顾名思义,就是按照某个特定的条件进行查询。只有符合条件的才能被输出。

以下是 WHERE 命令的基本语法:

SELECT DISTINCT 列名1, 列名2
FROM 表名
WHERE 条件表达式;

假如我们查询年龄在 20 岁以上的同学所有信息:

select distinct * from students where age > 20;+----+-------+------+---------------+
| id | name  | age  | department_id |
+----+-------+------+---------------+
|  2 | Alice |   21 |           102 |
|  3 | 李四  |   22 |           103 |
|  6 | Frank |   21 |           103 |
|  7 | Grace |   22 |           101 |
|  9 | Isaac |   21 |           103 |
| 10 | 张三  |   22 |           101 |
+----+-------+------+---------------+

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com