|
ORM(Object relationship mapping对象关系映射)基本思想: ?表定义了数据结构,类似于Java中的类。 ?字段定义了表的详细结构,类似于Java中类的属性。 ?记录(行)定义了某个数据,类似于Java中某个类的对象。 使用上面思路,将实验用表:emp和dept之间的关系,使用两个Java类表示。 (1)emp表: public class Emp{
private int empNo; //员工编号; private String eName;//员工姓名; private String job;//员工岗位; private int mgr;//员工上级编号; private String hireDate;//员工入职时间; private double salary;//员工基本工资; private double commit;//员工绩效; private int depNo;//员工部门编号;
//构造方法,略; //getter,setter方法,略;
}
(2)dept表: public class Dept{ private int deptNo; //部门编号; private String dName; //部门名称; private String loc;//部门地址;
//构造方法,略; //getter,setter方法,略; }
?
6.【上机】完成下面的sql语句,并截图表示出结果。
i.每个员工的所有信息 分析:把员工表的所有内容都列出来; select * from emp; ii.每个人的部门编号,姓名,薪水 分析:这3项在一个表里吗?在,简单了。 同上题一样,也是14条纪录。把“*”换成指定的列名。 select deptno,ename,sal from emp; iii.每个人的年薪 分析:还是查员工信息。没有“年薪”字段,但有”sal(月薪)”,可以通过计算得到年薪信息。 select ename,sal*12 from emp; iv.计算2*3的值(利用虚拟表:dual) select 2*3 from dual; v.得到当前时间 select sysdate from dual; vi.求每个人的年薪,列的别名:“年薪”; 分析:怎么给列起别名呢?“as”关键字; select ename,sal*12 as 年薪 from emp;--“年薪”可以加或不加双引号,但单引号不行。 vii.计算每个人的全年的收入包括月薪和年终津贴(使用:nvl函数处理null值) 分析: (1)年薪 是 (月薪+绩效)*12; (2)但绩效(comm)有null值,当comm是null值时,月薪+绩效的结果也是null值; (3)所以,当comm为null值时,需要把它当作0来处理。哪个函数能胜此重任呢?nvl(); (4)nvl()相当于一条if…else语句:如果字段值不为空,取原值;否则,空值当作0来处理。
select ename,sal*12+nvl(comm,0)as 年薪 from emp;
viii.求姓名和薪水和津贴,格式为smith-sal-123(利用拼接字符串) 分析:拼接字符串不同于java中用“+”,这里用”||“。这里拼接的字符串是作为数据出现在字段内容中的。 select ename||‘-‘||sal||‘-‘||nvl(comm,0) 收入信息 from emp;
7.Oracle中,||表示什么含义?
字符串拼接。见上题“分析”部分。
8.Oracle中,双引号一般用于什么地方?单引号用于什么地方?
(1)双引号:在给字段起别名时,双引号可以加在别名上(也可以不加); 如下例中的“年薪“: select ename,sal*12 as “年薪” from emp; (2)单引号: i.字段数据中需要拼接字符串时,字符串常量要加单引号。如下例中的连字符“-“: select ename||‘-‘||sal||‘-‘||nvl(comm,0)from emp; ii.通过某varchar类型的字段数据值来查询记录时,这个用来查询的字段值要用单引号,如下例中的“KING“: select * from emp where ename=‘KING‘;
?
9.【上机】完成下面的sql语句,并截图表示出结果。
(编辑:PHP编程网 - 湛江站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|