MySQL_04 (SELECT_2)

查询简例

#1.条件查询
SELECT *
FROM emp
WHERE name = ‘汤姆’; #筛选条件 分号添加在语句结束的最后
在这里插入图片描述

#2.查看表结构
DESC emp; #显示表的结构 DESC为DESCRISE的简写

在这里插入图片描述

算术运算符 + - * / div % mod

SELECT 1002,1002 + 0 ,1002 + 2 ,1002 - 2,1002 - 2.0 ,1002 / 2 ,1002 DIV 0 ,1002 % 2 ,1002 + NULL
FROM emp; #1002 / 2 是浮点型 #分母如果为0 ,结果为null ,null值参与运算结果为null

在这里插入图片描述

SELECT 100 + ‘a’ #此时将’a’当做0处理
FROM emp;

在这里插入图片描述

比较运算符

#2.1 = , <=>(安全等于) , <> 或 != (不等于), < , <= , > , >=
SELECT 1 = 2,1 != 2 , 1 = ‘1’, 1 = ‘a’ , 0 = ‘a’ #字符串存在隐式转换。如果数值转换不成功,则看做0
FROM emp;
在这里插入图片描述

SELECT ‘a’ = ‘a’ , ‘ab’ = ‘ab’, ‘a’ = ‘b’,1 = NULL,NULL = NULL
FROM emp;#两边都是字符串,会比较对应的ASCLL码值 #只要有 null参与判断,结果就为null
WHERE id = NULL #此时执行,不会有任何的结果 语句执行顺序为先列出数据,where判断筛选想要数据
在这里插入图片描述

<=> 安全等于 与 = 等于无null时效果一样 , 唯一的区别就是解决null问题,记忆:为null而生
SELECT NULL <=> NULL , 1 <=> NULL #查询为null的数据有哪些
FROM emp;
在这里插入图片描述

#查询null的数据 IS NULL ,查询不是null的数据 , IS NOT NULL
SELECT name
FROM emp
WHERE ISNULL(name); #这是一个函数 等效IS NULL 还可以写成 <=> NULL ,都是选出null
#用一种就可以 IS NULL

在这里插入图片描述

最小、最大 LEAST \ GREATEST

SELECT LEAST(‘g’,‘b’,‘t’,‘m’),GREATEST(‘g’,‘b’,‘t’,‘m’)
FROM DUAL;
在这里插入图片描述

#BETWEEN 条件1 AND 条件2 (查询条件1 和条件2范围内的数据,包含边界):
SELECT id
FROM emp
WHERE id >= 1002 && id <= 1003;
#等效 WHERE id BETWEEN 1002 AND 1003; 不在此区间 则 NOT BETWEEN 1002 AND 1003;
在这里插入图片描述

#in (set) \ not in (set)
SELECT id,name
FROM emp
#WHERE id = 1001 OR id = 1003; 等效:
WHERE id IN (1001,1003);
在这里插入图片描述

模糊查询 LIKE :模糊查询

#查询名字包含 ‘xx’ 的员工
#% :百分号代表不确定字符的个数
SELECT name
FROM emp
WHERE name LIKE ‘汤%’; #姓汤,且两字
在这里插入图片描述

#练习: 查找包含 ‘a’ 和 ‘e’ 的 name
SELECT name
FROM emp
WHERE name LIKE ‘%a%’ AND name LIKE ‘%e%’;

#_ :下划线代表一个不确定的字符
#查询第三个字符是’a’的姓名
INSERT INTO dbtest1.emp (id, name) VALUES (‘1002’, ‘cba’);
SELECT name
FROM emp
WHERE name LIKE ‘__a’;
在这里插入图片描述

#需要实义 的下划线 和 代表字符的下划线时 可用转移字符 ‘’ 体现
SELECT name
FROM emp
WHERE name LIKE ‘_ \ _a%’; #表示第二个字符是下划线,且第三个字符为’a’
在这里插入图片描述

#或者 (仅了解- -正则表达式)
SELECT name
FROM emp
WHERE name LIKE ‘_ $ _ a%’ ESCAPE ‘$’;

正则表达式

#ESCAPE \ RLIKE :正则表达式 (独立于SQL的规则 ,可做出一些精确操作)
SELECT ‘shkstart’ REGEXP ‘^sh’, ‘shkstart’ REGEXP ‘t$’ , ‘shkstart’ REGEXP ‘hk’
FROM DUAL; # 表示判断是sh开头的,t结尾的,中间包含某个的
在这里插入图片描述

SELECT ‘atguigu’ REGEXP ‘gu.gu’ ,‘atguigu’ REGEXP ‘[ab]’ #gu.gu中间有个不知道的 , [ab]为包含a或b
FROM DUAL;
#正则表达式还有很多…
在这里插入图片描述

逻辑运算符:

OR || AND && NOT ! XOP(异或 - 两个满足其中一个,追求不同,异)
#注意AND 优先级高与 OR,如AND OR AND要先计算完AND再OR , XOR有任意一个为null,返回null
SELECT name
FROM emp
WHERE id IN(1001,1002,1003) XOR id < 1000 ;
在这里插入图片描述

位运算符

&(按位与) |(按位或) ^(按位异或) ~(按位取反) << >>(按位右移)
SELECT 12 & 5,12 | 5,12 ^ 5
FROM DUAL;

SELECT 10 & ~1 FROM DUAL; #取反的1(单目运算符优先级高)与10进行按位与操作
在这里插入图片描述

SELECT 4 << 1,8 >> 1;
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值