九、理解空值
数据库使用一个称为空值的特殊的值来表示未知的值。它并不是一个空字符串,而是一个特殊的值。使用空值就表示该列的值未知。
如何区分空值和空字符串?
答:使用oracle内置的一个函数:NVL()。NVL()函数可以将空值转换成另外一个可以真正理解的值。
这里要注意的是列所对应的类型不一样的话~~转换值的类型也要与之对应
比如date类型就不能转换成字符串
如果与列原有类型不一致就会报错:
符合原有类型则能正常转换:
十、禁止重复列
很多时候查询出来的结果当中很多地方是重复的~~~可以使用distinct来去除重复的结果。
十一、比较值
=:等于
!=或<>:不等于
>:大于
<:小于
>=:大于或等于
<=:小于或等于
any:或
all:且
十二、使用SQL操作符
like:匹配字符串中的模式
in:匹配值列表
between:匹配值范围
is null:匹配空值
is nan:匹配NAN这个特殊值,意思是非数字
is infinite:匹配无穷大
以上的操作符均可添加NOT使得意思与操作符含义相反。
1.like
LIKE使用普通字符和一下两个通配符的组合指定:
下划线_ 匹配指定位置的一个字符
百分号% 匹配从指定位置开始的任意个字符
_o%的意思就是第二位字母为o的字符串
如果需要显示%号的话就需要使用ESCAPE选项来标识。
注意第一个%是匹配任意字符,第二个%是代表%本身,第三个%是匹配任意字符,而#是由escape指定的。
十三、使用IN操作符
在where子句中可以使用IN操作符来检索其列值在某个列表中的行。
十四、使用between操作符
在where子句中使用between操作符来检索列值包含在指定区间内的行。这里的区间是闭区间。
十六、理解操作符的优先级
AND>OR,而比较操作符优先级高于AND。
十七、使用order by子句对行进行排序
asc:从小到大
desc:从大到小
十八、执行使用两个表的select语句
十九、使用表别名
二十、笛卡尔积
如果在多表查询中不指定连接条件,就会导致将一个表中的所有行都连接到另一个表中的所有行上,这种情况就成为笛卡尔积。
二十一、连接条件和连接类型
连接条件:
等连接:在连接中使用等于操作符。
不等连接:在连接中使用除等号之外的操作符。
连接类型:
内连接:只有当连接中的列包含满足连接条件的值时才会返回一行。也就是说,如果某一行的连接条件中的一列是空值,那么这行就不会返回。
外连接:即使连接条件中的一列包含空值也会返回一行。
左外连接和右外连接的区别
注:只能在连接的一端使用外连接操作符,而不能在两端同时使用外连接操作符。
不能同时使用外连接条件和IN操作符。
不能同时使用一个外连接条件和另外一个使用or操作符的连接条件
自连接:返回连接到同一个表中的行。
二十二、使用SQL/92语法执行连接
1.使用SQL/92标准语法执行两个表的内连接
注:只有满足以下条件才可使用using关键字进行简化:
a.查询必须是等连接的
b.等连接中的列必须同名
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10420169/viewspace-674003/ ,如需转载,请注明出处,否则将追究法律责任。