20) not null, VARCHAR2(20) not null,
create table EMP(
EMP_NAME VARCHAR2(64), SALARY NUMBER(10,2) , VARCHAR2(2)
EMP_GENDER );
-- Add comments to the columns comment on column EMP.DEP_NO is '部门代码'; comment on column EMP.EMP_ID is '雇员代码'; comment on column EMP.EMP_NAME is '雇员'; comment on column EMP.SALARY is '薪水'; comment on column EMP. GENDER is '性别,M 男士,F 女士';
create table EMP_ADD_INFO( EMP_ID EMP_W EMP_H ); VARCHAR2(20) not null, NUMBER(10,2), NUMBER(10,2)
-- Add comments to the columns comment on column EMP. EMP_ID is '雇员代码'; comment on column EMP. EMP_W is '雇员体重'; comment on column EMP. EMP_H is '雇员身高'; 1) 请写一个 SQL 语句,查询部门’001’中薪水最高的雇员信息;
SELECT E.* FROM EMP E WHERE E.DEP_NO = '001' AND E.SALARY = (SELECT MAX(EE.SALARY) FROM EMP EE WHERE EE.DEP_NO = E.DEP_NO);
2) 请写一个 SQL 语句,统计各部门人员数量信息,要求结果按
照部门代码降序排列;
SELECT E.DEP_NO,COUNT(*) FROM EMP E GROUP BY E.DEP_NO ORDER BY E.DEP_NO DESC;
3) 请写一个 SQL 语句,统计每个部门员工的数目大于一个的记录
SELECT E.DEP_NO FROM EMP E GROUP BY E.DEP_NO HAVING COUNT(*) > 1;
4) 若库表 EMP 无主键、无索引,表中存在大量完全相同的记录,请使用
sql 语句删除重 复记录。 通过建立临时表来实现 SQL>create table temp_emp as (select distinct * from emp) SQL>truncate table emp; (清空 emp 表的数据) SQL>insert into emp select * from temp_emp; (灌入处理后好的数据) 通过使用 rowid 来实现。 SQL>delete from employee where rowid not in ( select max(t1.rowid) from employee t1 group by t1.emp_id,t1.emp_name,t1.salary);--这里用 min(rowid)也可以。 5) 请写一个 SQL 语句,
查询身高不小于 175 公分,体重少于等于 85 公斤的男雇员信息。 SELECT A.* FROM EMP E,EMP_ADD_INFO A WHERE E.EMP_ID = A.EMP_ID AND E.EMP_W <= 85 AND E.EMP_H >= 175 AND A.EMP_ GENDER = ‘M’