Oracle学习系列2

SQL语法练习:
	1,选择部门30中的所有员工
		select * from emp
			where deptno=30;

	2,列出办事员的姓名,编号和部门编号
		select ename, empno, deptno
			from emp
				where job=upper(‘clerk‘); 

	3,找出佣金高于薪金的员工
		select  *
			from emp
				where comm>sal ;

	4,找出佣金高于薪金的60%的员工
		select *
			from emp
				where comm > sal * 0.6;

	5,找出部门10中所有经理和部门20中所有办事员的详细资料
		select *
			from emp
				where (deptno=10 and job=‘manager‘) or ( deptno=20 and job=‘clerk‘ );

	6,找出部门10中所有经理,部门20中所有办事员,既不是经理也不是办事员但其薪金大于或等于2000的所有员工 的详细资料
			select *
				from emp
					where (deptno=20 and job=‘manager‘)or(deptno=20 and job=‘clerk‘)
							or (job NOT IN(‘manager‘, ‘clerk‘) and sal >=2000) ;

	7,找出收取佣金的员工的不同工作
		select distinct job
			from emp
				where comm IS NOT NULL;

	8,找出不收取佣金或者收取的佣金低于100的员工
		select *
			from emp
				where (comm is null ) or (comm<100);

	9,找出各月倒数第三天受雇的所有员工
		select *
			from emp
				where last_day(hiredate)-2 =hiredate ;

	10,找出早于12年前受雇的员工
		select *
			from emp
				where (months_between(sysdate, hiredate) /12 ) > 12 ;

	11,以首字母大学的方式显示所有员工的姓名
		select initcap(ename)
			from emp;

	12,显示正好为5个字符的员工的姓名
		select ename
			from emp
				where length(ename)=5 ;

	13,显示不带’R‘的员工的姓名
		select ename
			from emp
				where ename not like ‘%R%‘ ;

	14,显示所有员工姓名的前三个字符
		select substr(ename,0,3)
			from emp ;

	15,显示所有员工姓名,用’a‘替换所有的’A‘
		select replace(ename, ‘A‘,‘a‘)
			from emp ;

	16,显示满10年服务年限的员工的姓名和受雇日期
		select ename ,hiredate
			from emp
				where (months_between(sysdate, hiredate) /12 ) > 10 ;

	17,显示员工的详细信息,按姓名排序
	select *
		from emp
			order by ename;

	18,显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面
		select ename, hiredate
			from emp
				order by hiredate;

	19,显示所有员工的姓名,工作和薪金,按工作的降序排序,若工作相同则按薪金排序
		select ename , job, sal
			from emp
				where job desc, sal ;

	20,显示所有员工的姓名,加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面
		select ename,to_char(hiredate,‘yyyy‘) year, to_char(hiredate,‘yy‘) months
			from emp
				order by months ,year ;

	21,显示在一个月为30天的情况的所有员工的日薪金,忽略余数
		select ename ,round(sal/30)
			from emp

	22,找出在任何年份的2月受聘的所有员工
		select *
			from emp
				where  to_char(hiredate,‘mm‘) = 2 ;

	23,对于每个员工,显示其加入公司的天数
		select ename, round(sysdate-hiredate) days
			from emp ;

	24,显示姓名字段的任何位置包含’A‘的所有员工的姓名
		select *
			from emp
				where ename like ‘%A%‘ ;

	25,以年月日的方式显示所有员工的服务年限。
		select ename ,trunc( months_between( sysdate , hiredate )/12 ) years,
					  trunc( mod( months_between( sysdate,hiredate ),12 ) ) months,
					  trunc( mod( (sysdate-hiredate),30 ) )days
			from emp ;
时间: 2024-12-10 18:35:53

Oracle学习系列2的相关文章

Oracle学习系列4

Oracle学习系列4 ************************************************************************************ 数据库更新操作: 分类: 查询操作:select 更新操作:insert ,update , delete 为了保存原始的emp表的信息,在进行增删改之前备份词表: create table emp_bak as select * from emp ; //将表emp结构和数据完整的复制出来 添加数据:

Oracle学习系列3

Oracle学习系列3 ************************************************************************************ 多表查询: 1,SQL1999语法对多表查询的支持 2,分组统计及统计函数的使用 3,子查询,并结合多表查询,分组统计做复杂查询 4,数据库的更新操作 5,事务处理和数据库死锁 ****************************************************************

Oracle学习系列5

Oracle学习系列5 ************************************************************************************ 1,掌握表的建立与删除 了解Oracle中的主要数据类型 2,约束的分类和使用 3,表的关联:交,并,补 4,掌握ROWNUM伪列的作用 5,掌握序列的使用 6,掌握视图的作用 7,了解同义词,用户管理,权限分配与撤销,数据库的备份 ------------------------------------

Oracle学习系列1-7

Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 300    ; set pagesize 30     ; 编辑sql命令: ed a.sql 执行 @a 切换用户: conn User/passwd   [as sysdba|sysoper ] conn system/manager conn sys/change_on_install  as

Oracle学习系列7

Oracle学习系列7 ************************************************************************************ 关联表的约束: 强制删除关联表中的父表: drop table tab_name cascade constraint ; 约束本身是可以修改的,但是不建议修改约束 知识点: 1,掌握视图的作用及定义 2,掌握序列的使用:SEQUENCE 3,掌握PowerDesigner设计工具的使用 4,了解同义词,

Oracle学习系列6

Oracle学习系列6 ************************************************************************************ 删除约束(重点): 格式: alter table person drop constraint constraint_name ; 创建person表: create table person( UID varchar(18) name varchar(200) not null, //非空约束 age

Oracle 学习系列之一(表空间与表结构)

create tablespace user3 datafile 'e:\test\user3_data.dbf' size 20M --表空间初始大小为: 20Mautoextend on next 5M maxsize 50M  --自动增长 及每次扩展5M ,表空间的最大为50M --查看 表空间存放路径及信息select * from dba_data_filesselect * from dba_tablespaces--查看所有用户的默认表空间select user_id,usern

Oracle 学习系列之二(会话与事务级临时表)

--创建会话临时表create global temporary table tmp_user_session(user_id int, user_name varchar2(20),user_email varchar2(30)) --这句表示 当事务提交时 保留数据on commit preserve rows --向临时表中插入数据insert into tmp_user_session(user_id,user_name,user_email) values(1,'孙业宝','[emai

oracle学习系列之三 (约束)

主键约束:外键约束:唯一性约束:检查约束:默认值约束 -——————五大约束 一. 主键约束: --创建表的主键约束  create table student (student_id number primary key,student_name varchar2(20),sudent_birthday date,student_address varchar2(50),student_phone varchar2(20)) --显示命名主键约束  --第一种写法:create table s