sql命令

先切换到oracle用户,因为我们要用oracle用户来操作数据库。
然后进入到我们事先设定好的变量$ORACLE_HOME的路径下.
ORACLE_HOME= /u01/app/oracle/product/11.2.0/dbhome_1

[root@ych01 home]# su - oracle
[oracle@ych01 ~]$ cd $ORACLE_HOME
[oracle@ych01 dbhome_1]$ cd rdbms/admin

查找utls为前四个关键字母的文件,输出下面几个文件,查看utlsampl.sql的权限和组。

[oracle@ych01 admin]$ ls utls*
utlsampl.sql  utlsmtp.sql   utlstddw.sql  utlsyxsz.sql
utlscln.sql   utlspadv.sql  utlsxszd.sql
[oracle@ych01 admin]$ ll utlsampl.sql
-rw-r--r-- 1 oracle oinstall 3676 Jun  2  2006 utlsampl.sql

输入sqlplus / as sysdba进入数据库,一定要记住这个命令,以后会一直用到。输出下面的release信息就说明数据库已经安装好了。idle可以远程进入。输入startup后,等到信息全部刷新出来,database mounted说明数据库已经完成挂载,database opened说明现在可以打开数据库了。

[oracle@ych01 admin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon May 20 16:40:53 2019
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup;
ORACLE instance started.
Total System Global Area  839282688 bytes
Fixed Size                  2257880 bytes
Variable Size             545262632 bytes
Database Buffers          289406976 bytes
Redo Buffers                2355200 bytes
Database mounted.
Database opened.

在这里输入@utlsampl.sql就是要进入这个数据库文件。下边提示说现在与数据库断开连接。之后再一次输入sqlplus / as sysdba命令就可以进入utlsampl.sql的数据库。

SQL> @utlsampl.sql
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

我们现在用scott这个用户,密码是tiger,下面显示已连接。说明我们可以使用这个用户连接上数据库了。

SQL> conn scott/tiger
Connected.

select是查找或者要输出某些数据。后边加上要输出的数据列名称。
这里是输出depnuo,dname和loc的数据信息。
from是从哪个数据库输出数据,后面加上(数据来源)。
列名称之间用“,”隔开,并且中间要有空格。
命令输出完之后要在后边输入“;”表示命令输出完毕。

SQL> select * from dept ;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

也可以分开写每个语句。前边有数据2,可以再line2处继续编辑,如果line1没有输出完。
*代表要全部列数据输出。

SQL> select * 
  2  from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

distinct是去重,把重复的值去掉,仅剩下不重复的值输出。

SQL> select distinct deptno
  2  from emp;

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

简单的加减乘除运算和一般运算顺序一样,先乘除后加减,有括号先算括号里的。

这里是对mull空值的赋值,先赋值为0。对于要赋值的列,我们用nvl命令,括号里边是赋值的列和赋的值。

SQL> select ename , sal , 12*sal+ nvl(comm,0)
  2  from emp;

ENAME             SAL 12*SAL+NVL(COMM,0)
---------- ---------- ------------------
SMITH             800               9600
ALLEN            1600              19500
WARD             1250              15500
JONES            2975              35700
MARTIN           1250              16400
BLAKE            2850              34200
CLARK            2450              29400
SCOTT            3000              36000
KING             5000              60000
TURNER           1500              18000
ADAMS            1100              13200

ENAME             SAL 12*SAL+NVL(COMM,0)
---------- ---------- ------------------
JAMES             950              11400
FORD             3000              36000
MILLER           1300              15600

14 rows selected.

对于字符的替换,用as或者在要被替换的字符列之后直接写新的名字。

SQL> select ename emp_name , sal*12 as "Sal"
  2  from emp;

EMP_NAME          Sal
---------- ----------
SMITH            9600
ALLEN           19200
WARD            15000
JONES           35700
MARTIN          15000
BLAKE           34200
CLARK           29400
SCOTT           36000
KING            60000
TURNER          18000
ADAMS           13200

EMP_NAME          Sal
---------- ----------
JAMES           11400
FORD            36000
MILLER          15600

14 rows selected.

|| 是连接列和字符的符号。列和字符不能挨着写或者用某些符号隔开。因为列的名字会被字符替换,或者下边会显示哪一行会有错误,这个命令不能执行。所以要用||符号连接起来。

SQL> select 'My name is ' || ename 
  2  from emp;

'MYNAMEIS'||ENAME
---------------------
My name is SMITH
My name is ALLEN
My name is WARD
My name is JONES
My name is MARTIN
My name is BLAKE
My name is CLARK
My name is SCOTT
My name is KING
My name is TURNER
My name is ADAMS

'MYNAMEIS'||ENAME
---------------------
My name is JAMES
My name is FORD
My name is MILLER

14 rows selected.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值