一,逻辑操作符
ISNULL
XXXXXX where name is null
名字为空的人
BETWEEN
xxxxx where salary between '20000' and '40000'
薪水在两万到四万之间的
IN
where salary in ('10','20','30' )
薪水在10,20,30 的
LIKE
通配符有两个
%百分号
_下划线
where salary like '200%'匹配200开头的
where salary like '%200%'匹配包含200的
where salary like '_00%'匹配第二个第三个字符是00的
where salary like '2_%_%'匹配2开头的并且长度至少为3的
where salary like '%2'匹配以2结尾的
where salary like '_2%3'匹配第二位是2结尾是3的
where salary like '2___3'匹配长度为5开头2结尾3的
EXISTS
where exists (select name from username where name=wang)
搜索表里满足特定条件的记录
为子查询
ALL,SOME和AYN
select * from class where cost > all (select cost from class where cost<10);
查询所有在class中的cost大于(所有在calss中cost小于10的和)的值
select * from class where cost > ayn(select cost from class where cost<10);
查询所有比cost小于10 的任意一个值大的值 相当于比括号里任意一个值大就行,
some和ayn 一样可以相互替换。
NOT 求反就是反着来
二,函数
串接函数
例如吧John和son串接
Oracle:
select ‘John’ || ‘son’
sql server:
select ‘john’ + ‘son’
mysql:
select concat(‘john’,‘son’)
translate函数(查找替换)
SELECT translate(‘azhangsan’,‘a’,‘b’) FROM users
有问题
replace(替换)
SELECT REPLACE(username,‘b’,‘a’) FROM users
把username中的b替换成a
upper(换大写函数)
把字符串中的小写换成大写
lower(换小写函数)
小写换大写
substr(截取)
SELECT SUBSTR(username,1,3) FROM users
'1’为起始字符
'3’为截取长度
好像不从0开始数
instr(查找)
SELECT INSERT(username,‘a’,1,1) FROM users
字母a 第一次出现的位置
ltrim(减除左边字符)
select itrim(name,‘abc’) from users
减除name 中左边abc字符
rtrim(减除右边字符)
同上
decode(查找回显)
主要用于 oracle,postgresql
select decode(‘azhangsan’,yes)from users
查找azhangsan ,有就回显yes,没有就回显other
length(回显字符长度)
ifnull(检查Null值,有就替换)
coalesce(同上,区别是可用数据集)
lpad(在左边填充)
lpad(username,30,’.’)
用点填充到30个字符