您的位置:首页 > 数据库

sqlplus登录方式,列出所有表,列出表结构,sqlplus行和列显示设置,别名,空值问题,连接符,DISTINCT

2014-10-09 12:42 323 查看


1 sqlplus登录方式:

        
普通用户登录:

登录eg:C:\>sqlplusscott/11 
(格式:sqlplus
用户名/密码)

退出eg:quit退出

 

        
超级用户登录

                  
C:\>sqlplus/nolog

                  
SQL*Plus:Release 10.1.0.2.0 - Pr

                  
Copyright(c) 1982, 2004, Oracle.

                  
SQL>connect /as sysdba   //操作用户登录方式

                  
已连接。

                                    

2
查看用户下有什么表,命令:

        
SQL>select * from tab;  

tab是oracle中的一个关键字。

 


关于数据字典:

tab是数据字典:oracle超级管理员分配给普通用的资源....,tab关键字....

 


SQL>select * from dept; --查询表的所有记录

        

   DEPTNO(部门编号) DNAME
部门名称       
LOC 位置

                  
------------------------ -------------

                  
        10 ACCOUNTING     NEW YORK

                  
        20 RESEARCH       DALLAS

                  
        30 SALES          CHICAGO

                  
        40 OPERATIONS     BOSTON

 

5 SQL> desc dept; 
--查询表结构

        
名称                                     
是否为空?
类型

        
------------------------------------------------- ----------------------------

        
DEPTNO                                    NOT NULLNUMBER(2)

        
DNAME                                            VARCHAR2(14)

        
LOC                                               VARCHAR2(13)

                           


基本命令

        
A  set linesize 150  设置行宽

        
B  set pagesize 140 设置页大小


设置列宽

        
   SQL> col empno for 99999999999999999999

        
D  给字符方式设置列宽:

        
   SQL> col ename for a20

        

                                              


window下清屏

        
  SQL>host cls


Linux下清贫

 
SQL>host clear

                           


select语句(可以检索所有列、部分列、表达式、别名)

                  
 select * from emp;

        
     ---显示员工姓名
员工编号
工作 
月薪
年薪

        
     select ename, empno, job, sal , sal*12from emp;

8  
别名

                  
--1别名:
可以省掉""和as

                  
--2有空格时,
不能省掉""

 

SQL> select ename as "员工姓名"
, empno"编号", job
工作, sal "月薪"
, sal*12  年薪 from emp

 

                                    
员工姓名        
编号
工作          

薪      
年薪

        
                            -------------------- --------- ---------- ----------

                                    
SMITH            7369 CLERK           
800       9600

                                    
ALLEN            7499 SALESMAN       
1600      19200

                                    
WARD             7521 SALESMAN       
1250      15000

                                    
JONES            7566 MANAGER        
2975      35700

                                    
MARTIN           7654 SALESMAN       
1250      15000

                                    
BLAKE            7698 MANAGER        
2850      34200

                                    
CLARK            7782 MANAGER        
2450      29400

                                    
SCOTT            7788 ANALYST        
3000     36000

                                    
KING             7839 PRESIDENT      
5000     60000

                                    
TURNER           7844 SALESMAN       
1500      18000

                                    
ADAMS            7876 CLERK          
1100      13200

                                    
JAMES            7900 CLERK           
950      11400

                                    
FORD             7902 ANALYST        
3000      36000

                                    
MILLER           7934 CLERK          
1300      15600

                                    

        
---显示员工姓名
员工编号
工作 
月薪
年收入(月薪*12+comm)

9
空值问题:

        
selectename, empno, job, sal , sal*12+comm from emp ; (有问题,因为comm有null的)

        

空值问题注意:

                  
1NULL空值任何数和null运算都为null   
(null无穷大)

                  
2空值不是空 
null != null

        
解决办法:

                  
null滤空函数 nvl (a,b) --
当a是空的时候,返回b(
其中 b可以是数字/字符串)

                  
---字符串和日期在sql语言用单引号扩起来...

        
案例说明:

A  
select ename, empno, job,sal , sal*12+ nvl(comm,0) 年收入from emp;

 

                           
ENAME                     EMPNO JOB 
            SAL     年收入

                           
------------------------------ --------- ---------- ----------

                           
SMITH                      7369 CLERK           
800       9600

                           
ALLEN                      7499 SALESMAN       
1600      19500

                           
WARD                       7521 SALESMAN       
1250      15500

                           
JONES                      7566 MANAGER        
2975      35700

                           
MARTIN                     7654 SALESMAN       
1250      16400

                           
BLAKE                      7698 MANAGER        
2850      34200

                           
CLARK                      7782 MANAGER        
2450      29400

                           
SCOTT                      7788 ANALYST        
3000      36000

                           
KING                       7839 PRESIDENT      
5000     60000

                           
TURNER                     7844 SALESMAN       
1500      18000

                           
ADAMS                      7876 CLERK          
1100      13200

                           
JAMES                      7900 CLERK           
950      11400

                           
FORD                       7902 ANALYST        
3000      36000

                           
MILLER                     7934 CLERK          
1300      15600

                           

        
 B   查询奖金为空的员工

                           
select* from emp where comm is null;

        结果:

                           
EMPNOENAME      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

                           
      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

                           
      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

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

        

        
 C  查询奖金不为空的员工

                  
    select * from emp where comm is not null

       结果:

                  
   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

                  
    7844 TURNER     SALESMAN       
7698 08-9月 -81          
1500          0         30

 

 

10
连接符
||

        
  select 'hello' || 'world' from emp;      

        
  select 'hello' || 'world' from dual; 
--伪表

 

dual是数据字典 (oracle超级管理员分配给普通用的资源....,tab关键字....)

        
 SQL> select sysdate from dual;

                                    
SYSDATE

                                    
--------------

                           
         07-10月-14

                                    

                                    
SQL>

11:DISTINCT
 


作用去除重复的行

        
 select DISTINCT deptno from emp;

                           
    DEPTNO

                                    
----------

                                    
    30

                                    
    20

                           
        10

        
 B  DISTINCT修饰多个字段的时,
当部门编号和工种都一样的时候,认为是重复的...

                                                                                                      
否则
不同行.

                                                       
====DISTINCT2个字段

                                    
selectDISTINCT deptno, job from emp

                                    

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: