Oracle10g中几张练习用的几张表的关键字段的含义

SQL> desc  s_dept;(部门表)
 Name                       Null?    Type
 ----------- -------- ----------------------------------
 ID                        部门编号            NOT NULL NUMBER(7)
 NAME                部门名称             NOT NULL VARCHAR2(25)
 REGION_ID      地区编号             NUMBER(7)


SQL> desc  s_emp;(员工表)
 Name                             Null?    Type
 -------------- -------- -------------------------------
 ID                            员工编号            NOT NULL NUMBER(7)
 LAST_NAME            姓               NOT NULL VARCHAR2(25)
 FIRST_NAME          名               VARCHAR2(25)
 USERID                 xfWang            VARCHAR2(8)
 START_DATE      雇佣日期           DATE
 COMMENTS         --              VARCHAR2(255)
 MANAGER_ID     管理者ID            NUMBER(7)
 TITLE                      部门名称            VARCHAR2(25)
 DEPT_ID               部门ID             NUMBER(7)
 SALARY                工资               NUMBER(11,2)
 COMMISSION_PCT 员工奖金            NUMBER(4,2)
-------------------------------------------------------
SQL> desc  s_region;(地区表)
 Name                             Null?    Type
 ------------------------------------------------------
 ID              地区编号                NOT NULL NUMBER(7)
 NAME      地区名称                NOT NULL VARCHAR2(50)






练习:


1.列出所有的员工以及他们所在的部门名称和部门对应的地区名称

select  first_name,s_dept.name,s_region.name from s_emp,s_dept,s_region where dept_id=s_dept.id and s_dept.region_id=s_region.id;


2.列出部门编号,部门名称,部门人数,并按人数的多少降序排列


select s_emp.dept_id,s_dept.name,count(s_emp.id) as num from s_emp,s_dept where s_emp.dept_id=s_dept.id group by s_emp.dept_id,s_dept.name order by num;


注意:在SQL语法中,用了group by 则select之后的字段除了聚集函数外都必须出现在group by中。这条很关键,否则select语句会报错,类似于:not a GROUP BY expression



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值