Mysql数据库:select from语句详解

  • 一、select from语句概述
  • 二、select from语句的基本用法
  • 三、select from语句的示例
    • 1、查询所有列
    • 2、查询特定列
    • 3、查询带有条件的数据(过滤)
    • 4、查询结果排序
    • 5、查询结果限制
    • 6、查询结果去重
    • 7、查询结果分组
    • 8、查询结果统计
    • 9、查询结果联合
    • 10、查询简单的计算
    • 11、查询别名
    • 12、NULL参与运算
    • 13、着重号(反引号)

The Begin点点关注,收藏不迷路

一、select from语句概述

select from语句用于从数据库中查询数据。它由两个关键字组成:select 和from。

select 关键字用于指定要查询的列,from关键字用于指定要查询的表。

通过结合使用这两个关键字,我们可以从数据库中选择特定的列和行进行查询。

二、select from语句的基本用法

下面是select from语句的基本语法:

SELECT column1, column2,FROM table_name;

其中,column1, column2, …是要查询的列名,可以是一个或多个列,用逗号分隔。

table_name是要查询的表名。

三、select from语句的示例

1、查询所有列

如果要查询表中的所有列,可以使用星号*代替列名。示例代码如下:

SELECT * FROM table_name;

2、查询特定列

如果只需要查询表中的特定列,可以在select 关键字后面指定列名。示例代码如下:

SELECT column1, column2 FROM table_name;

3、查询带有条件的数据(过滤)

如果需要筛选出满足特定条件的数据,可以使用WHERE子句。示例代码如下:

SELECT column1, column2 FROM table_name WHERE condition;

其中,condition是查询条件,可以使用比较运算符(如=、等)和逻辑运算符(如AND、OR等)组合成复杂的条件。

如:

1、查询满足多个条件的数据:SELECT 列名1, 列名2,FROM 表名 WHERE 条件1 AND 条件2;可以使用 AND 运算符连接多个条件,查询满足所有条件的数据。2、查询满足任意一个条件的数据:SELECT 列名1, 列名2,FROM 表名 WHERE 条件1 OR 条件2;可以使用 OR 运算符连接多个条件,查询满足任意一个条件的数据。3、查询不满足某个条件的数据:SELECT 列名1, 列名2,FROM 表名 WHERE NOT 条件;使用 NOT 关键字可以排除满足某个条件的数据,查询不满足该条件的数据。

4、查询结果排序

如果需要对查询结果进行排序,可以使用ORDER BY子句。示例代码如下:

SELECT column1, column2 FROM table_name ORDER BY column1 ASC;

其中,column1是要排序的列名,ASC表示升序(从小到大),DESC表示降序(从大到小)。

如:

1、升序排序:SELECT 列名1, 列名2, … FROM 表名 ORDER BY 列名 ASC;使用 ORDER BY 关键字可以按照指定列的值进行升序排序。2、降序排序:SELECT 列名1, 列名2, … FROM 表名 ORDER BY 列名 DESC;使用 ORDER BY 关键字可以按照指定列的值进行降序排序。

5、查询结果限制

1、查询前几条数据:SELECT 列名1, 列名2,FROM 表名 LIMIT 数量;使用 LIMIT 关键字可以限制查询结果返回的数据数量。2、查询指定范围的数据:SELECT 列名1, 列名2,FROM 表名 LIMIT 起始位置, 数量;

例子:

如果只需要查询结果的前几行,可以使用LIMIT子句。示例代码如下:

SELECT column1, column2 FROM table_name LIMIT 10;

其中,10表示要查询的行数。

6、查询结果去重

SELECT DISTINCT 列名 FROM 表名;或者SELECT 列名1 DISTINCT 列名2 FROM 表名;

使用 DISTINCT 关键字可以去除查询结果中的重复数据。

7、查询结果分组

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

使用 GROUP BY 关键字可以将查询结果按照指定列进行分组。

8、查询结果统计

SELECT COUNT(列名) FROM 表名;

使用 COUNT 函数可以统计指定列的数据数量。

9、查询结果联合

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

使用 UNION 关键字可以将多个查询结果合并为一个结果集。

10、查询简单的计算

1、检索并计算列的总和:

SELECT SUM(column_name) FROM table_name;

2、检索并计算列的平均值:

SELECT AVG(column_name) FROM table_name;

3、检索并计算列的最大值:

SELECT MAX(column_name) FROM table_name;

4、检索并计算列的最小值:

SELECT MIN(column_name) FROM table_name;

11、查询别名

1、为列取别名

在SELECT语句中,我们可以为查询结果中的列取一个自定义的别名。这样做的好处是,可以让查询结果更加清晰明了,尤其是在查询结果中存在多个列时,给列取别名可以让查询结果更具可读性。

