SQL语言入坑—1.数据的检索、排序、过滤、分组

本文详细介绍了SQL语言在MySQL数据库中的应用,包括使用SELECT语句进行数据检索,通过ORDER BY进行排序,利用WHERE进行数据过滤,以及如何运用GROUP BY和HAVING进行数据分组。文章还深入讲解了通配符、正则表达式以及各种聚合函数的使用,是SQL入门的好帮手。
摘要由CSDN通过智能技术生成

一、MYSQL与SQL是什么?

  MySQL是一种数据库管理系统。它有如下优点:

为什么有那么多的公司和开发人员使用MySQL?

  1. 成本—MySQL是开放源代码的,一般可以免费使用(甚至可以免费修改)
  2. 性能—MySQL执行很快(非常快)。.
  3. 可信赖—某些非常重要和声望很高的公司、站点使用MySQL,这些公司和站点都用MySQL来处理自己的重要数据。
  4. 简单—MySQL很容易安装和使用。

  SQL是结构化查询语言( Structured QueryLanguage)的缩写。SQL是一种专门用来与数据库通信的语言。设计SQL的目的是很好地完成一项任务,即提供一种从数据库中读写数据的简单有效的方法。

SQL有如下的优点。

  1. SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SOL,所以,学习此语言使你几乎能与所有数据库打交道。
  2. SQL简单易学。它的语句全都是由描述性很强的英语单词组成,而且这些单词的数目不多。
  3. SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。

下面介绍MYSQL数据库管理系统下支持的SQL语言。

二、SQL语言

1.USE选择数据库

  使用USE打开数据库,才能读取其中的数据

USE database_name;

2. SHOW查看MySQL数据库、表和内部信息

返回可用数据库的一个列表。

SHOW DATABASES;

返回当前选择的数据库内可用表的列表。

SHOW TABLES;

返回当前选择的表的表名,它对每个字段返回一行,行中包含字段名、数
据类型、是否允许NULL、键信息、默认值以及其他信息(如字段cust_id的auto increment)。

SHOW COLUMNS 
FROM customers;

在这里插入图片描述
DESCRIBE customers;SHOW COLUMNS FROM customers;的一种快捷方式。
用于显示广泛的服务器状态信息;

SHOW STATUS;

分别用来显示创建特定数据库或表的MySQL语句;

SHOW CREATE DATABASE;
SHOW CREATE TABLE;

用来显示授予用户(所有用户或特定用户)的安全权限;

SHOW GRANTS;

用来显示服务器错误或警告消息。

SHOW ERRORS;
SHOW WARNINGS;

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

  为了使用SELECT检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。

3.1 检索单个列
SELECT prod_name 
FROM products;

利用SELECT语句从products表中检索一个名为prod_name的列。所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。

3.2 检索多个列
SELECT prod_id, prod_name,prod_price 
FROM products;

要想从一个表中检索多个列,使用相同的SELECT语句。唯一的不同是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔。

3.3 检索所有列
SELECT * 
FROM products;

如果给定一个通配符(*),则返回表中所有列。

检索未知列是使用通配符有一个大优点。由于不明确指定列名((因为星号检索每个列),所以能检索出名字未知的列。

3.4 检索不同的行—DISTINCT
SELECT DISTINCT vend_id 
FROM products;

使用DISTINCT关键字。此关键字指示MySQL只返回不同的值。如果使用DISTINCT关键字,它必须直接放在列名的前面。

3.5 限制结果—LIMIT
SELECT prod_name 
FROM products LIMIT 5;

使用SELECT语句检索单个列。LIMIT 5指示MySQL返回不多于5行。

SELECT prod_name 
FROM products LIMIT 5,5;

LIMIT 5,5指示MySQL返回从行5开始的5行。第一个数指定检索的开始行,第二个数指定检索的行数。

4. 使用SELECT语句的ORDER BY子句,根据需要排序检索出的数据

  为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。默认,按照升序排序(A-Z)。ORDER BY子句必须是SELECT语句中的最后一条子句。可根据需要,利用它在一个或多个列上对数据进行排序。

4.1 排序数据
SELECT prod_name 
FROM products 
ORDER BY prod_name;

利用SELECT语句从products表中检索一个名为prod_name的列,并且以ORDER BY子句指示MySQL对prod_name列以字母顺序排序数据.

4.2 按多个列排序
SELECT prod_id,prod_price,prod_name 
FROM products 
ORDER BY prod_price,prod_name;

选择三个列并按其中两个列对结果进行排序,列名之间用逗号分开即可
在这里插入图片描述
先按第一个列进行排序,相同在对相同的行使用后面的列进行排序。

4.3 指定排序方向—DESC与ASC

  为了进行降序排序,必须指定DESC关键字。ASC(升序)是默认的关键字。

SELECT prod_id,prod_price,prod_name 
FROM products 
ORDER BY prod_price DESC;

以价格降序排序

SELECT prod_id,prod_price,prod_name 
FROM products 
ORDER BY prod_price DESC,prod_name;

DESC关键字只应用到直接位于其前面的列名。prod_price列指定DESC,对prod_name列不指定。因此,prod_price列以降序排序,而prod_name列(在每个价格内)仍然按标准的升序排序。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值