Oracle数据库的基础(1)

数据:是数据库的基本对象,是描述失误符号记录。

数据库:是存储管理数据、展现的建立在计算机上的仓库

1962年开始有了数据库的概念。

数据库存储配置,测试计划,测试用例,测试方案。

测试环境的搭建需要备份到数据库中。

关系型数据库:1.Oracle,2.DB2,3.SQL Server,4.MySQL,5.Access,6.MariaDB

Redis存储定位的数据,是网络数据库,开源的使用ANSI C语言。

MySQL

SQL Server

Qracle的特点:多平台、性能最高、获得最高安全认证。

Qracle的版本:   1.8i   (i:internet)

2.9i

3.10g  (g:grid)

4.11g

5.12c (c:cloud)

oracle根目录中的文件:db_1:主要存放Oracle系统的相关软件,包括可执行文件,网络配置文件

admin:主要存放数据库运行过程中产生的跟踪文件

Bdump:资格子目录分贝用于保存后台进程跟踪文件

Cdump:发生崩溃是操作系统进程用来写入的内核转出文件

oradata:存放数据库的物理文件(出错、配置文件)

flash_recovery_area:数据库启动自动备份文件,闪回日志文件

Create:

tnsnames.ora中ORCL123指的是需要输入的服务名。

服务器端设置

listener.ora:服务器监听进程的配置文件

sqlnet.ora:

第一章 SQL编写规范

明确的规范

1.sql语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。

2.连接符前后加上一个空格。

3.对较为复杂的sql语句

其他注意事项

1.SQL命令的大小写是不敏感的。

2.SQL命令可写成一行或多行

第二章 SQL语言基础

SQL语言分类

1.数据查询语句:select

2.数据操纵语句(DML:data manipulation):insert,update,delete

基本的select命令

1.select:要返回的列或表示式

2.from:从中检索数据的表

3.where:行级过滤

4.group by:分组说明

5.having:祖级过滤

6.order by:输出排序顺序

7.limit:要检索的行数

SQL语句规则

1.SQL语句是大小写不敏感的

2.SQL语句

算数表达式

先乘除后加减,可括号

定义空值

空值是指不可用,不知道,不适用的值。

空值不等于零或空格

包括空值的算法表达式等于空。

定义列的别名

1.改变列的标题头

2.使用计算结果

3.列的别名(可以使用as)

4.如果使用特殊字符,

连接操作

1.将列或字符与其他列连接

文字字符串

文字字符串是一个包括在SELECT列表中的字符,表达式,或数字。

日期和字符型文字字符必须用单引号括起来。

每返回一条字符被输出一次。

构造命令

 Oracle数据库的基础(1)

 

重记录

缺省情况下查询显示

 Oracle数据库的基础(1)

Oracle数据库的基础(1)

 

 

 

第三章 限定和排序数据

1.限制某一查询的数据

限定所选择的记录

使用WHERE子句限定返回的记录

WHERE子句在FROM后面

字符串和日期

1.字符串和日期要用单引号括起来

2.字符串是大小写敏感的,日期值是格式敏感的

3.缺省名称是DAY-M-Y

比较运算符

大于小于

其他比较运算符

BETWEEN...AND...:在两值之间

IN(list):匹配列出的值

LIKE:匹配一个字符模式

IS NULL:是空值

mgr in

逻辑运算符

AND,OR,NOT

<>:不等于

优先级规则

括号将跨越所有优先级规则:

1.所有的比较运算*、+-

2.NOT

3.AND

4.OR

order by:排序

asc:升序

desc:降序

 Oracle数据库的基础(1)

 

连接数据库的方式:   1.sqlplus

2.在客户端登录使用sqlplus并输入用户和密码

3.isqlplus在web端登录

遇到的问题:

在安装过程中,scott用户没解锁。

解决方案:

1.输入sqlplus sys as sysdba

2.输入sqlplus sys/tiger as sysdba/[email protected]

第四章 单组函数

1.描述可在SQL中使用的各种函数

2.在SELECT语句中可使用字符,数字,日期函数

3.描述转换函数的使用

SQL函数

 Oracle数据库的基础(1)

 