示例:

假设我们有一张名为”students”的表,包含了学生的姓名(name)、年龄(age)和性别(gender)三个列。现在我们想查询该表中所有学生的姓名和年龄,并为这两个列取别名。

SELECT name AS 姓名, age AS 年龄FROM students;## 其中,别名可以使用双引号" "括起来。

我们使用”AS”关键字为name列取了别名”姓名”,为age列取了别名”年龄”。这样查询结果中的列名就变为了”姓名”和”年龄”,而非原本的”name”和”age”。

2、为表取别名

除了为列取别名外,我们还可以为表取别名。当我们在一个查询中使用了多个表时,为表取别名可以简化查询语句的编写,提高代码的可读性。

示例:

假设我们有一张名为”students”的表和一张名为”scores”的表,分别包含了学生信息和考试成绩。现在我们想查询学生的姓名和对应的成绩,并为这两张表取别名。

SELECT s.name AS 姓名, sc.score AS 成绩FROM students AS sJOIN scores AS sc ON s.id = sc.student_id;

我们使用”AS”关键字为students表取了别名”s”,为scores表取了别名”sc”。这样在查询语句中,我们可以直接使用别名来引用表名,而无需写完整的表名。

3、使用别名进行计算

除了简单地为列或表取别名外,我们还可以使用别名进行一些计算操作。这样可以在查询结果中得到一些计算后的值,而不仅仅是原始的列值。

示例:

假设我们有一张名为”products”的表,包含了产品的名称(name)、价格(price)和数量(quantity)三个列。现在我们想查询每个产品的总价,并为总价取一个别名”总价”。

SELECT name, price, quantity, (price * quantity) AS 总价FROM products;

我们使用了括号将”price * quantity”这个计算表达式括起来,并为它取了一个别名”总价”。这样查询结果中就会包含一个名为”总价”的列,其中的值为每个产品的价格和数量相乘的结果。

12、NULL参与运算

在MySQL中,NULL是一个特殊的值,用于表示缺失或未知的数据。以下是关于MySQL中NULL的一些详细说明:

1NULL不等同于0或空字符串:NULL表示缺少值,而0和空字符串都是具体的值。因此,NULL0或空字符串进行比较时,结果将始终为不相等。2NULL可以用于所有数据类型:NULL可以用于任何数据类型,包括整数、浮点数、字符串、日期等。3NULL的存储空间:在MySQL中,NULL值不占用存储空间。这意味着,将NULL存储在一个列中,不会占用额外的存储空间。4NULL的比较:在MySQL中,无法通过使用等于(=)或不等于()运算符来比较NULL值。相反,必须使用IS NULLIS NOT NULL运算符来检查NULL值。5NULL的使用场景:NULL可以用于各种情况,例如表示未知的数据、缺失的数据、未定义的数据等。例如,在一个学生表中,如果某个学生的出生日期未知,可以将该字段设置为NULL

NULL的注意事项:在使用NULL时需要注意以下几点:

1、在数据库设计中,应该避免使用NULL作为主键或唯一键,因为NULL不是唯一的值。2、在查询中,应该谨慎使用NULL值,因为与NULL值相关的操作可能会导致意外的结果。3、在使用NULL值进行计算时,结果通常也是NULL。因此,在进行计算之前,应该先检查NULL值并相应地处理。

13、着重号(反引号)

在MySQL中,反引号 是用来引用数据库、表、列名等标识符的符号。它的作用主要有以下几个方面:

1、区分保留字:

有些词是MySQL的保留字,例如SELECT、FROM、WHERE等,如果你使用这些保留字作为数据库、表、列名等标识符,就会导致语法错误。为了避免这种情况,可以使用反引号将保留字括起来,使其被视为标识符而不是保留字。

例如,如果你想创建一个名为select的表,可以使用以下语句:

CREATE TABLE `select` (`id` INT,`name` VARCHAR(50));

2、区分大小写:

在MySQL中,默认是不区分大小写的,也就是说,name、NAME、NaMe都被认为是相同的标识符。如果你希望保留大小写的特性,可以使用反引号将标识符括起来。

例如,如果你创建了一个名为MyTable的表,可以使用以下语句查询该表:

SELECT * FROM `MyTable`;

3、允许使用特殊字符:

如果你的标识符包含特殊字符,例如空格、连字符、点号等,可以使用反引号括起来,使其被正确解析。

例如,如果你创建了一个名为my-table的表,可以使用以下语句查询该表:

SELECT * FROM `my-table`;

需要注意的是,使用反引号括起来的标识符在SQL语句中是区分大小写的。因此,如果你在创建表时使用了MyTable作为表名,那么在查询时必须使用完全相同的大小写,否则会导致语法错误。

The End点点关注,收藏不迷路