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. 在开发环境中,最好不要用*,查询所有字段会消耗时间 ↩︎
相关推荐
陌上丨9 小时前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
AI_56789 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
ccecw9 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
JH30739 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
数据知道10 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
麦聪聊数据11 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
未来之窗软件服务11 小时前
数据库优化提速(四)新加坡房产系统开发数据库表结构—仙盟创梦IDE
数据库·数据库优化·计算机软考
Goat恶霸詹姆斯12 小时前
mysql常用语句
数据库·mysql·oracle
大模型玩家七七13 小时前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
曾经的三心草13 小时前
redis-9-哨兵
数据库·redis·bootstrap