ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 查询基础(二)

查询基础(二)

原创 Linux操作系统 作者:shindousaijia 时间:2010-09-15 18:52:45 0 删除 编辑

八、使用连接操作合并列的输出结果

九、理解空值
数据库使用一个称为空值的特殊的值来表示未知的值。它并不是一个空字符串,而是一个特殊的值。使用空值就表示该列的值未知。
如何区分空值和空字符串?
答:使用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:或
not:非

十六、理解操作符的优先级
AND>OR,而比较操作符优先级高于AND。

十七、使用order by子句对行进行排序

asc:从小到大
desc:从大到小
十八、执行使用两个表的select语句

十九、使用表别名

二十、笛卡尔积
如果在多表查询中不指定连接条件,就会导致将一个表中的所有行都连接到另一个表中的所有行上,这种情况就成为笛卡尔积。
二十一、连接条件和连接类型
连接条件:
等连接:在连接中使用等于操作符。
不等连接:在连接中使用除等号之外的操作符。
连接类型:
内连接:只有当连接中的列包含满足连接条件的值时才会返回一行。也就是说,如果某一行的连接条件中的一列是空值,那么这行就不会返回。
外连接:即使连接条件中的一列包含空值也会返回一行。
左外连接和右外连接的区别

注:只能在连接的一端使用外连接操作符,而不能在两端同时使用外连接操作符。
不能同时使用外连接条件和IN操作符。
不能同时使用一个外连接条件和另外一个使用or操作符的连接条件
自连接:返回连接到同一个表中的行。

二十二、使用SQL/92语法执行连接
1.使用SQL/92标准语法执行两个表的内连接

2.使用Using关键字简化连接

注:只有满足以下条件才可使用using关键字进行简化:
a.查询必须是等连接的
b.等连接中的列必须同名

1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

9.jpg

10.jpg

11.jpg

12.jpg

13.jpg

14.jpg

15.jpg

16.jpg

17.jpg

18.jpg

19.jpg

20.jpg

21.jpg

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10420169/viewspace-674003/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 查询基础(一)
请登录后发表评论 登录
全部评论

注册时间:2010-09-09

  • 博文量
    14
  • 访问量
    32125