1.scott用户简介
SCOTT是在Oracle数据库中,一个示例用户的名称。其作用是为初学者提供一些简单的应用示例,不过其默认是锁定状态。SCOTT的缺省口令为tiger,下面有表emp, dept等,这些表和表间的关系演示了关系型数据库的一些基本原理,Oracle举例说明时一般都用这个用户,一些关于Oracle的书、教材上一般也都用这个用户来讲解。它对于Oracle本身不是必须的,如果不想用可以删除(如果你没在它下面建其它对象的话)。2.环境准备
我们在Oracle 10g中进行试验,把scott用户删除。点击(此处)折叠或打开
- C:\\Users\\Administrator>sqlplus sys/hoegh as sysdba
-
- SQL*Plus: Release 10.2.0.4.0 - Production on 星期三 5月 13 10:24:10 2015
-
- Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
-
-
- 连接到:
- Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
-
- SQL>
- SQL>
- SQL> select * from v$version;
-
- BANNER
- ----------------------------------------------------------------
- Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
- PL/SQL Release 10.2.0.4.0 - Production
- CORE 10.2.0.4.0 Production
- TNS for 64-bit Windows: Version 10.2.0.4.0 - Production
- NLSRTL Version 10.2.0.4.0 - Production
-
- SQL>
- SQL> drop user scott cascade;
-
- 用户已删除。
-
- SQL>
3.重建scott用户
Oracle提供了scott用户的重建脚本,脚本位于 ORACLE_HOME\RDBMS\ADMIN目录下,脚本名称为 utlsampl.sql。我们在sys用户下执行该脚本,如下:点击(此处)折叠或打开
- SQL>
- SQL> show user
- USER 为 \"SYS\"
- SQL>
- SQL> @C:\\oracle\\product\\10.2.0\\db_1\\RDBMS\\ADMIN\\utlsampl.sql
- 从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
- 开
-
- C:\\Users\\Administrator>
点击(此处)折叠或打开
- C:\\Users\\Administrator>sqlplus scott/tiger
-
- SQL*Plus: Release 10.2.0.4.0 - Production on 星期三 5月 13 10:34:29 2015
-
- Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
-
-
- 连接到:
- Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
-
- SQL> select * from cat;
-
- TABLE_NAME TABLE_TYPE
- ------------------------------ -----------
- DEPT TABLE
- EMP TABLE
- BONUS TABLE
- SALGRADE TABLE
-
- SQL> select * from dept;
-
- DEPTNO DNAME LOC
- ---------- -------------- -------------
- 10 ACCOUNTING NEW YORK
- 20 RESEARCH DALLAS
- 30 SALES CHICAGO
- 40 OPERATIONS BOSTON
-
- SQL>
- SQL>
4.utlsampl.sql脚本内容
在 ORACLE_HOME\RDBMS\ADMIN目录下有很多脚本,utlsampl.sql只是其中一个。感兴趣的话,看看这些脚本也会有收获的。在这儿我们看一下 utlsampl.sql脚本的内容。点击(此处)折叠或打开
- Rem Copyright (c) 1990, 1996, 1997, 1999, 2001 by Oracle Corporation
- Rem NAME
- REM UTLSAMPL.SQL
- Rem FUNCTION
- Rem NOTES
- Rem MODIFIED
- Rem menash 02/21/01 - remove unnecessary users for security reasons
- Rem gwood 03/23/99 - make all dates Y2K compliant
- Rem jbellemo 02/27/97 - dont connect as system
- Rem akolk 08/06/96 - bug 368261: Adding date formats
- Rem glumpkin 10/21/92 - Renamed from SQLBLD.SQL
- Rem blinden 07/27/92 - Added primary and foreign keys to EMP and DEPT
- Rem rlim 04/29/91 - change char to varchar2
- Rem mmoore 04/08/91 - use unlimited tablespace priv
- Rem pritto 04/04/91 - change SYSDATE to 13-JUL-87
- Rem Mendels 12/07/90 - bug 30123;add to_date calls so language independent
- Rem
- rem
- rem $Header: utlsampl.sql 21-feb-01.18:15:30 menash Exp $ sqlbld.sql
- rem
- SET TERMOUT OFF
- SET ECHO OFF
- rem CONGDON Invoked in RDBMS at build time. 29-DEC-1988
- rem OATES: Created: 16-Feb-83
- DROP USER SCOTT CASCADE;
- DROP USER ADAMS CASCADE;
- DROP USER JONES CASCADE;
- DROP USER CLARK CASCADE;
- DROP USER BLAKE CASCADE;
- GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO SCOTT IDENTIFIED BY TIGER;
- DROP PUBLIC SYNONYM PARTS;
- CONNECT SCOTT/TIGER
- CREATE TABLE DEPT
- (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
- DNAME VARCHAR2(14) ,
- LOC VARCHAR2(13) ) ;
- CREATE TABLE EMP
- (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
- ENAME VARCHAR2(10),
- JOB VARCHAR2(9),
- MGR NUMBER(4),
- HIREDATE DATE,
- SAL NUMBER(7,2),
- COMM NUMBER(7,2),
- DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);
- INSERT INTO DEPT VALUES
- (10,\'ACCOUNTING\',\'NEW YORK\');
- INSERT INTO DEPT VALUES (20,\'RESEARCH\',\'DALLAS\');
- INSERT INTO DEPT VALUES
- (30,\'SALES\',\'CHICAGO\');
- INSERT INTO DEPT VALUES
- (40,\'OPERATIONS\',\'BOSTON\');
- INSERT INTO EMP VALUES
- (7369,\'SMITH\',\'CLERK\',7902,to_date(\'17-12-1980\',\'dd-mm-yyyy\'),800,NULL,20);
- INSERT INTO EMP VALUES
- (7499,\'ALLEN\',\'SALESMAN\',7698,to_date(\'20-2-1981\',\'dd-mm-yyyy\'),1600,300,30);
- INSERT INTO EMP VALUES
- (7521,\'WARD\',\'SALESMAN\',7698,to_date(\'22-2-1981\',\'dd-mm-yyyy\'),1250,500,30);
- INSERT INTO EMP VALUES
- (7566,\'JONES\',\'MANAGER\',7839,to_date(\'2-4-1981\',\'dd-mm-yyyy\'),2975,NULL,20);
- INSERT INTO EMP VALUES
- (7654,\'MARTIN\',\'SALESMAN\',7698,to_date(\'28-9-1981\',\'dd-mm-yyyy\'),1250,1400,30);
- INSERT INTO EMP VALUES
- (7698,\'BLAKE\',\'MANAGER\',7839,to_date(\'1-5-1981\',\'dd-mm-yyyy\'),2850,NULL,30);
- INSERT INTO EMP VALUES
- (7782,\'CLARK\',\'MANAGER\',7839,to_date(\'9-6-1981\',\'dd-mm-yyyy\'),2450,NULL,10);
- INSERT INTO EMP VALUES
- (7788,\'SCOTT\',\'ANALYST\',7566,to_date(\'13-JUL-87\',\'dd-mm-rr\')-85,3000,NULL,20);
- INSERT INTO EMP VALUES
- (7839,\'KING\',\'PRESIDENT\',NULL,to_date(\'17-11-1981\',\'dd-mm-yyyy\'),5000,NULL,10);
- INSERT INTO EMP VALUES
- (7844,\'TURNER\',\'SALESMAN\',7698,to_date(\'8-9-1981\',\'dd-mm-yyyy\'),1500,0,30);
- INSERT INTO EMP VALUES
- (7876,\'ADAMS\',\'CLERK\',7788,to_date(\'13-JUL-87\', \'dd-mm-rr\')-51,1100,NULL,20);
- INSERT INTO EMP VALUES
- (7900,\'JAMES\',\'CLERK\',7698,to_date(\'3-12-1981\',\'dd-mm-yyyy\'),950,NULL,30);
- INSERT INTO EMP VALUES
- (7902,\'FORD\',\'ANALYST\',7566,to_date(\'3-12-1981\',\'dd-mm-yyyy\'),3000,NULL,20);
- INSERT INTO EMP VALUES
- (7934,\'MILLER\',\'CLERK\',7782,to_date(\'23-1-1982\',\'dd-mm-yyyy\'),1300,NULL,10);
- CREATE TABLE BONUS
- (
- ENAME VARCHAR2(10) ,
- JOB VARCHAR2(9) ,
- SAL NUMBER,
- COMM NUMBER
- ) ;
- CREATE TABLE SALGRADE
- ( GRADE NUMBER,
- LOSAL NUMBER,
- HISAL NUMBER );
- INSERT INTO SALGRADE VALUES (1,700,1200);
- INSERT INTO SALGRADE VALUES (2,1201,1400);
- INSERT INTO SALGRADE VALUES (3,1401,2000);
- INSERT INTO SALGRADE VALUES (4,2001,3000);
- INSERT INTO SALGRADE VALUES (5,3001,9999);
- COMMIT;
- EXIT
第一部分是备注部分,行首有Rem关键字,描述了 utlsampl.sql脚本的演进过程;
第二部分是drop对象,大家关注一下我标黄的语句;也就是说,在环境准备部分的drop user语句,纯粹是画蛇添足,Oracle已经替我们想到了;
第三部分是创建表和插入数据。
5.scott是谁
这个就要追朔到Oracle的创业阶段了, 1977年6月,埃里森,Bob Miner和Ed Oates在硅谷共同创办了一家名为软件开发实验室(Software Development Laboratories,SDL)的计算机公司,这个只有三个人的公司就是后来在独领数据库风骚的ORACLE公司的前身。 当时埃里森年界32岁,呵呵呵,和我一样,三十而立的年龄,由于合同的关系还在自己原来的公司里不能出来,只是一个程序员而已。他过不来,总要有写代码的人呀,公司的第一个程序员出现了,他的名字就是scott,他的猫的名字就叫trigger,可能是为了这个第一位的程序员的缘故吧,所以也就有了scott这个用户,而且一直没有忘怀,留恋至今。
1983年3月,RSI发布了ORACLE第三版的,Miner和Scott这两个老牛用c语言,在埃里森的高压下进行第三版的开发,要知道,C语言当时推出不久,用它来写ORACLE软件也是具有一定的风险的,但除此之外,别无他法。很快就证明了这样做是多么的正确:C编译器便宜而又有效,还有很好的移植性。
不过,当这个第三版还没有结束的时候。scott离开了Oracle公司,也许是c开发和初始阶段的无休止的变更,让scott无法承受,这个大牛选择了离开公司并出售了自己的4%的股票,不过scott离开Oracle以后,还是混迹于数据库开发市场,他自己创立了PointBase公司,是一个不错的嵌入式数据库,不过好像是java写的,我曾经还用之开发过项目。这位大牛没有想到,日后这个由他开笔的Oracle是未来时代的数据库巨人,那4%的相当于几亿美元哟。
时代造就英雄,每个时代的伟大产品后面都有英雄人物所不同常人的故事,不过其实也是那么的平常,不过是做了不平常的事情而已。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30162081/viewspace-1652009/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30162081/viewspace-1652009/