下面是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技术站