java,ruby,mysql 数据类型 运算符 对照学习笔记

数据类型

java字节Ruby字节mysql字节
byte1
short2
int4Integer->fixnum(普通整数)<=4tinyint1
Integer->bignum(大整数)>4smallint2
mediumint3
int/integer4
bigint8
long8
float4floatfloat4
rational(有理数)
complex(无理数)
double8double8
decimal
boolean1(位)true / false 伪变量
char2
数组数组
对象对象
nullnilnull
哈希类型
范围类型
字符串字符串char
varcha
binary
varbinary
tinyblob
blob
mediumblob
longblob
tinytext
text
medinutext
longtext

具体介绍:
MySQL的数据类型
MYSQL常用函数 读书笔记
Ruby 数据类型


算数运算符

javarubymysql
+++
---
***
/1/2=0
1.0/2=0.5
1/2.0=0.5
//

DIV(1,2)
1/2=0.5
1 DIV 2=0
1.0 DIV 2=0
3 DIV 2=1
3.9 DIV 2=1
8 DIV 3=2
%1%2=1
1.9%2
%%

MOD(1,2)
1%2=1
MOD(1,2)=1
1.9%2=1.9
MOD(1.9,2)=1.9
++
**指数
注意:
byte short char -> int 先数值提升到int 再运算
不同类型运算先数值提升再运算
低到高自动提升,高到低需强转
1/0java.lang.ArithmeticException: / by zero1/0NULl
100%0java.lang.ArithmeticException: / by zero100%0NULL

位运算符

javarubymysql
&&
||
~~
^^
>>>>
<<<<
>>>

关系运算符

javarubymysql
>>>
>=>=>=
<<<
<=java 里只能单字符; ‘bdf’<=‘b’ 报错
字符串比较用compareTo 和equals
<=<=‘bdf’<=‘b’ ->0
‘b’<=‘b’ ->1
0<1 ->1;
==1=0 ->true
1=1 ->false
NULL=NULL ->true
===1=0 ->1
1=1 ->0
NULL=NULL ->NUll
!=1!=0 ->true
1!=1 ->false
null !=null->false
!=<> / !=1<>0 ->1
1<>1->0
null<>null->null
<=>a<=>b
a>b = 1
a=b = 0
a<b = -1
<=>
“<=>”运算符,和“=”类似,在操作数相等时值为 1,不同之处在于即使操作的值为NULL也可以正确比较
1<=>1->1
2<=>0 ->0
0<=>0 ->1
NULL<=>NULL ->1
===左边是数值或者字符串时,=的意义是一样的
===还可以与=~一样来判断正则表达式是否匹配
判断右边的对象是否属于左边的类等
.eql?具有相同的类型和相等的值
1 == 1.0 返回 true
1**.eql?**(1.0) 返回 false
equal?具有相同的对象 id
如果 aObj 是 bObj 的副本,那么 aObj == bObj 返回 true,
a**.equal?bObj 返回 false,但是 a.equal?**aObj 返回 true
between10 between 10 and 20 ->1
20 between 10 and 20->1
9 between 10 and 20->0
21 between 10 and 20->0
in1 in (1,2,3) ->1
‘t’ in (‘t’,‘a’,‘b’,‘l’,‘e’) ->1
0 in (1,2) ->0
is nullnull is null ->1
0 is null ->0
is not null0 is not null ->1
null is not null ->0
like123456 like ‘123%’ ->1
123456 like ‘%123%’ ->1
123456 like ‘%321%’ ->0
regexp / rlike
使用格式为“str REGEXP str_pat”,当 str字符串中含有 str_pat相匹配的字符串时,则返回值为1,否则返回0。
‘abcdef’ regexp ‘ab’ ->1
‘abcdefg’ regexp ‘k’ ->0
注意
比较运算符可以用于比较数字、字符串和表达式。
数字作为浮点数比较,而字符串以不区分大小写的方式进行比较

逻辑运算符

javarubymysql
&&短路与and / &&and / &&


操作数中有任何一个为NULL则返回值为NULL
(1 and 1) -> 1
(0 and 1) -> 0
(3 and 1 ) -> 1
(1 and null) -> NULL
||短路或or / ||or / ||

当有一个操作数为NULL时,如另一个操作数为非零值,则结果为1,否则结果为NULL。
假如两个操作数均为NULL,则所得结果为NULL,
(1 or 0) -> 1
(0 or 0) -> 0
(1 or null) -> 1
(0 or null) -> null
(null or null) -> null
^xor

当任意一个操作数为NULL时,返回值为NULL。
对于非NULL的操作数,如果两个的逻辑真假值相异,则返回结果1,否则返回0
1 xor 1 -> 0
0 xor 0 -> 0
1 xor 0 -> 1
null xor 0 -> NULL
null xor 1 -> NULL
!not / !not / !


NOT NULL的返回值为NULL
not 0 -> 1
not 1 -> 0
not null -> Null
&
|

java中的逻辑运算符& 、&& 、| 、||、!、^


赋值运算符

javarubymysql
==
+=+=
-=-=
*=*=
/=/=
%=%=
&=
|=
^=
<<=
>>=
>>>=
**=

其他运算符

java说明ruby说明mysql说明
三元运算符三元运算符
?:?:
数组运算符数组运算符
[][]
点运算符"."点运算符"."
..通过 类.方法名 / 模块名.方法名 来调用类或模块中的方法
双冒号运算符 “::”**
::1.在类或模块内定义常量、实例方法和类方法,可以从类或模块外的任何地方进行访问
2.在 Ruby 中,类和方法也可以被当作常量;
3.类 :: 常量 / 模块名称 :: 常量
3.在表达式的常量名前加上 :: 前缀,即可返回适当的类或模块对象
4.如果 :: 前的表达式为类或模块名称,则返回该类或模块内对应的常量值;如果 :: 前未没有前缀表达式,则返回主Object类中对应的常量值
字符串配合+运算符
“aa”+5 -> “aa5”
范围运算符
1…10 创建从 1 到 10 的范围
1…10 创建从 1 到 9 的范围
defined? 运算符
defined?判断传递的表达式是否已定义
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值