1. SQL基础查询操作运算讲解
Posted 江湖@小小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1. SQL基础查询操作运算讲解相关的知识,希望对你有一定的参考价值。
1. 基础查询操作运算讲解
1. 去重查询:
select distinct 列名 from 表名
2. 加减号用法:
加号:
第一种用法
是在 SELECT 子句中使用+号
以执行对数据的运算并将结果显示出来;
第二种用法
是在 WHERE 子句中使用加号.
eg:select 列1,列2+0.5 from 表名;
减号:
第一种用途是作为负号使用;
eg:select
列1 别名,-列2 别名 from 表名;
第二种用法是作为减号从某一列中减去另一列.
eg:select
列1,列2,(列2-列1) 列别名
from 表名;
3. 乘除法的用法:
eg:select 列1,列2,列3*0.8 别名 from 表名;
eg:select 列1,列2,(列3/2)别名 from 表名;
取模运算(%):取模运算返回一个除数 的余数部分
eg:select 列1,列2,列3%列4 别名 from 表名;
在一些 SQL 解释器中取模运算符为 MOD
eg:select 列1,MOD(列2,列3) 列别名,列4 from 表名;
4. 比较运算(=):
eg:select
列1,列2,列3 别名
from 表名
where 列1 = "value";
select * from
表名
where 列名 = NULL;
不建议使用,可能会查不到数据:No rows selected
else:select * from 表名 where 列名 is NULL;
SELECT * FROM 表名 WHERE 列名 > 300;
SELECT * FROM 表名 WHERE 列名 >= 300;
SELECT * FROM 表名 WHERE 列名 < 300;
SELECT * FROM 表名 WHERE 列名 <= 300;
2. 不等于(<> or !=)
select * from where 列名 <> 'value';
select * from where 列名 != 'value';
3. 模糊查询(like)
select * from 表名 where 列名 like '%value%';
select * from 表名 where 列名 like 'value%';
select * from 表名 where 列名 like 'value_%';
4. 连接(||)
|| 可以将两个字符串连接起来
SELECT 列1 || 列2 别名 FROM 表;
5. 逻辑运算
1. and:只有当两个表达式的值都为真的时候才会返回真
select
name,
years * 12 - leaves a1
from 表
where name
like 'B%' and years * 12 - leaves > 60;
select * from
表
where years >= 5
and (years * 12 - leaves)/(years * 12) < 0.50;
2. or:当其中一个条件为真时,其结果为真
select * from
表
where years >= 5
or (years * 12 - leaves)/(years * 12) >= 0.50;
3. not:条件取反,
条件为假时结果为真,条件为真时结果为假,当not应用于null时可以使用is.
select * from 表 where 列 not like 'B%';
select * from 表 where 列 is not null;
6. 集合运算(SET)
union:将返回两个查询的结果并去除其中重复的部分。
select name from
表1
union select name from 表2;
union all:对表进行合并,但是不去掉重复的记录。
select name from
表1
union all select name from 表2;
intersect(相交):返回两个表中共有的行(即两个表都存在的记录)。
select * from
表1
intersect select * from 表2;
minus(相减):返回的记录是存在于第一个表中但不存在于第二张表的记录。
select * from
表1
minus select * from 表2;
(in and between)从属运算:
SELECT * FROM
表
WHERE STATE= 'CA'
OR STATE ='CO' OR STATE ='LA';
另外一种写法:
SELECT * FROM 表
WHERE STATE IN('CA','CO','LA');
查找某一范围的记录:
select * from price
where 列1 > 0.50 and 列1 < 0.75;
或者使用between:
select * from price
where 列1 between 0.25 and 0.75;
以上是关于1. SQL基础查询操作运算讲解的主要内容,如果未能解决你的问题,请参考以下文章
[讲解]sql except和intersect运算符(比拟两个或多个select语句的结果并前去非重复值)
MySQL 基础 SQL -- DQL 数据查询语言(基础查询(字段别名) where条件查询(比较运算符逻辑运算符) 聚合函数分组查询 排序查询分页查询DQL语句执行顺序)