两种SQL函数

 Oracle数据库的基础(1)

 

单行函数

1.操作数据项

2.接受参数并返回一个值

3.对每一返回行起作用

4.每一行返回一个结果

5.可修改数据类型

6.可使用嵌套

function_name(column|expression,[arg1,arg2,...])

字符函数

 Oracle数据库的基础(1)

 

字符函数说明

 Oracle数据库的基础(1)

 

REPLACE中的x必须是字符串。

使用大小写转换

显示员工号,名称,部门号:

SQL>SELECT empno, ename,deptno

2 FROM emp

3 WHERE ename = 'blake';

SQL>SELECT empno, ename,deptno

2 FROM emp

3 WHERE LOWER(ename) = 'blake';

 

EMPNO    ENAME                     DEPTNO

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

7698        BLAKE                                  30

使用字符处理函数

SQL>SELECT ename,CONCAT (ename,job),LENGTH(ename),

2  INSTR(ename,'A')

3 FROM emp

4 WHERE SUBSTR(job,1,5) = 'SALES';

 

ENAME  CONCAT(ENAME,JOB) LENGTH(ENAME) INSTR(ENAME,'A')

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

MARTIN  MARTINSALESMAN       6

 Oracle数据库的基础(1)

 

数字函数

 Oracle数据库的基础(1)

 

使用ROUND函数

 Oracle数据库的基础(1)

 

使用TRUNG函数

 Oracle数据库的基础(1)

 

使用函数

1.Oracle以内部数字存储日期:世纪,年,月,日,小时,分钟,秒。

2.缺省的日期格式是DD-MON-YY。

3.SYSDATE是返回日期和时间的函数。

4.DUAL是用来查看SYSDATE的虚表。

使用日期运算

 Oracle数据库的基础(1)

 

日期函数

 Oracle数据库的基础(1)

 

转换函数

 Oracle数据库的基础(1)

 

隐含的数据类型转换

 Oracle数据库的基础(1)

 

清楚的数据类型转换

 Oracle数据库的基础(1)

 

TO_CHAR函数操作日期

TO_CHAR(date,'fmt')

格式规则

1.必须用单引号括起来,并且是大小写敏感。

2.可包含任何有效的日期格式。

3.有一个fm元素,用于填补空格或禁止前面的零。

4.使用都好分离日期值。

日期格式基础

 Oracle数据库的基础(1)

 

使用TO_CHAR函数处理日期——FF

 Oracle数据库的基础(1)

 

TO_CHAR函数处理数字

 Oracle数据库的基础(1)

 

TO_NUMBER和TO_DATE函数

1.使用TO_NUMBER函数将字符转换为数字:

TO_NUMBER(char)

2.使用TO_DATE函数将字符转换为日期:

TO_DATE(char[,'fmt'])

禁止转换:

1.十进制与十六进制:

SAL>select to_char(2463,'xxxx')fromdual;

TO_CH

-----

99f

已选择1行。

十六进制与十进制

SQL>select to_number('99f','xxxx')from dual;

TO_NUMBER('99F','XXXX')

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

      2463
已选择1行。

NVL函数

将空值转换为实际的值:

1.数据格式可以是日期,字符,数字。

2.数据类型必须匹配。

NVL(comm,0)

NVL(hiredate,'01-JAN-97')????

NVL(job,'NO JOB Yet')

使用NVL函数

 Oracle数据库的基础(1)

 

NVL2函数

NVL2(expr1,expr2,expr3)

如果expr1不为Null,返回expr2,如果expr1为Null,返回expr3.

expr1可以为任何数据类型。

DECODE函数

 Oracle数据库的基础(1)

 

使用DECODE函数

 Oracle数据库的基础(1)

 

嵌套函数

 Oracle数据库的基础(1)

 

嵌套函数举例

 Oracle数据库的基础(1)

 

SQL指令和iSQL*Plus命令的比较

 Oracle数据库的基础(1)

 

isqlplus

 Oracle数据库的基础(1)

 

SQL*plus的编辑命令

1.I[NPUT]:输入SQL语句

2.I[NPUT]text

3.L[IST]n

4.L[IST]m n

5.R[UN]:执行SQL语句

