SQL 经典语句

下面是SQL经典语句的完整攻略。

介绍

SQL是Structured Query Language的缩写,Structured Query Language即结构化查询语言,是关系型数据库系统的标准语言。SQL经典语句是SQL语言中的重要部分,能够帮助开发者快速高效的管理数据,操作数据库。

SQL语句分类

SQL语句主要分为以下几类:

  • 数据查询语言(Data Query Language,DQL),用于查询数据表中的数据。
  • 数据操作语言(Data Operate Language,DOL),用于添加、修改和删除数据表中的数据。
  • 数据定义语言(Data Definition Language,DDL),用于创建、修改和删除数据表的结构。
  • 事务控制语言(Transaction Control Language,TCL),用于控制事务的提交和回滚。

DQL语句

DQL语句用于查询数据表中的数据,常见的DQL语句有SELECT、FROM、WHERE、GROUP BY、HAVING和ORDER BY。下面是具体的攻略。

SELECT语句

SELECT语句用于从数据表中选取数据,可以选择所有列或选择特定列,也可以根据一定条件搜索数据。使用基本SELECT语句的语法格式如下:

SELECT column1, column2, ... FROM table_name;

其中,column1, column2, ... 表示要选择的列名,可以使用 * 代替选择所有列;table_name是要查询的表名。比如,查询一个表中所有的列,使用语句:

SELECT * FROM table_name;

WHERE语句

WHERE语句用于指定一个条件,从而搜索满足该条件的数据行。使用WHERE语句的基本格式如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

其中,condition用于限制要返回的行数,可以使用 =、<、>、<=、>=、LIKE、IN等运算符。比如,查询一个表中年龄大于18岁的所有人的姓名,可以使用语句:

SELECT name FROM table_name WHERE age > 18;

GROUP BY语句

GROUP BY语句用于将结果集按照一个或多个列进行分组。使用GROUP BY语句的基本格式如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition
GROUP BY column_name

其中,column_name表示要进行分组的列名,可以分组多个列,分组后只返回每组的一行数据。比如,统计一个表中每种物品的售价总和,可以使用语句:

SELECT item, SUM(price) FROM table_name GROUP BY item;

HAVING语句

HAVING语句用于对分组进行筛选,WHERE语句只能对行进行筛选。使用HAVING语句的基本格式如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition
GROUP BY column_name
HAVING condition

其中,HAVING语句中的condition与WHERE语句中的condition类似,但是只能用于分组后的结果集筛选。比如,统计一个表中每种物品的售价总和,并筛选出售价总和大于100的组,可以使用语句:

SELECT item, SUM(price)
FROM table_name
GROUP BY item
HAVING SUM(price) > 100;

ORDER BY语句

ORDER BY语句用于对查询结果进行排序,默认为升序排序。使用ORDER BY语句的基本格式如下:

SELECT column1, column2, ...
FROM table_name
ORDER BY column_name [ASC | DESC];

其中,column_name表示要排序的列,ASC表示升序排序,DESC表示降序排序。比如,查询一个表中所有人的年龄,并按照年龄降序排序,可以使用语句:

SELECT name, age FROM table_name ORDER BY age DESC;

到这里,DQL语句的攻略就结束了。下面我们来看看查询语句的示例。

示例

下面我们以一个简单的学生信息表格为例来演示DQL语句的应用。假设我们有一个学生信息表格,包含姓名、性别、年龄、专业、成绩等字段,表格名为student,如下表所示:

姓名 性别 年龄 专业 成绩
张三 20 计算机 90
王五 23 金融学 80
李四 21 物联网 85
赵六 20 计算机 95
钱七 22 物联网 75

查询所有列

使用如下语句可以查询表格student中所有的列:

SELECT * FROM student;

条件查询

使用如下语句可以查询表格student中年龄大于20岁的学生姓名和专业:

SELECT name, major FROM student WHERE age > 20;

查询结果为:

姓名 专业
王五 金融学
李四 物联网
钱七 物联网

分组查询

使用如下语句可以查询表格student中每个专业的平均成绩:

SELECT major, AVG(score) FROM student GROUP BY major;

查询结果为:

专业 平均成绩
计算机 92.5
物联网 80
金融学 80

分组筛选

使用如下语句可以查询表格student中每个专业的平均成绩大于85的结果:

SELECT major, AVG(score) FROM student GROUP BY major HAVING AVG(score) > 85;

