mysql之基本查询

基本查询

  • [一、SELECT 查询语句](#一、SELECT 查询语句)

一、SELECT 查询语句

  1. 查询所有列 [1](#1)
sql 复制代码
SELECT *FORM emp;
  1. 查询指定字段
sql 复制代码
SELECT empno,ename,job FROM emp;
  1. 给字段取别名
sql 复制代码
SELECT empno 员工编号 FROM emp;
SELECT empno 员工编号,ename 姓名,job 岗位 FROM emp;
SELECT empno AS 员工编号,ename AS 姓名,job AS 岗位 FROM emp;
SELECT empno AS "员工编号",ename AS "姓名",job AS "岗位" FROM emp;
SELECT empno AS '员工编号',ename AS '姓名',job AS '岗位' FROM emp;
#当别名中有空格的时候,必须使用单引号或者双引号包裹
SELECT empno AS "员工 编号",ename AS 姓名,job AS 岗位 FROM emp;
  1. DISTINCT 去重
sql 复制代码
SELECT DISTINCT job FROM emp;
SELECT DISTINCT job,deptno FROM emp;
  1. 空值参与运算
sql 复制代码
SELECT sal,comm FROM emp; #员工月薪
SELECT sal,comm,(sal+comm)*12 年薪 FROM emp; #这样计算出的年薪只要奖金里是null的结果也是null
sql 复制代码
-- NULL就是NULL,它不等于0,甚至不等于NULL
SELECT NULL =NULL; #结果是NULL
SELECT NULL != NULL; #结果也是NULL
SELECT NULL is NULL; #结果为1
SELECT 1 is NULL; #结果为0而不是NUll
以上结果说明NULL是一个特殊的值,没有办法和其他值比较
  1. 条件查询
sql 复制代码
SELECT *FROM emp
WHERE ename = "Smith";#不区分大小写

SELECT *FROM emp
WHERE job='clerk' && deptno=30;
  1. 算术运算符
sql 复制代码
SELECT 1+1,1+'1',1+"1",1+'a';
SELECT 2.5*2,2*5,5/2,5 DIV 2,5%2,MOD(5,2),5/0;


sql 复制代码
--给所有员工加薪500元
SELECT empno,ename,job,mgr,hiredate,sal+500,comm,deptno FROM emp;
  1. 关系运算符
sql 复制代码
SELECT 1>2 FROM DUAL;
-- DUAL不是一个存在的表,是一个虚表
SELECT NULL = NULL;#结果是null
SELECT null <=> NULL;#结果是1

-- 查询 奖金为null的所有员工
SELECT *FROM emp WHERE comm IS NULL;
SELECT *FROM emp WHERE comm <=> NULL;

-- 查询工作为clerk部门为20的员工
SELECT * FROM emp
WHERE job = "clerk" AND deptno =20;
  1. 模糊查询LIKE
sql 复制代码
-- %匹配0个或多个任意字符
SELECT * FROM emp
WHERE ename LIKE "%a%";

-- 查询名字中包含i e的员工
SELECT * FROM emp
#WHERE ename LIKE '%i%' AND ename LIKE '%e%';
WHERE ename LIKE '%i%e%';
  1. LEAST 求序列中最小值
sql 复制代码
SELECT LEAST(1,2,3,4); 结果1
  1. 正则
sql 复制代码
SELECT *FROM emp
WHERE ename REGEXP 'a';

SELECT *FROM emp
WHERE ename REGEXP '^a'; #以a开头的

SELECT *FROM emp
WHERE ename REGEXP 't$'; #以t结尾的

SELECT *FROM emp
WHERE ename REGEXP '^.{4}$';#查询4个字符的
  1. 排序查询
sql 复制代码
SELECT * FROM emp ORDER BY sal;#默认升序

SELECT * FROM emp ORDER BY sal DESC;#降序

SELECT * FROM emp
WHERE sal BETWEEN 1200 AND 3000
ORDER BY sal;
  1. 分页查询
sql 复制代码
-- 进行分页查询,每页显示5条数据
SELECT * FROM emp
LIMIT 5; # 查询前5条

-- 每5条数据为1页,查看第二页的数据
SELECT * FROM emp
LIMIT 5,5;# LIMIT 偏移量,页大小

-- 偏移量写后面的方法
SELECT * FROM emp
LIMIT 10 OFFSET 0;

  1. 在开发环境中,最好不要用*,查询所有字段会消耗时间 ↩︎
相关推荐
苍狼唤18 分钟前
SQL+C# 增删改查(练习)
数据库·sql·c#
2301_8002561125 分钟前
第七章 空间存储与索引 知识点梳理-2
数据库·sql·oracle
草莓熊Lotso41 分钟前
【Redis 初阶】 从分布式演进背景到环境搭建全解析
数据库·人工智能·redis·分布式·缓存
倔强的石头_1 小时前
优化器为什么敢把你写的 LEFT JOIN 悄悄改掉?-国产化金仓 KES 优化器设计思路拆解
数据库
学习-学习1 小时前
PostgreSQL 19 Beta 值得测吗?并行 Autovacuum、REPACK 到 WAIT FOR LSN 看生产影响
数据库·postgresql
何中应1 小时前
Postgres 搭建主从集群
数据库·postgresql·集群·开发工具
数字新视界1 小时前
档案库房环境安全监控解决方案
大数据·运维·数据库·物联网·环境监控系统
嘘神秘用10 小时前
布:AI 驱动的 Redis 客户端,更快、更直观
数据库·人工智能·redis
东北小狐狸-Hellxz12 小时前
Redis 哨兵搭建+ACL权限控制
数据库·redis
研究员子楚13 小时前
GEO行业发展标准体系白皮书V2.0-第09卷 · 适配篇:硅基主权伦理宪章与行业适配宣言
数据库·人工智能·geo