sql查询语句有哪些

一、概述

SQL(Structured Query Language)是一种专门用于管理关系型数据库的语言,是一种标准化的语言。在操作关系型数据库时,SQL语言扮演着重要的角色,其简单易懂、功能强大的特点也得到了广大开发者的青睐。本文将重点介绍SQL查询语句,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等内容。

二、SELECT查询语句

1. SELECT基本使用

SELECT语句是SQL查询语句中最常用的语句之一,用于从数据库中选择要查看的数据。其基本语法如下:

SELECT column1,column2,...

FROM table_name;

其中,column1、column2代表要查询的字段名称,可写多个,用逗号隔开;table_name代表要从中查询数据的表的名称。例如,查询表student中的id和name两个字段:

SELECT id,name

FROM student;

2. SELECT DISTINCT去重查询

SELECT DISTINCT语句用于去除重复记录,其基本语法如下:

SELECT DISTINCT column1,column2,...

FROM table_name;

例如,查询表student中所有不同的班级编号:

SELECT DISTINCT class_no

FROM student;

3. SELECT计算列

SELECT计算列语句用于对选定的字段进行数学运算,如加、减、乘、除运算等。其基本语法如下:

SELECT column1+column2 AS total

FROM table_name;

例如,查询表student中每个学生的数学和英语总成绩:

SELECT math_score+english_score AS total_score

FROM student;

三、FROM查询语句

1. FROM基本使用

FROM语句用于指定要查询的表或视图名称。其基本语法如下:

SELECT column1,column2,...

FROM table_name;

例如,查询表student中的所有字段:

SELECT *

FROM student;

2. FROM多表查询

FROM多表查询语句用于在两个或多个表之间执行联接操作,需要指定正确的关联条件。其基本语法如下:

SELECT column1,column2,...

FROM table1

JOIN table2

ON table1.column = table2.column;

例如,查询表student和course中某个学生选修的课程:

SELECT student.name,course.course_name

FROM student

JOIN course

ON student.student_id = course.student_id;

四、WHERE查询语句

1. WHERE基本使用

WHERE语句用于在查询结果中筛选符合条件的记录。其基本语法如下:

SELECT column1,column2,...

FROM table_name

WHERE condition;

其中,condition为筛选条件。例如,查询表student中性别为女的学生:

SELECT *

FROM student

WHERE gender = '女';

2. WHERE多条件查询

WHERE多条件查询语句用于在查询结果中应用多个条件。其基本语法如下:

SELECT column1,column2,...

FROM table_name

WHERE condition1 AND/OR condition2;

例如,查询表student中年龄在20岁到25岁之间且科目为数学的学生:

SELECT *

FROM student

WHERE age >= 20 AND age <= 25 AND course_name = 'Math';

五、GROUP BY查询语句

1. GROUP BY基本使用

GROUP BY语句用于将查询结果按照指定的字段进行分组,通常与聚合函数一起使用。其基本语法如下:

SELECT column1,column2,...

FROM table_name

GROUP BY column;

其中,column为分组字段,可选多个。例如,查询每个班级的总分数及平均分:

SELECT class_id,SUM(score),AVG(score)

FROM student

GROUP BY class_id;

2. GROUP BY多字段分组

GROUP BY多字段分组语句用于将查询结果按照多个字段进行分组。其基本语法如下:

SELECT column1,column2,...

FROM table_name

GROUP BY column1,column2;

例如,查询每个班级、科目的总分数及平均分:

SELECT class_id,course_name,SUM(score),AVG(score)

FROM student

GROUP BY class_id,course_name;

六、HAVING查询语句

1. HAVING基本使用

HAVING语句用于筛选分组函数的结果,通常与GROUP BY一起使用。其基本语法如下:

SELECT column1,column2,...

FROM table_name

GROUP BY column

HAVING condition;

其中,condition为筛选条件。例如,查询每个班级总分前三名的学生:

SELECT class_id,SUM(score) AS total_score

FROM student

GROUP BY class_id

HAVING total_score >= (SELECT MAX(total_score) FROM (

SELECT class_id,SUM(score) AS total_score

FROM student

GROUP BY class_id

ORDER BY total_score DESC

LIMIT 3) tmp_tbl);

七、ORDER BY查询语句

1. ORDER BY基本使用

ORDER BY语句用于对查询结果按照指定的字段进行排序,可选择升序或降序排列。其基本语法如下:

SELECT column1,column2,...

FROM table_name

ORDER BY column [ASC|DESC];

其中,column为要排序的字段名称,可选多个。例如,查询表student中按照年龄升序排列:

SELECT *

FROM student

ORDER BY age ASC;

2. ORDER BY多字段排序

ORDER BY多字段排序语句用于按照多个字段进行排序,可选择升序或降序排列。其基本语法如下:

SELECT column1,column2,...

FROM table_name

ORDER BY column1 [ASC|DESC],column2 [ASC|DESC],...;

例如,查询表student中按照班级升序、年龄降序排列:

SELECT *

FROM student

ORDER BY class_id ASC,age DESC;

总结

本文介绍了SQL查询语句中常用的SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等语句。在实际开发中,需要根据具体的业务需求进行灵活运用,合理组合这些语句,以提高查询效率和准确性。

数据库标签