求oracle scott用户下的表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求oracle scott用户下的表相关的知识,希望对你有一定的参考价值。

现在要学习,想用oracle下的scott用户的那几张表做练习。我的oracle是Linux的copy版本,是没有这些东西的。希望有的同学可以从你们的数据库中把整个用户scott的所有表导出来发送给我,包括表结构、表中的数据、表的关系等全部内容。
QQ 675344812@qq.com

scott用户下只有四张表
下面是建表语句

-- Create table
create table SCOTT.SALGRADE
(
grade NUMBER,
losal NUMBER,
hisal NUMBER
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);

-- Create table
create table SCOTT.EMP
(
empno NUMBER(4) not null,
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4),
hiredate DATE,
sal NUMBER(7,2),
comm NUMBER(7,2),
deptno NUMBER(2)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table SCOTT.EMP
add constraint PK_EMP primary key (EMPNO)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
alter table SCOTT.EMP
add constraint FK_DEPTNO foreign key (DEPTNO)
references SCOTT.DEPT (DEPTNO);

-- Create table
create table SCOTT.DEPT
(
deptno NUMBER(2) not null,
dname VARCHAR2(14),
loc VARCHAR2(13)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table SCOTT.DEPT
add constraint PK_DEPT primary key (DEPTNO)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);

-- Create table
create table SCOTT.BONUS
(
ename VARCHAR2(10),
job VARCHAR2(9),
sal NUMBER,
comm NUMBER
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
参考技术A 发你oracle带的创建语句
路径:E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\scott.sql
以sysdba登录后执行就可以了
参考技术B rdbms/utlsampl.sql
这个文件里面有.本回答被提问者采纳

oracle的基本查询

1、清屏操作:

SQL> host cls

2、查看当前用户:

SQL> show user;
USER 为 "SCOTT"        当前用户为Scott

3、当前用户下的表:

SQL> select * from tab;               tab数据字典(管理员提供的表)

TNAME                                                        TABTYPE       CLUSTERID      
------------------------------------------------------------ -----------------------

BONUS                                                        TABLE


DEPT                                                         TABLE


EMP                                                          TABLE



TNAME                                                        TABTYPE         CLUSTERID
------------------------------------------------------------ --------------------------

SALGRADE                                                     TABLE

4、查看表结构:

SQL> desc emp;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)            员工代号
 ENAME                                              VARCHAR2(10)          员工名字
 JOB                                                VARCHAR2(9)            职位
 MGR                                                NUMBER(4)              上级领导
 HIREDATE                                           DATE                    入职时间
 SAL                                                NUMBER(7,2)             薪资
 COMM                                               NUMBER(7,2)             奖金
 DEPTNO                                             NUMBER(2)               部门代号

5、查询所有员工的所有信息

SQL> select * from emp;

     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7369 SMITH                CLERK                    7902 17-12月-80
       800                    20

      7499 ALLEN                SALESMAN                 7698 20-2月 -81
      1600        300         30

      7521 WARD                 SALESMAN                 7698 22-2月 -81
      1250        500         30


     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7566 JONES                MANAGER                  7839 02-4月 -81
      2975                    20

      7654 MARTIN               SALESMAN                 7698 28-9月 -81
      1250       1400         30

      7698 BLAKE                MANAGER                  7839 01-5月 -81
      2850                    30


     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7782 CLARK                MANAGER                  7839 09-6月 -81
      2450                    10

      7788 SCOTT                ANALYST                  7566 19-4月 -87
      3000                    20

      7839 KING                 PRESIDENT                     17-11月-81
      5000                    10


     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7844 TURNER               SALESMAN                 7698 08-9月 -81
      1500          0         30

      7876 ADAMS                CLERK                    7788 23-5月 -87
      1100                    20

      7900 JAMES                CLERK                    7698 03-12月-81
       950                    30


     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7902 FORD                 ANALYST                  7566 03-12月-81
      3000                    20

      7934 MILLER               CLERK                    7782 23-1月 -82
      1300                    10


已选择14行。

6、设置行宽  每一行显示120个字符:

SQL> set linesize 120

7、设置ename列宽  a表示字符串 8表示字符串的宽度是8:

SQL> col ename for a8

8、设置ename列宽   一个9代表一个数字,薪水是四个数字所以是四个9:

SQL> col sal for 9999

9、执行上一条sql语句:

