mysql之基本查询

基本查询

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

一、SELECT 查询语句

  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. 在开发环境中,最好不要用*,查询所有字段会消耗时间 ↩︎
相关推荐
vvvae123421 分钟前
分布式数据库
数据库
雪域迷影41 分钟前
PostgreSQL Docker Error – 5432: 地址已被占用
数据库·docker·postgresql
bug菌¹1 小时前
滚雪球学Oracle[4.2讲]:PL/SQL基础语法
数据库·oracle
逸巽散人2 小时前
SQL基础教程
数据库·sql·oracle
月空MoonSky2 小时前
Oracle中TRUNC()函数详解
数据库·sql·oracle
momo小菜pa2 小时前
【MySQL 06】表的增删查改
数据库·mysql
向上的车轮3 小时前
Django学习笔记二:数据库操作详解
数据库·django
编程老船长3 小时前
第26章 Java操作Mongodb实现数据持久化
数据库·后端·mongodb
全栈师4 小时前
SQL Server中关于个性化需求批量删除表的做法
数据库·oracle
Data 3174 小时前
Hive数仓操作(十七)
大数据·数据库·数据仓库·hive·hadoop