SQL查询

作者: 薛小蛙 | 来源:发表于2023-02-22 17:11 被阅读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,表示条件

相关文章

  • EF Core 备忘

    模糊查询sql linq 内连接查询sql linq 左连接查询sql linq 左连接查询(连接内带条件)sql...

  • ThinkPHP查询

    查询方式 表达式查询 快捷查询 区间查询 组合查询 统计查询 动态查询 SQL查询 ThikPHP支持原生SQL查...

  • 数据分析之SQL子查询

    文章阅读路线: SQL子查询概念 独立子查询实例 相关子查询实例 SQL子查询常见玩伴 1.SQL子查询概念 子查...

  • JPA 动态生成sql

    1. 构建格式化时间查询sql: 生成sql: 2. 构建多条件查询sql: 生成sql: 3. 构建子查询: 生...

  • sqlserver,oracle,mysql分页查询通用sql

    摘要: sqlserver,oracle,mysql分页查询通用sql1:mysql通用查询sql /* sql:...

  • 无限极分类-全路径方式

    创建表SQL 测试数据 组装SQL查询 查询结果

  • 定位和处理执行慢的sql

    查询正在获取锁的sql 查询正在执行的sql 停止正在执行的sql

  • SQL查询语句

    常用SQL查询语句 一、简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SE...

  • MySQL学习笔记- SQL 查询都是以 SELECT 开始的吗

    SQL 查询都是以 SELECT 开始的的吗?SQL 查询的执行顺序是怎样的? SQL 查询的执行顺序 SELEC...

  • 搜索

    直接sql查询 用sql语句like查询,复杂的用sql语句拼接。 视图和存储过程查询 简化程序,提高执行效率,维...

网友评论

      本文标题:SQL查询

      本文链接:https://www.haomeiwen.com/subject/swvakdtx.html