一、基础查询
--查询全字段数据
SELECT * FROM 数据库名.表名;
USE 数据库名;
SELECT * FROM 表名;
--查询指定字段数据
SELECT Name,Salary FROM Employee;
SELECT Employee.Name,Employee.Salary FROM Employee;
--为字段取别名
SELECT Name As “姓名”,Salary As “月薪” FROM Employee;
SELECT Employee.Name As “姓名”,Employee.Salary As “月薪” FROM Employee;
--根据主键获取某一条数据
SELECT Name As “姓名”,Salary As “月薪” FROM Employee WHERE EmployeeID=10;
--算数运算
SELECT Name,Salary As “涨薪前” ,Salary+1000 As “涨薪后” FROM Employee;
SELECT Name,Salary*13 As “年薪” FROM Employee;
--数据拼接
SELECT CONCAT(Name,Gender,Age) FROM Employee;
SELECT CONCAT(Name,’, ’,Gender,’, ’,Age) AS “员工基本信息” FROM Employee;
SELECT CONCAT_WS(’, ’,Name,Gender,Age) FROM Employee;--所有字段都以第一个符号间隔开
--数据排序(默认按主键排序)
SELECT Name,Salary FROM Employee ORDER BY Salary ; --默认按升序排序
SELECT Name,Salary FROM Employee ORDER BY Salary ASC; --按升序排序
SELECT Name,Salary FROM Employee ORDER BY Salary DESC; --按降序排序
SELECT Name,Salary FROM Employee ORDER BY Salary DESC,Age ASC;
--先按薪资降序排序,相等时按年龄升序排序(先按第一个规则排序,再按第二个规则排序)
--限制行数(LIMIT 起始行数,行数)
SELECT Name,Salary FROM Employee LIMIT 10;
SELECT Name,Salary FROM Employee LIMIT 5,10;
SELECT Name,Salary FROM Employee ORDER BY Salary ASC LIMIT 10;
--数据去重(DISTINCT)
SELECT DISTINCT Name,Salary FROM Employee;
二、条件查询
--比较运算查询(>、<、>=、<=、=、<>、!=)
SELECT * FROM 表名 WHERE Age=33;
SELECT * FROM 表名 WHERE Age<>33;
SELECT * FROM 表名 WHERE Age!=33;
SELECT * FROM 表名 WHERE Age>33;
SELECT * FROM 表名 WHERE Age<33;
SELECT * FROM 表名 WHERE Age<=33;
SELECT * FROM 表名 WHERE JobPosition=’开发人员’;
SELECT * FROM 表名 WHERE JoinedAt>’2020-01-01’;
--逻辑运算查询(AND、OR、NOT)
SELECT * FROM 表名 WHERE Age=33 AND Salary>2000;
SELECT * FROM 表名 WHERE Age=33 AND Salary>2000 AND Gender=‘男’;
SELECT * FROM 表名 WHERE Age=33 OR Salary>2000;
SELECT * FROM 表名 WHERE NOT(Age=33 AND Salary>2000);
--范围查询(IN、NOT IN、BETWEEN AND)
SELECT * FROM 表名 WHERE Age IN(32,33,34);
SELECT * FROM 表名 WHERE Jobposition IN(‘开发人员’,’顾问’);
SELECT * FROM 表名 WHERE Jobposition NOT IN(‘开发人员’,’顾问’);
SELECT * FROM 表名 WHERE Age BETWEEN 20 AND 30;
SELECT * FROM 表名 WHERE JoinedAt BETWEEN ‘2020-01-01’ AND ‘2022-12-31’;
--空值查询(IS NULL、IS NOT NULL)
SELECT * FROM 表名 WHERE JoinedAt IS NULL;
SELECT * FROM 表名 WHERE JoinedAt IS NOT NULL;
--模糊查询(%代表任意多个字符【0、1、多】,代表单个字符)
SELECT * FROM 表名 WHERE Name LIKE’杨%’;
SELECT * FROM 表名 WHERE Name LIKE’杨’;
SELECT * FROM 表名 WHERE Name LIKE’%杨%’;
SELECT * FROM 表名 WHERE Name LIKE’__’;
三、聚合函数统计查询
--计数(COUNT)
SELECT COUNT(* ) FROM 表名;
SELECT COUNT(Age ) FROM 表名;
--最大值(MAX)
SELECT MAX(Age ) FROM 表名;
--最小值(MIN)
SELECT MIN(Age ) FROM 表名;
四、复杂查询语句顺序
SELECT
Age,ROUND(AVG(Salary),0) AS AVG_Salary
FROM Employee
WHERE Jobposition=’开发人员’
GROUP BY Age
HAVING AVG_Salary>=21000
ORDER BY Age DESC
Limit 3;
--AVG( )求平均值、ROUND(Age, 0)把数值字段舍入为小数位数
--GROUP BY按年龄分组,一个年龄一行
--HAVING同WHERE,表示条件
![](https://img.haomeiwen.com/i2727008/c96e3327c7a749f2.jpg)
网友评论