oracle 1

ORACLE笔记01

 

############################################################

[oracle@oracle ~]$ lsnrctl start

 

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 03-4月 -2019 15:39:31

 

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

 

启动/db/app/oracle/product/11.2.0//bin/tnslsnr: 请稍候...

 

TNSLSNR for Linux: Version 11.2.0.1.0 - Production

系统参数文件为/db/app/oracle/product/11.2.0/network/admin/listener.ora

写入/db/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml的日志信息

监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))

 

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

LISTENER 的 STATUS

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

别名                      LISTENER

版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production

启动日期                  03-4月 -2019 15:39:33

正常运行时间              0 天 0 小时 0 分 0 秒

跟踪级别                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

监听程序参数文件          /db/app/oracle/product/11.2.0/network/admin/listener.ora

监听程序日志文件          /db/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml

监听端点概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))

监听程序不支持服务

命令执行成功

[oracle@oracle ~]$ sqlplus "/as sysdba"^C

[oracle@oracle ~]$ sqlplus / as sysdba

 

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 4月 3 15:39:49 2019

 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

 

已连接到空闲例程。

 

SQL> SQL>

SQL>

SQL>

SQL> conn as sysdba     

请输入用户名:  arcl

输入口令:

已连接到空闲例程。

SQL> startup

ORACLE 例程已经启动。

 

Total System Global Area 1586708480 bytes

Fixed Size              2213736 bytes

Variable Size                922749080 bytes

Database Buffers      654311424 bytes

Redo Buffers                 7434240 bytes

数据库装载完毕。

数据库已经打开。

SQL>

############################################################

 

1,  术语及其它们的定义;

表table : 由行和列组成的二维结构;

行 row : 每一行给出了一个供应商的全部信息(记录);

列 column : 每一列表示供应商的一种特性(属性);

值 value : 行和列的交汇处,

约定:

表 table = 实体 entity = 关系 relation

行 row = 记录 record

列 column = 属性 attribute

ORACLE服务器SERVER = ORACLE 系统 = ORACLE数据库管理系;

没有阴影的内容是用户要输入的; 提示符: 2是SQL语句的行号,由SQL*Plus自动产生。

SP2-0171: 帮助系统不可用。

SQL> SELECT *

  2  FROM supplier;

SELECT *

*

第 1 行出现错误:

ORA-01034: ORACLE not available

进程 ID: 0

会话 ID: 0 序列号: 0

 

2,查询语句的两个关键字:SELECT 和 FROM;

一个完整的SQL命令叫语句statement, 每个关键字和后面跟着的选项叫做子句clause 。

语法: SELECT  * |{[DISTINCT] 列表……}

              FROM 表名;

列表的格式为:列表|表达式[别名]  :

SELECT  *  FROM 表名;从表名所指定的表中选择所有的列;

                    SELECT DISTINCT 列表… FROM 表名;从表名所指定的表中选出所指定的列,但不显示重复的列(记录);

 

,3,SQL*Plus默认的列标题显示结果如下:

(1)       字符和日期型数据为左对齐。

(2)       数字型数据为右对齐。

 

4,运算符的优先级;

(1)       先乘除后加减。

(2)       在表达式中,同一优先级的运算符计算次序是从左到右。

(3)       如果使用了括号,括号中的运算优先;

(4)       如果有多重括号嵌套,内层括号中的运算优先。

 

5,使用别名:

         方法:只需在列名和别名之间放AS或空格就可以了。

                     如果别名中包含了特殊字符,就要用双引号把别名括起来。

                     如果字符、数字或表达式(文本字符串)是日期型或字符型,就必须将它们用单引号括起来;

6,连接运算符(||)

         用于把一个或多个列和字符串连接起来。

7,运算符DISTINCT,distinct去掉重复的行。

         DISTINCT可以作用于多列,此时显示的结果为妹一种列组合只显示一行。

8,限制所选择的数据行(选择操作SELECTION)

         使用WHERE子句来限制那些行(记录)要显示,WHERE子句跟在FROM子句之后。

(1)       WHERE是关键字,其后跟限制条件。

(2)       条件是由列名、字符串、算数表达式、常量和比较运算符组成的。

(3)       可以使用比较运算符operator 来构造条件。格式如下:

表达式  operator  表达式

常用的比较运算符: >  <  =  >=  <=   <> 或!=

(4)       还有BETWEEN AND、 IN 和 LINK  3个比较运算符。

