一、概述
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等语句。在实际开发中,需要根据具体的业务需求进行灵活运用,合理组合这些语句,以提高查询效率和准确性。