Oracle 11g中修改被锁定的用户:scott

在安装完Oracle10g和创建完oracle数据库之后,想用数据库自带的用户scott登录,看看连接是否成功。

在cmd命令中,用“sqlplus  scott/ tiger”登录时,老是提示如下信息: ERROR:ORA-28000:账户已被锁定。

但如果是sys用户,密码必须加上as sysdba,即完整密码为:change_on_install as sysdba

1】用 system / toolater 登记系统  manager

2】依次运行以下语句

grant all privileges TO System;

grant connect,resource,dba to System;

alter user scott account unlock;

3】sqlplus  scott/ tiger

===================================================================

用具体的练习题来学习吧!(本文使用oracle自带的表:emp表、dept表)

1. 查询部门30中的雇员信息。

select * from emp where deptno=30;

2. 查询佣金(comm)高于薪金(sal)的雇员信息。

select * from emp where comm>sal;

3. 查询佣金高于薪金60%的雇员信息。

select * from emp where comm>sal*0.6;

4. 查询部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的信息。

select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 andjob='CLERK');

5. 查询部门10中所有经理、部门20中所有办事员和既不是经理又不是办事员但薪金大于2000的所有雇员信息。

select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 and job='CLERK') or(job<>upper('manager') and job<>upper('clerk') and sal>2000);

注:本例中用到字符型函数upper把小写转化为大写 ,还要注意不等于<>的用法,不等于还有另外两种(!=和^=)。

6. 列出所有办事员的姓名、编号、部门。

select ename,empno,dname from emp e,dept d where e.deptno=d.deptno andjob=upper('clerk');

注:本例中用到了多表连接查询。

7. 查询收取佣金的雇员的不同工作。

select distinct job from emp where comm>0;

注:distinct用来把重复的排除掉。

8. 查询佣金低于100的雇员。

select ename from emp where nvl(comm,0)<100;

注:用nvl函数来对为空值的comm进行处理,若comm为空,则把空值转化为0来与100比较。

9. 查询各月最后一天受雇的雇员信息。

select * from emp wherehiredate=last_day(hiredate);

注:这个例子比较有技巧,大家要好好琢磨。

10.查询工作年限大于25年的雇员信息。

select * from emp where months_between(sysdate,hiredate)/12>25;

注:这里用months_between函数计算雇员工作的总月份。

select * from emp where hiredate<add_months(sysdate,-12*25);

注:日期是能够比较大小的,本例中用add_months函数把当前日期计算到25年前。

11.查询只有首字母大写的雇员姓名。

select ename from emp where ename=initcap(ename);

注:本例中用initcap函数把ename转化为首字母大写的形式来与ename比较。

12.查询正好为6个字符的雇员姓名。

select ename from emp where length(ename)=6;

注:本例中用length函数求ename的长度。

13.查询不带‘R’的雇员姓名。

select ename from emp where ename not like '%R%';

注:注意like的用法,%代表0个或多个任意字符,_代表一个任意字符。

14.查询所有雇员的姓名的前3个字符。

select substr(ename,1,3) from emp;

注:本例中用substr函数提取ename的前三个字符。

15.查询所有雇员姓名并用‘a’替换‘A’。

select replace(ename,'A','a')from emp;

注:本例中用replace函数来把A替换为a。

16.查询所有雇员的姓名和工龄满10年时的日期。

select ename as 姓名,add_months(hiredate,12*10)as 工龄满10年时的日期 from emp;

注:本例中要注意列名的重命名,期中as可以省略。

17.查询雇员的信息,按姓名排序。

select * from emp order by ename;

注:排序就用order by,默认为升序,若要降序,要加desc关键字。

18.根据工作年限查询雇员姓名,并将最老的雇员排在前面。

select ename from emp order by hiredate;

19.查询雇员的姓名、工作、薪金,按工作的降序排序,工作相同时按工资升序排序。

select ename,job,sal from emp order by job desc , sal;

注:本例中的排序用法大家要记住嗷!

20.查询所有雇员的姓名和入职的年份和月份,按雇员受雇日所在月排序,将最早年份的排在前面。

select ename as 姓名,to_char(hiredate,'yyyy')as 年份,to_char(hiredate,'mm') as 月份 from emp order by hiredate;

注:注意本例中对日期hiredate的处理。

21.查询雇员的日薪金(假定每月30天)。

select ename as 姓名,sal/30 as日薪 from emp;