SQL> /

     EMPNO ENAME    JOB                       MGR HIREDATE         SAL       COMM     DEPTNO
---------- -------- ------------------ ---------- -------------- ----- ---------- ----------
      7369 SMITH    CLERK                    7902 17-12月-80       800                    20
      7499 ALLEN    SALESMAN                 7698 20-2月 -81      1600        300         30
      7521 WARD     SALESMAN                 7698 22-2月 -81      1250        500         30
      7566 JONES    MANAGER                  7839 02-4月 -81      2975                    20
      7654 MARTIN   SALESMAN                 7698 28-9月 -81      1250       1400         30
      7698 BLAKE    MANAGER                  7839 01-5月 -81      2850                    30
      7782 CLARK    MANAGER                  7839 09-6月 -81      2450                    10
      7788 SCOTT    ANALYST                  7566 19-4月 -87      3000                    20
      7839 KING     PRESIDENT                     17-11月-81      5000                    10
      7844 TURNER   SALESMAN                 7698 08-9月 -81      1500          0         30
      7876 ADAMS    CLERK                    7788 23-5月 -87      1100                    20

     EMPNO ENAME    JOB                       MGR HIREDATE         SAL       COMM     DEPTNO
---------- -------- ------------------ ---------- -------------- ----- ---------- ----------
      7900 JAMES    CLERK                    7698 03-12月-81       950                    30
      7902 FORD     ANALYST                  7566 03-12月-81      3000                    20
      7934 MILLER   CLERK                    7782 23-1月 -82      1300                    10

已选择14行。

10、通过列名查询:

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;

     EMPNO ENAME    JOB                       MGR HIREDATE         SAL       COMM     DEPTNO
---------- -------- ------------------ ---------- -------------- ----- ---------- ----------
      7369 SMITH    CLERK                    7902 17-12月-80       800                    20
      7499 ALLEN    SALESMAN                 7698 20-2月 -81      1600        300         30
      7521 WARD     SALESMAN                 7698 22-2月 -81      1250        500         30
      7566 JONES    MANAGER                  7839 02-4月 -81      2975                    20
      7654 MARTIN   SALESMAN                 7698 28-9月 -81      1250       1400         30
      7698 BLAKE    MANAGER                  7839 01-5月 -81      2850                    30
      7782 CLARK    MANAGER                  7839 09-6月 -81      2450                    10
      7788 SCOTT    ANALYST                  7566 19-4月 -87      3000                    20
      7839 KING     PRESIDENT                     17-11月-81      5000                    10
      7844 TURNER   SALESMAN                 7698 08-9月 -81      1500          0         30
      7876 ADAMS    CLERK                    7788 23-5月 -87      1100                    20

     EMPNO ENAME    JOB                       MGR HIREDATE         SAL       COMM     DEPTNO
---------- -------- ------------------ ---------- -------------- ----- ---------- ----------
      7900 JAMES    CLERK                    7698 03-12月-81       950                    30
      7902 FORD     ANALYST                  7566 03-12月-81      3000                    20
      7934 MILLER   CLERK                    7782 23-1月 -82      1300                    10

已选择14行。

11、SQL优化:尽量使用列名代替* 查询要快

12、注释  ( 单行用 -- 多行用 /* */)

13、查询员工号 姓名 月薪 年薪:

SQL> select empno,ename,sal,sal*12 from emp;

     EMPNO ENAME      SAL     SAL*12
---------- -------- ----- ----------
      7369 SMITH      800       9600
      7499 ALLEN     1600      19200
      7521 WARD      1250      15000
      7566 JONES     2975      35700
      7654 MARTIN    1250      15000
      7698 BLAKE     2850      34200
      7782 CLARK     2450      29400
      7788 SCOTT     3000      36000
      7839 KING      5000      60000
      7844 TURNER    1500      18000
      7876 ADAMS     1100      13200

     EMPNO ENAME      SAL     SAL*12
---------- -------- ----- ----------
      7900 JAMES      950      11400
      7902 FORD      3000      36000
      7934 MILLER    1300      15600

已选择14行。

14、查询员工号 姓名 月薪 年薪 年收入:

SQL> select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+comm 年收入 from emp;

     EMPNO ENAME      SAL       年薪       奖金     年收入
