比较,逻辑,求反,算数操作符__mysql学习笔记

来源:互联网 发布:房子平面设计图软件 编辑:程序博客网 时间:2024/06/13 01:58

SQL 操作符:用于指定条件,还可以联接一个语句里的多个条件

比较操作符

逻辑操作符

求反操作符

算数操作符

 

一,比较操作符:=,<> , < ,>,>=,<=

<>是不等于的意思,用的时候想象成=,没区别;

 

二,逻辑操作符:

Is null;

Between;

In ;

Like;

Exists;

Unique;

all和any;

 

2.1  Is null

:用于与NULL值进行比较(比如说用于找没有留电话号的员工)

Wherephonenumber is null;能查出来

但是where phonenumber=null;

//不行,真的不行,出来时empty,但是我真的没有明白为什么不行,它说是因为电话号可以有一个值是null值?

//看别人是说因为mysql中的null不等于任何其他值,也不等于另外一个null,优化器会把"=null"的查询过滤掉而不返回任何数据;

还有查询某字段为非空时使用is notnull。

另外,有关null,

排序时mysql将null作为最小值处理。

 not null字段不能插入null,但可以插入空值

 

2.2   Between:

用于寻找一个一个给定最大值和最小值之间的值(包括最大值最小值)

Where salarybetween '1234' and '23334';

 

2.3  in

用于把一个值和一个指定列表进行比较

Select *

Fromtable_name

Where column_name in('234','33','8495');

//字段里的内容是这三个中的一个就可以

 

2.4   like

利用通配符(% 和 ___)把一个值和类似的值进行比较;

%代表0个,1个或多个字符;

_____表示1个数字或1个字符;

这里的——和%在使用的时候就是直接代替别的不管什么字符或数字的

比如

 

下面 的 条 件 匹 配 任 何 以 200 开 头 的 值 :

WHERE SALARY LIKE ‘200%’;

下曲 的 条 件 匹 配 任 何 包 含 200 ( 在 任 意 位 置 ) 的 值 :

WHERE SALARY LIKE  ‘%200%’;

下面 的 条 件 匹 配 第 二 和 第 三 个 字 符 是 0 的 值 :

WHERE SALARYLIKE   ‘_00%';

下面 的 条 件 匹 配 以 2 开 头 , 而 且 长 度 至 少 为 3 的值 :

//因为%可以表示0个字符

WHERE SALARY LIKE'2_%_%';

下面 的 条 件 匹 配 以 2 结 尾 的 值 :

SALARY LIKE ’%2‘;

下面 的 条 件 匹 配 第 二 个 位 置 为 2 , 结 尾 为 3 的 值 :

WHERE SALARY LIKE  '_2%3';

下面 的 条 件 匹 配 长 度 为 5 , 以2 开 头 , 以 3 结尾 的 值 :

WHERE SALARY LIKE  '2____3";

//四下_;

唔,还是有逻辑在的哈;

 

2.5  exists

用于搜索指定表里是否存在满足特定条件的记录;

比如

Selectcolumn_name

Formtable_name

Whereexists ( select column_name from table_name wherecost<100)

又看了别的文章,

exists 需要单独写了;

 

2.6  all , some , any

2.6.1  all

All :用于把一个值和另一个集合里全部值进行比较;

比如

Wheresalary>all salary (select from employee_tblwhere city='new york' )

意思是测试salary是否大于住在ny的全部职员的salary

再看个例子吧,这个就是有点绕啊

Select *

From products_tbl

Wherecast>all(select cost

                              from products_tbl

                                where cost<10);

all挑出来的比最大值大,条件严苛

 

2.6.2  any

Any用于把一个值和另一个列表里的任意值进行比较

Some=any;这俩一样的

any挑出来的只要比最小值大就可以了,条件松的很

 

三, 连接操作符

And;

All;

 

3.1 and

可以用在where子句,是&&,全真才真;

 

3.2 all

用于where子句,|| ,能上就上;

 

And 和all 可以连起来,就像&&和||那么用,可以加小括号;

 

四,求反操作符:not

可组成:

NOT EQUAL;

NOTBETWEEN :

NOTIN;

NOTLIKE :

IS NOTNULL;

NOTEXISTS :

NOT UNIQUE.

 

4.1  不相等

<>和!=都可以用,就像c++里那么用就好了;

 

4.2  not between

也好理解,区域外,不包含区域两端

 

4.3 not in

不说了,不在in后面的括号里的就行

 

4.4 not like

同上同上

 

4.5 is not null

只返回有数据的

 

4.6 notexist

操 作 符 EXISTS 的 求 反 是NOT EXISTS

下 面 的 范 例 判 断 EMP_ID 为333 333 333 的 记 录 是 否 不 在 表 EMPLOYEE TBL 里 :

M*ERE NOT EXISTS(SELECT EMP ID FROM EMPLOYEE_TBL WHERE EMP ID = ' 333333333’)

下 面 的 范 例 展 示 了 操 作 符NOT EXISTS 与 子 查 询 的 联 合 使 用 :

SELECT MAX(COST)

FROM PRODUCTS TBL

WHERE NOT EXISTS (SELECT COST

FROM PRODUCTS TBL

WHERECOST >100);

 

输 出 结果 里 显 示 了 表 里 的 最 高 价 格 , 因 为 没 有 记 录 的 价 格 高 于 1 00。

 

五,算数操作符

+ - *  /

5.1 +

比如 select salary+bones from employee_pay_tab;

出来的表的第一行会是: salary+bones

 

5.2  -

 

和+一样的用法

 

5.3 *

5.4 /

用法都一样,正常的计算

 

组合先乘除后加减,()最好使用;

 

 

 

 

 

阅读全文
0 0