22.查询在2月份入职的雇员信息。

select * from emp where to_char(hiredate,'mm')=02;

23.查询每个雇员加入公司的天数。

select ename 姓名,sysdate-hiredate as工作天数 from emp;

注:两个日期相减得出它们之间的天数。

24.查询姓名中包含‘A’的所有雇员姓名。

select ename from emp where ename like '%A%';

25.以年、月、日查询每位雇员的工作年限。

select ename as 姓名,months_between(sysdate,hiredate)/12as 工作年数,months_between(sysdate,hiredate) as 工作月数,sysdate-hiredate as 工作天数 from emp;

26.查询至少有一个雇员的部门。

select dname from dept where deptno in(select distinct deptno from emp);

注:本例很有技巧,大家多看一分钟,哈哈!

27.查询薪金比‘SMITH’多的雇员信息。

select * from emp where sal>(select sal from emp whereename='SMITH');

28.查询雇员姓名以及其直接上级的姓名。

select a.ename as 姓名,b.ename as 上级姓名 from emp a,emp b where a.mgr=b.empno;

注:本例可以类似的看做多表连接查询,只不过是两个相同的表。

29.查询入职日期早于其直接上级的雇员信息。

select a.* from emp a,emp b where a.hiredate<b.hiredate anda.mgr=b.empno;

select * from emp e where hiredate<(select hiredate from emp whereempno=e.mgr);

注:提供两种做法供大家参考。

30.查询部门名称和这些部门的雇员以及没有雇员的部门。

select dname,ename from dept d left join emp e on e.deptno=d.deptnoorder by dname;

注:本例中要注意left join 的用法,就是首先提取dept表中所有的dname,再加上与dapt和emp相匹配的数据项。

31.查询各种工作类别的最低薪金,显示最低薪金大于1500的记录。

select job,min(sal) from emp group by job having min(sal)>1500;

注:按组查询就用group by,having条件在分组后执行。

32.查询薪金高于公司平均工资的雇员信息。

select * from emp where sal>(select avg(sal) from emp);

33.查询与‘SCOTT’工作相同的雇员信息。

select * from emp where job=(select job from emp where ename='SCOTT');

34.查询某些雇员的姓名和薪金,条件是他们的薪金高于部门30中所有雇员的薪金。

select ename,sal from emp where sal>(select max(sal) from emp wheredeptno=30);

35.查询某些雇员的姓名和薪金,条件是他们的薪金高于部门30中任一雇员的薪金。

select ename,sal from emp where sal>(select min(sal) from emp wheredeptno=30);

36.查询每个部门的信息以及该部门中雇员的数量。

select d.deptno,dname,count(ename) from dept dleft join emp e on(e.deptno=d.deptno) group by dname,d.deptno order byd.deptno;

37.查询从事同一种工作但属于不同部门的雇员信息。

select a.ename,a.job,a.deptno,b.deptno,b.job,b.ename from emp a,emp bwhere a.job=b.job and a.deptno!=b.deptno;

38.查询各个部门的经理的最低薪金。

select deptno,min(sal) from emp where job='MANAGER' group by deptno;

39.查询所有雇员的年薪并按年薪排序;

select ename,(sal+nvl(comm,0))*12 as 年薪 fromemp order by 年薪;

40.查询薪金水平为4的雇员信息。

select * from (select ename,sal,rank() over(order by sal desc) as gradefrom emp) where grade=4;

注:本例中值得学习的是rank() over()的用法,rank为跳跃排序,若1,1 则接下来就是3.本例就是用rank多数据按sal排序。

Oracle_11g桌面版 中解决被锁定的scott 教学数据库的方法的更多相关文章

  1. Oracle_11g中解决被锁定的scott用户的方法(转载)

    转自:http://www.2cto.com/database/201402/277206.html Oracle 11g中修改被锁定的用户:scott 在安装完Oracle11g和创建完oracle ...

  2. Oracle_11g中解决被锁定的scott用户的方法

    在安装完Oracle10g和创建完oracle数据库之后,想用数据库自带的用户scott登录,看看连接是否成功. 问题: 在cmd命令中,用“sqlplus  scott/ tiger”登录时,老是提 ...

  3. 启用Win8(中文版/核心版)中被阉割的远程桌面服务端

    Windows 8/8.1 标准版(中文版/核心版)中取消了远程桌面服务端,想通过远程连接到自己的电脑就很麻烦了,第三方远程桌面速度又不理想(如TeamViewer).通过以下方法可让系统恢复远程桌面 ...

  4. ubuntu14.04 桌面版/服务器版安装DevStack教程

    官网安装教程链接:https://docs.openstack.org/developer/devstack/ 我在ubuntu14.04 LTS 桌面版/服务器版都安装DevStack成功后,在这里 ...

  5. spice在桌面虚拟化中的应用系列之二(Linux平台spice客户端的编译安装,支持USB映射)

    1.系统环境 1.1 测试环境 centos6.4最小化安装(centos6.x桌面版也适用) 使用yum源为163源加EPEL源 1.2 spice客户端介绍 spice作为远程连接工具,可以支持远 ...

  6. Github桌面版使用方式(MAC)

    Github是一个流行的代码管理网站,同时也是全球最大的同性交友网站(滑稽).Github网页上你可以自由地托管自己的项目,也可以fork别人的项目过来玩耍,非常之方便,今天笔者就来介绍一下githu ...

  7. Win10 下安装Ubuntu 21.04桌面版 双系统 并设置win10为默认启动系统 详细教程

    @ 目录 〇.写在前面 〇 - Plus:如何进入BIOS 〇 - Plus - Plus:U盘启动快捷键 一.磁盘分区:Win10划分未分配空间 二.下载Ubuntu 21.04镜像 三.安装U盘启 ...

  8. 转 mvc项目中,解决引用jquery文件后智能提示失效的办法

    mvc项目中,解决用Url.Content方法引用jquery文件后智能提示失效的办法   这个标题不知道要怎么写才好, 但是希望文章的内容对大家有帮助. 场景如下: 我们在用开发开发程序的时候,经常 ...

  9. SQL Server中解决死锁

    SQL Server中解决死锁的新方法介绍 数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁,通过SQL Server 2005, 现在似乎有了一种新的解决办法. 将下面的 ...

随机推荐

  1. 第三篇:jvm之垃圾回收器

    一.Serial收集器 新生代收集器,在垃圾回收时,必须暂停其他所有的工作线程.即Stop-The-World. 评价:老而无用,食之无味,弃之可惜. 二.ParNew收集器 新生代收集器,seria ...

  2. SQL UNION操作符使用

    SQL UNION 操作符 SQL UNION 操作符合并两个或多个 SELECT 语句的结果. SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意 ...

  3. SQL Server 2016 ->> T-SQL新特性

    1) TRUNCATE表分区而不是整表 CREATE TABLE dbo.TruncatePartitionTest ( PrtCol INT, Col2 ) ) ON [myPS1](PrtCol) ...

  4. 快速替换dll命名空间 z

    Step1:使用ildasm将代码反编译成il中间语言. 名字存贮为你想要的名字. Step2:用记事本打开il文件全局替换命名空间. Step3:使用ilasm将il文件编译成dll 按下回车即可生 ...

  5. 图解:TCP协议中的三次握手和四次挥手

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资 ...

  6. 分享Spring Scheduled定时器的用法

    摘要:在coding中经常会用到定时器,指定每隔1个小时,或是每天凌晨2点执行一段代码段,若是使用java.util.Timer来做这种事情,未免重复造轮子.幸亏Spring中封装有定时器,而且非常好 ...

  7. 理解Underscore中的_.template函数

    Underscore中提供了_.template函数实现模板引擎功能,它可以将JSON数据源中的数据对应的填充到提供的字符串中去,类似于服务端渲染的模板引擎.接下来看一下Underscore是如何实现 ...

  8. 关于映射异常org.hibernate.MappingException: An association from the table DUTY_INFO refers to an unmapped class: com.pms.entities.other.Department的原因。

    在编程过程当中由于修改过了包名. 原来的包名是: com.pms.entities.base 然后改为了:com.pms.entities.other 当我重新映射生成数据表的时候就报错:org.hi ...

  9. 【转】Android单帧动画Rotate旋转

    项目有一个需求,有一个刷新按钮,上面放着一个常见的静止的刷新圆圈,如下图: 一旦用户按了刷新按钮,需要让这个刷新圆圈转动起来,让用户感觉到程序还在运行着,而不是卡死了. 有两个思路,一是将这个图按照旋 ...

  10. poj 1159 Palindrome 【LCS】

    任意门:http://poj.org/problem?id=1159 解题思路: LCS + 滚动数组 AC code: #include <cstdio> #include <io ...