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. 在开发环境中,最好不要用*,查询所有字段会消耗时间 ↩︎
相关推荐
秃头摸鱼侠几秒前
MySQL查询语句(续)
数据库·mysql
MuYiLuck9 分钟前
【redis实战篇】第八天
数据库·redis·缓存
睡觉待开机9 分钟前
6. MySQL基本查询
数据库·mysql
大熊猫侯佩1 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(三)
数据库·swiftui·swift
大熊猫侯佩1 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(二)
数据库·swiftui·swift
大熊猫侯佩1 小时前
用异步序列优雅的监听 SwiftData 2.0 中历史追踪记录(History Trace)的变化
数据库·swiftui·swift
大熊猫侯佩1 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(一)
数据库·swiftui·swift
Ares-Wang1 小时前
负载均衡LB》》HAproxy
运维·数据库·负载均衡
AI.NET 极客圈1 小时前
.NET 原生驾驭 AI 新基建实战系列(四):Qdrant ── 实时高效的向量搜索利器
数据库·人工智能·.net
weixin_470880262 小时前
MySQL体系架构解析(二):MySQL目录与启动配置全解析
数据库·mysql·面试·mysql体系架构·mysql bin目录