6.n

7.n text

8.0 text

第五章 从多个表显示数据

1.使用相等和不等连结写SELECT语句来访问多个表

2.使用外连接查询数据。

3.表的自连接

从多个表中获取数据

 Oracle数据库的基础(1)

 

什么是连接

 Oracle数据库的基础(1)

 

笛卡尔结果

1.笛卡尔结果形成于:

  1.连接条件被省略

  2.连接条件无效

  3.第一条表的所有记录连接到第二个表的所有记录

2.为了避免笛卡尔结果我们总是在WHERE子句中使用有效连接。

生成笛卡尔结果

 Oracle数据库的基础(1)

 

笛卡尔举例

 Oracle数据库的基础(1)

 

连接的类型

 Oracle数据库的基础(1)

 

什么是等值连接

 Oracle数据库的基础(1)

 

使用等值连接获得的数据记录

 Oracle数据库的基础(1)

 

限定列名

1.使用表名作为前缀在多个表中指定列名。

2.使用表前缀可以改进性能。

3.使用列的别名以区别不同表的同名列。

多表连接

 Oracle数据库的基础(1)

 

非等值连接

 Oracle数据库的基础(1)

 

使用非等值连接获取数值记录

 Oracle数据库的基础(1)

 

表的自连接

 Oracle数据库的基础(1)

 

外连接

 Oracle数据库的基础(1)

 

使用外链接

 Oracle数据库的基础(1)

 

上课练习

 Oracle数据库的基础(1)

 

第六章 使用组函数

什么是分组函数

 Oracle数据库的基础(1)

 

分组函数的类型

1.AVG([DISTINCT|ALL]n):求平均数

2.SUM([DISTINCT|ALL]n):求和

3.COUNT({*|[DISTINCT|ALL]expr):计数

4.MAX([DISTINCT|ALL]expr):求最大值

5.MIN([DISTINCT|ALL]expr):最小值

6.STDDEV([DISTINCT|ALL]x):标准差

7.VARIANCE([DISTINCT|ALL]x):方差

使用AVG和SUM函数

 Oracle数据库的基础(1)

 

使用MIN和MAX函数

 Oracle数据库的基础(1)

 

使用COUNT函数

 Oracle数据库的基础(1)

Oracle数据库的基础(1)

 

 

 

分组函数和空值

 Oracle数据库的基础(1)

 

在分组函数中使用NVL函数

 Oracle数据库的基础(1)

 

产生数据组

 Oracle数据库的基础(1)

 

GROUP BY子句

 Oracle数据库的基础(1)

 

使用GROUP BY子句

 Oracle数据库的基础(1)

 

多列分组

 Oracle数据库的基础(1)

 

在多列上使用GROUP BY子句

 Oracle数据库的基础(1)

 

使用分组函数的非法查询--E

 Oracle数据库的基础(1)

 

使用分组函数时的非法语句

 Oracle数据库的基础(1)

 

HAVING子句

 Oracle数据库的基础(1)

Oracle数据库的基础(1)

 

 Oracle数据库的基础(1)

 

 

 

 

嵌套组函数

 Oracle数据库的基础(1)

 

小结

 Oracle数据库的基础(1)

 

第七章 子查询

使用子查询解决问题

 Oracle数据库的基础(1)

 

子查询

 Oracle数据库的基础(1)

 

使用子查询

 Oracle数据库的基础(1)

 

使用子查询的规则

1.子查询要用括号括起来

2.只查询放在比较运算符的右边

3.子查询中不要加ORDER BY子句

4.对单行子查询使用单行运算符

5.对多行子查询使用多行运算符

子查询的种类

 Oracle数据库的基础(1)

 

单行子查询

 Oracle数据库的基础(1)

 

在子查询中使用分组函数

 Oracle数据库的基础(1)

 

在子查询中使用HAVING语句

 Oracle数据库的基础(1)

 

错误的子查询

 Oracle数据库的基础(1)

 

这样的子查询有效吗

 Oracle数据库的基础(1)

 

多行子查询

 Oracle数据库的基础(1)

 

在多行子查询中使用ANY运算符

 Oracle数据库的基础(1)