9,BETWEEN AND运算符

         用于测试某些值是否在指定的数值范围之内,该运算符不但可以用于数字型数据,还可以用于字符型和日期型数据,但这两种类型的数据必须用单引号括起来。

SELECT  empno,ename,sal,hiredate FROM emp WHERE hiredate BETWEEN ’01-JAN-81’ AND ’31-MAY-82’;

可以在BETWEEN之前加上NOT,用于测试某些值是否不在BETWEEN和AND指定的数值范围之内。

SELECT empno,ename,sal,hiredate FROM emp WHERE hiredate NOT BETWEEN ’01-JAN-81’ AND ’31-MAY-82’;

P28continue

 

10,在SQL语句中使用字符串和日期

         注意:在WHERE 子句中的字符串是区分大小写的。 在WHERE 子句中字符串和日期型数据要用单引号括起来,但数字型不用。

         SELECT empno, ename, job,sal  FROM emp WHERE job=’SALESMAN’;

 

11,使用IN 比较运算符

         SELECT empno, ename, sal, job  FROM emp  WHERE job IN (‘SALESMAN’,’CLERK’,’MANAGER’);

         IN 用来测试某些值是否在列表中出现。在上面的sql语句中,只要某一个记录的JOB列的值等于IN列表中(即括号中)的任何一个,该数据行就会显示出来。

         另:还可以在IN 之前加否定词NOT。NOT IN 用来测试某些值是否不在列表中出现。

         SELECT empno,ename,sal,job  FROM emp WHERE job NOT IN (‘ANALYST’,’PRESIDENT’);

 

12,使用LIKE运算符

         SELECT  empno,ename,sal,job FROM emp WHERE job LIKE ‘SAL%’;

         LIKE运算符进行通配符(wildcard)查询。

         LIKE运算符可以使用以下两个通配符 “%”和“_” 。其中,

                   “%” 代表0个或多个字符。

                   “_” 代表一个且只能是一个字符。

SELECT  empno, ename, sal, job  FROM emp WHERE job LIKE ‘S_L_S%’;    ----SALESMAN

SELECT empno,ename,sal,hiredate  FROM emp WHERE hiredate LIKE ‘%81’;

 

13,转义操作符

         要查询的字符串中含有”_”或“%”时,可以使用转义escape关键字来实现。 

         SELECT * FROM dept_temp WHERE dname LIKE ‘IT\_%’ escape ‘\’;

         即在查询语句中,定义的”\”为转义符,即在“\”之后的“_”字符已不是通配符了,而是它本来的含义,即下划线。

         除了”\”, 也可以使用任何感兴趣的字符作为转义符。

 

14,ORDER BY 子句(排序操作)

         利用ORDER BY 子句对查询的结果进行排序。您可以对数字型、日期型和字符型数据进行排序。默认情况下,数字型和日期型数据是从小到大排序;字符型数据是按ASCII码的次序排序;DESC(descending order)为降序排序;

         Order by 由小到大

         SELECT empno,ename,sal FROM emp WHERE sal >= 1500 ORDER BY sal DESC;

 

15,在ORDER BY 子句中使用别名和表达式;

         SELECT  empno AS “Employee Number”, ename name,(500+sal)*12 “Annal Salary” FROM emp ORDER BY “Annual Salary” DESC;

P35contune

 

16,扩充后的查询语句的格式;

         格式: SELECT *|{[DISTINCT] 列表, ….}

            FROM  表名

                            [WHERE 条件]

                            [ORDER BY {列名|别名|表达式, …}[ASC|DESC]];

         注:其中,条件由列名、文本字符串、算数表达式、常量和比较运算符5个部分组成。 需要注意的是ORDER BY子句一定要放在SQL语句的最后。

 

Oracle笔记02

 

第2章 常用的SQL*Plus命令和环境变量

 

1,  DESC [RIBE]命令

用来查询表的结构。

语法: DESC  表名;

2,  SET LINE[SIZE]{80|n} 命令

n为自然数,80为默认值。

该命令是讲显示屏的显示输出置为n个字符宽,80个字符为此命令的默认显示宽度。

3,  L命令和n text命令

可以使用L(LIST)命令来显示刚刚输入的SQL语句。

4,”/” RUN 命令

         “/”RUN命令用来重新运行SQL缓冲区中的SQL语句。

5,  n(设置当前行)命令和A[PPEND](附加)命令

p44continue

 

posted on 2019-05-23 18:44  微子天明  阅读(247)  评论(0编辑  收藏  举报

导航