【数据库】3数据类型、运算符

八数据类型

数值类型字节
int或integer4
float4
double8
decimal(位数,小数)M+2
BIT\BLOB(二进制)

日期和时间字节格式
date3YYYY-MM-DD
time3HH:MM:SS
year1YYYY
datetime8YYYY-MM-DD HH:MM:SS
timestamp4YYYYMMDD HHMMSS

插入系统当前时间日期

insert into 表 values (current_time()),(current_date()),(now());

year:
00~69→2000~2069
70~99→1970~1999
0→0000
2166→0000

time:
1112→00:11:12
11:12→11:12:00
23:23→23:23:00
210:10→2*24+10=58:10:00 DHH→D*24+HH
10→00:00:10
101112→10:11:12
107010→00:00:00超出时间范围


字符串
char固定长度字符
varchar长度可变
text不删除尾部空格,BLOB\text可以存储图像、声音,会降低性能,可存文件路径
enum
set

enum

enum值索引
nullnull
‘ ’0
first1
second2
third3

例1
创:create table tmp9(
enm enum(‘first’,’second’,’thrid’));
查:select enm,enm+0 from tmp9;
结:
first 1
second 2
thrid 3
null null
例2
创:
create table tmp10
(soc int,level enum(‘excellent’,’good’,’bad’));
插:
insert into tmp10 values(70,’good’),(90,1),(75,2),(50,3),(100,’best’);
结:
soc, 70 , 90 , 75 , 50 , 100
level,good,excellent,good,bad


set
创:
create table tmp11(
s set(‘a’),(‘b’),(‘c’),(‘d’);
插:insert into tmp11 values(‘a’),(‘a,b,a’),(‘c,a,d’),(‘a,x,b,y’);
结:a,ab,acd,ab


九运算符

运算符
算数运算符+-*/%
比较运算符<、>、<=、>=、=、!=、<>、<=>安全等于
in、not in、is null、is not null、between and
greatest(最大值)、least(最小值)、like(%/_)、regexp
逻辑运算符1(true)0(false)、NOT\AND\OR、!\&&\||、xor(异或)
位操作运算符&、|、~、^、《、》
特殊字符()‘、“”、\、\r回车、\n换行、\tab、\b退格

优先级
=,::=
||,or
xor
and,&&
not
between and,case,when,then,else
=比较,<=>,>=,>,<=,<,<>,!=,is,likerecgexp,in
|
&
《》
-+
*/%
^
-负号,~位反转

1算术运算符

create table tmp14(num int);
insert into tmp14 value(64);
select num,num+10,num*2,num/2,num%3,num/0,num%0 from tmp14;
64,74,128,32.00,1,null,null

2比较运算符

例1:
select 1=0,’2’=2,2=2,’0.02’=0,’b’=’b’,(1+3)=(2+2),null=null;
结:0,1,1,0,1,1,null
<=>结:0,1,1,0,1,1,1
例2:字符串
查:select null<>null,’good’<=’good’,null<=null
结:null,0,null good第3个0>god第3个d
‘a’=’A’返回1 使用binary二进制返回0
例3:isnull
查:select null is null ,is null(null),isnull(10),10 is null;
结:1,1,0,1
例4:
select 4 between 4 and 6,‘x’between ‘f’and‘g’;
结:1,0
例5:
select least(2,0),least(‘a’,’b’,’c’),least(10,null),greatest(10,null);
结:0,a,null,null
例6:
select 2 in(13,5,‘think’),2 not in(1,3,5,‘think’),null in(1,3,‘thinks’),10 in(null,1);
结:0,1,null,null

3like

%匹配任何数目字符,包括0字符
_一个字符

select ‘stud’ like ‘%d’ ,’s’ like null;
1,null


4regexp正则表达式

符号作用例子示例
^该字符开头^bbook
$该字符结尾st$test,perst
.任何一个单字符b.tbit,but
*匹配零个或多个在它前面的字符f*nfan,fn
+前面字符一个以上ba+ba,bag,bare
[……]匹配括号内任意字符[0-9][a-z]
[^]不再括号内[^abc]desk,fox
{n}匹配两个或多个bb{2}bbb,bbbbbbbbbbbb
{n,m}最少两个最多4个b{2,4}bb,bbb,bbbb
x*匹配任何数量x[0-9]匹配任何数量数字.*匹配任何数量任意字符

select ‘ssky’ regexp ‘^s’,from 表 where f_id regexp ‘[ot]’或’[^a-e 1-2]’或’x{2}’;


5逻辑运算符

1)not -!
select not10,not(1-1),!-5,not(!)null,not(!)1+1;
结:0,1,0,null,1
2)and-&&
select 1 and-1,1and0,1 && null,0 && null;
结:1,0,null,0
3)or-||
select 1 or -1 or 0,10 or null,0 || null,null || null
结:1,1,null,null
4)xor a xor b=a and (not b)或(not a) and b
逻辑异或运算符

操作数有null返回null
操作数都非0或为0,返回0
一个为0,一个为非0,返回1

select 1 xor 1,0 xor 0,1 xor 0,1 xor null,1 xor 1 xor 1;
结:0,0,1,null,0

6位运算

①或:|
select 10|15,9|4|2;→15,15

10:1010
15:1111
15:1111=


9:1001
4:0100
2:0010
15:1111=

②异位:^
操作数不同→1
操作数相同→0
select 10^15,1^0,1^1;→5,1,0

10:1010
15:1111
=5:0101

③左移《
select 1《2,4《2;→4,16

1:0000 0001
《:0000 0100=4
《:0001 0000=16

③右移》
select 1》1,16》2;→0,4
④取反~
select 5&~1;→4 ~高于&

1:0001
取反:1110
5:0101
&:0100=4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值