资源描述:
《java学习之oracle基础详解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、java程序员学习(二)oracle基础详解(二)oracle查询语句和数据排序分类:oracle2012-12-0309:072670人阅读评论(17)收藏举报本文所以练习都是基于oracle自带提供的一个数据库进行的。数据库中包含员工表emp。部门信息表dept。员工工资工总表下面是三个表的表结构:一:基本查询语句1.最简单的查询所有列语句Select*fromemp;2.查询指定列表的查询语句Selectempno,ename,salfromemp;注意:oracle默认的字符型和日期型数据是左对齐。而数字数
2、据是右对齐3.带有简单算术运算符的简单查询:Selectempno,ename,sal+500fromemp;注意:oracle中简单运算符的优先级:1)先乘除,后加减2)同一优先级次序是从左到右3)如使用了括号。先运算括号内4.在sql语句中使用列的别名Selectempnoas"num",enamename,(sal+500)*12"annualsalary"fromemp;从上面sql语句我们可以看出。只需在列名和别名之间放上as或者空格就可以把列名改为别名。字符串别名需要加上双引号。5.连接运算符Selec
3、tename
4、
5、"每年的工资为"
6、
7、(sal+500)*12"annualsalary"fromemp;Oracle中的连接符是由两个竖线(
8、
9、),用于把一个或多个列或字符串连接在一起。6.去重运算符distinctSelectdeptnofromemp;Selectdistinctdeptnofromemp;从上面可以看出。查询员工表中所有员工的部门号。在第一个查询语句中。没有用distinct去重。第二个用到distinct去重之后。所有部门号相同的数据都去掉了二.限制性查询和数据排序1.where关键字。其后
10、跟限制性条件。条件由列名、字符串和一些比较预算附等组成。条件格式:表达式opera表达式这里的opera可为:>,>=,<,<=,=,<>(或),!=除了这些oracle还提供了betweenand、in和like限制条件例句:Select*fromempwheresal>=2000;2.使用betweenand比较Select*fromempwheresalbetween2000and3000;获得工作在2000和3000之间的所有数据。值得注意1.betweenand也可以用于时间的比较。此时时间要用单引号。2
11、.如果想查询不在某一区间的数据。直接在between前面加not就可以3.使用in比较符查找工作为saleman、clerk和manager的人Select*fromempwherejobin('SALESMAN','CLERK','MANAGER');附:如果想查找数据不在所给的元素中。可以直接在in前面加not4.使用like比较符Select*fromempwherejoblike'SA%';上诉例子指的就是查询工作名以SA开头的所有员工信息。“%”表示0个或多个字符“-"表示一个且只能是一个字符注意:这里有
12、一点要注意的是。Where后面的查询条件中的值中字符串是区分大小写的。笔者在刚才做实验的时候。把SA写成sa。一直不出结果。所以请大家注意这一点。5.转移字符:”“6.Orderby子句Select*fromempwherejoblike'SA%'orderbysal;由上面我们可以发现。我们查询到的结果按工资从小到大排好了顺序。Oracle查询数据中如果用到orderby进行排序的话。默认的排序为(ASC)升序。如果想要降序的话用DESC注意:1.如果查询中不使用orderby。结果次序不确定。即两次查询。次序
13、可能不一样2.如果使用了orderby子句。其一定是sql语句中的最后一个子句7.orderby子句中使用别名或表达式。Selectename,(500+sal)*12annualsalfromempwherejoblike'SA%'orderbyannualsal;Oracle进行排序时可以用别名作为排序列。也可以用表达式、注:1.oracle也可以用列号作为排序的规则。但是这种情况很少用。因为用列号排序不太明确2.Oracle中排序也可以用多列作为排序标准,中间用逗号隔开。Selectename,(500+sa
14、l)*12annualsalfromempwherejoblike'SA%'orderbyannualsal,ename;