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. 在开发环境中,最好不要用*,查询所有字段会消耗时间 ↩︎
相关推荐
姜鱼问生15 分钟前
数据库备份 + 灾难恢复演练:从 dump 恢复全库
运维·数据库
一技安身30 分钟前
【mysql】Windows MySQL 8.4.10 绿色免安装喂饭教程
windows·mysql·adb
斯内普吖44 分钟前
(开源)宠物饲养系统实战指南 基于 Java + SSM + Vue + MySQL
java·vue.js·mysql·开源·宠物
ao-weilai1 小时前
MySQL数据库:表约束
数据库·mysql·adb
ly76891 小时前
Redis 分布式锁的边界条件:Redlock 争议、锁续期与客户端崩溃后的互斥失效
数据库·redis·分布式·分布式锁·watchdog·redlock
kaixin_learn_qt_ing1 小时前
qgeoview-samples-basic
数据库
Omics Pro2 小时前
微软:多模态生物世界模型
数据库·人工智能·算法·microsoft·机器学习·自然语言处理
字节渡客2 小时前
接口明明返回成功,数据库偶尔就是没写入
数据库
Ivanqhz2 小时前
KV Cache
服务器·数据库·人工智能·深度学习·算法
Omics Pro2 小时前
~30,000+引用!理论2005,R包2008,多组学集成AI增强
开发语言·数据库·人工智能·算法·机器学习·自然语言处理·r语言