---------- -------- ----- ---------- ---------- ----------
      7369 SMITH      800       9600
      7499 ALLEN     1600      19200        300      19500
      7521 WARD      1250      15000        500      15500
      7566 JONES     2975      35700
      7654 MARTIN    1250      15000       1400      16400
      7698 BLAKE     2850      34200
      7782 CLARK     2450      29400
      7788 SCOTT     3000      36000
      7839 KING      5000      60000
      7844 TURNER    1500      18000          0      18000
      7876 ADAMS     1100      13200

     EMPNO ENAME      SAL       年薪       奖金     年收入
---------- -------- ----- ---------- ---------- ----------
      7900 JAMES      950      11400
      7902 FORD      3000      36000
      7934 MILLER    1300      15600

已选择14行。

15、SQL中null值:

1. 包含null的表达式都为null

所以进行修改:

SQL> ed
已写入 file afiedt.buf

  1* select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+nvl(comm,0) 年收入 from emp

SQL> /

EMPNO ENAME SAL 年薪 奖金 年收入
---------- -------------------- ---------- ---------- ---------- ----------
7369 SMITH 800 9600 9600
7499 ALLEN 1600 19200 300 19500
7521 WARD 1250 15000 500 15500
7566 JONES 2975 35700 35700
7654 MARTIN 1250 15000 1400 16400
7698 BLAKE 2850 34200 34200
7782 CLARK 2450 29400 29400
7788 SCOTT 3000 36000 36000
7839 KING 5000 60000 60000
7844 TURNER 1500 18000 0 18000
7876 ADAMS 1100 13200 13200

EMPNO ENAME SAL 年薪 奖金 年收入
---------- -------------------- ---------- ---------- ---------- ----------
7900 JAMES 950 11400 11400
7902 FORD 3000 36000 36000
7934 MILLER 1300 15600 15600

已选择14行。

 2. SQL中,null != null:

SQL> select * from emp where comm=null;

未选定行

此时进行修改 :  要用is 或者用 is not

SQL> ed
已写入 file afiedt.buf

  1* select * from emp where comm is null
SQL> /

     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7369 SMITH                CLERK                    7902 17-12月-80
       800                    20

      7566 JONES                MANAGER                  7839 02-4月 -81
      2975                    20

      7698 BLAKE                MANAGER                  7839 01-5月 -81
      2850                    30


     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7782 CLARK                MANAGER                  7839 09-6月 -81
      2450                    10

      7788 SCOTT                ANALYST                  7566 19-4月 -87
      3000                    20

      7839 KING                 PRESIDENT                     17-11月-81
      5000                    10


     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7876 ADAMS                CLERK                    7788 23-5月 -87
      1100                    20

      7900 JAMES                CLERK                    7698 03-12月-81
       950                    30

      7902 FORD                 ANALYST                  7566 03-12月-81
      3000                    20


     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7934 MILLER               CLERK                    7782 23-1月 -82
      1300                    10


已选择10行。
SQL> ed
已写入 file afiedt.buf

  1* select * from emp where comm is  not null
SQL>
SQL> /

     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7499 ALLEN                SALESMAN                 7698 20-2月 -81
      1600        300         30

      7521 WARD                 SALESMAN                 7698 22-2月 -81
      1250        500         30

      7654 MARTIN               SALESMAN                 7698 28-9月 -81
      1250       1400         30


     EMPNO ENAME                JOB                       MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
       SAL       COMM     DEPTNO
---------- ---------- ----------
      7844 TURNER               SALESMAN                 7698 08-9月 -81
      1500          0         30

16、去掉重复的记录:

SQL> select deptno from emp;

    DEPTNO
----------
        20
        30
        30
        20
        30
        30
        10
        20
        10
        30
        20

    DEPTNO
----------
        30
        20
        10

已选择14行。

SQL> select DISTINCT deptno from emp;

    DEPTNO
----------
        30
        20
        10

注意:

 

SQL> select job from emp;

JOB
------------------
CLERK
SALESMAN
SALESMAN
MANAGER

以上是关于求oracle scott用户下的表的主要内容,如果未能解决你的问题,请参考以下文章

oracle如何授权当前用户只能增删改查当前用户的表

oracle 怎么查指定用户(例如scott)用到的表空间

Oracle笔记 Scott用户的表结构

oracle的基本查询

请问oracle中scott用户都有哪些可供练习的表?怎么查询呢

oracle学习整理