查询结果为:

专业 平均成绩
计算机 92.5

排序查询

使用如下语句可以查询表格student中所有学生的姓名和年龄,并按照年龄降序排序:

SELECT name, age FROM student ORDER BY age DESC;

查询结果为:

姓名 年龄
王五 23
钱七 22
李四 21
张三 20
赵六 20

到这里,DQL语句的示例就完成了,相信大家通过这些例子已经对DQL语句有一定的理解了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL 经典语句 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • MYSQL在centos上首次启动

    1.启动mysql [root@iZ8vbf6lodiycj95t5h03xZ centos7_mysql_own]# service mysqld start Redirecting to /bin/systemctl start mysqld.service 2.查看mysql服务状态 [root@iZ8vbf6lodiycj95t5h03xZ ~]# …

    MySQL 2023年4月12日
    00
  • mysql source 命令导入大的sql文件的方法

    MySQL中的source命令可以使用户导入大的SQL文件,本文将详细讲解如何使用source命令导入大的SQL文件。 1. 准备工作 首先需要将要导入的大的SQL文件上传至MySQL服务器,也可以使用外部工具将SQL文件直接上传至MySQL服务器。 2. 登录MySQL客户端 使用MySQL客户端登录MySQL服务器,可以通过以下命令登录: mysql -…

    database 2023年5月22日
    00
  • MySQL函数date_format()日期格式转换的实现

    MySQL函数 date_format() 可以把日期时间类型的数据按照指定的格式进行转换和格式化,使其更符合我们需要展示的要求。 语法 DATE_FORMAT(date, format) 参数说明: date: 需要转换格式的日期/时间数据。 format: 转换后的日期/时间格式,可使用特定的格式控制符。 格式控制符 下面是常见的格式控制符: 格式控制符…

    database 2023年5月22日
    00
  • mysql聚集索引、辅助索引、覆盖索引、联合索引的使用

    MySQL中索引是数据库优化的重要手段,常见的索引类型有聚集索引、辅助索引、覆盖索引和联合索引。 聚集索引 聚集索引也叫主键索引,是表中物理存储的排序方式,每个表只有一个聚集索引。聚集索引的叶子节点存储的是数据行本身而非指向数据的指针,因此可以减少一次IO开销。同时使用聚集索引的查询效率也会相应地提高。主键(primary key)约束自动创建聚集索引。 示…

    database 2023年5月22日
    00
  • 一篇文章揭秘Redis的磁盘持久化机制

    一篇文章揭秘Redis的磁盘持久化机制 Redis是一个开源的高性能key-value存储系统,它最初是为提高page view数而开发的,也是一个很适合做缓存的应用程序。因此,Redis的数据持久化就显得特别重要了。Redis提供了两种数据持久化的方式:RDB快照和AOF日志。 RDB快照 RDB快照是指把内存中的数据定期dump到磁盘中,可以看做是一个数…

    database 2023年5月22日
    00
  • MySQL用truncate命令快速清空一个数据库中的所有表

    MySQL中的truncate命令可以快速清空一个数据库中的所有表,它比使用DELETE语句的效果更快,因为DELETE语句将逐行删除每条数据,而truncate语句删除整个表并重新创建一个空表。 以下是在MySQL中使用truncate命令快速清空一个数据库中的所有表的完整攻略: 步骤1:登录MySQL 首先,使用mysql命令登录到MySQL服务器: m…

    database 2023年5月22日
    00
  • 使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名

    使用SQL语句可以查询MySQL、SQL Server和Oracle数据库中的所有数据库名、表名和字段名。以下是查询所有数据库名、表名和字段名的完整攻略及两个示例说明: 查询所有数据库名: MySQL: SHOW DATABASES; SQL Server: SELECT name FROM sys.databases; Oracle: SELECT DIS…

    database 2023年5月21日
    00
  • SQLite 和 CouchDB 的区别

    SQLite和CouchDB是两种不同类型的数据库,有一定的不同之处。下面我详细讲解一下SQLite和CouchDB之间的区别: SQLite 什么是SQLite SQLite是一种嵌入式数据库,它是一个开源的SQL数据库,可以存储在本地磁盘上。SQLite数据存储在文件中,而不是在服务器上。因此,SQLite适合存储小型数据集的应用程序,如移动应用程序和桌…

    database 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部