SQL查询

2023-02-22  本文已影响0人  薛小蛙

一、基础查询

--查询全字段数据
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,表示条件

上一篇 下一篇

猜你喜欢

热点阅读