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的一些详细说明:
1、NULL不等同于0或空字符串:NULL表示缺少值,而0和空字符串都是具体的值。因此,NULL与0或空字符串进行比较时,结果将始终为不相等。2、NULL可以用于所有数据类型:NULL可以用于任何数据类型,包括整数、浮点数、字符串、日期等。3、NULL的存储空间:在MySQL中,NULL值不占用存储空间。这意味着,将NULL存储在一个列中,不会占用额外的存储空间。4、NULL的比较:在MySQL中,无法通过使用等于(=)或不等于()运算符来比较NULL值。相反,必须使用IS NULL或IS NOT NULL运算符来检查NULL值。5、NULL的使用场景: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点点关注,收藏不迷路 |