Oracle的学习记录(DDL)

SQL初步

SQL语句分为以下三种类型:

  • DML: Data Manipulation Language 数据操纵语言
  • DDL: Data Definition Language 数据定义语言
  • DCL: Data Control Language 数据控制语言

DML

DML用于查询与修改数据记录,包括如下SQL语句:

  • INSERT:添加数据到数据库中
  • UPDATE:修改数据库中的数据
  • DELETE:删除数据库中的数据
  • SELECT:选择(查询)数据
    SELECT是SQL语言的基础,最为重要。

DDL

DDL用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句:

  • CREATE TABLE:创建数据库表
  • ALTER TABLE:更改表结构、添加、删除、修改列长度
  • DROP TABLE:删除表
  • CREATE INDEX:在表上建立索引
  • DROP INDEX:删除索引

DCL

DCL用来控制数据库的访问,包括如下SQL语句:

  • GRANT:授予访问权限
  • REVOKE:撤销访问权限
  • COMMIT:提交事务处理
  • ROLLBACK:事务处理回退
  • SAVEPOINT:设置保存点
  • LOCK:对数据库的特定部分进行锁定

查询

定义空值

空值是无效的,未指定的,未知的或不可预知的值
空值不是空格或者0
在这里插入图片描述
包含空值的数学表达式的值都为空值
在这里插入图片描述

列的别名

列的别名:
重命名一个列。
紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
在这里插入图片描述

连接符

连接符:
把列与列,列与字符连接在一起。
用 ‘||’表示。
可以用来‘合成’列。
在这里插入图片描述

字符串

在这里插入图片描述
在这里插入图片描述

删除重复行

在这里插入图片描述

SQL 语句与 SQL*Plus 命令

在这里插入图片描述

SQL*Plus

描述表结构。
编辑 SQL 语句。
执行 SQL语句。
将 SQL 保存在文件中并将SQL语句执行结果保存在文件中。
在保存的文件中执行语句。
将文本文件装入 SQL*Plus编辑窗口。

显示表结构

使用 DESCRIBE 命令,表示表结构

describle employee -- describle 表名

过滤

在这里插入图片描述

字符和日期

在这里插入图片描述

比较运算

在这里插入图片描述
在这里插入图片描述

LIKE

在这里插入图片描述
在这里插入图片描述

ESCAPE

在这里插入图片描述

NULL

使用 IS (NOT) NULL 判断空值。
在这里插入图片描述

逻辑运算

在这里插入图片描述
AND 要求并的关系为真。
OR 要求或关系为真。

ORDER BY子句

在这里插入图片描述

单行函数

在这里插入图片描述

大小写控制

在这里插入图片描述

字符控制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
函数SYSDATE 返回:
日期
时间

日期的数学运算

在日期上加上或减去一个数字结果仍为日期。
两个日期相减返回日期之间相差的天数。
日期不允许做加法运算,无意义
可以用数字除24来向日期中加上或减去天数。
在这里插入图片描述

日期函数

在这里插入图片描述
在这里插入图片描述

隐式数据类型转换

Oracle 自动完成下列转换:
在这里插入图片描述

显示数据类型转换

在这里插入图片描述

TO_CHAR函数对日期的转换

在这里插入图片描述

日期格式的元素

在这里插入图片描述
在这里插入图片描述

TO_DATE 函数对字符的转换

在这里插入图片描述
TO_CHAR 函数中经常使用的几种格式:
在这里插入图片描述
在这里插入图片描述

TO_NUMBER 函数对字符的转换

在这里插入图片描述

通用函数

函数适用于任何数据类型,同时也适用于空值:
在这里插入图片描述

NVL 函数

将空值转换成一个已知的值:
在这里插入图片描述
在这里插入图片描述

使用 NVL2 函数

在这里插入图片描述

使用 NULLIF 函数

在这里插入图片描述

使用 COALESCE 函数

  • COALESCENVL 相比的优点在于 COALESCE 可以同时处理交替的多个值。
  • 如果第一个表达式为空,则返回下一个表达式,对其他的参数进行COALESCE

在这里插入图片描述

条件表达式

在 SQL 语句中使用IF-THEN-ELSE 逻辑
使用两种方法:

  • CASE 表达式
  • DECODE 函数

CASE 表达式

在这里插入图片描述
使用case表达式
在这里插入图片描述

DECODE 函数

在需要使用 IF-THEN-ELSE 逻辑时:
在这里插入图片描述

在这里插入图片描述

多表查询

笛卡尔集

在这里插入图片描述
笛卡尔集会在下面条件下产生:

  • 省略连接条件
  • 连接条件无效
  • 所有表中的所有行互相连接
    为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件。

连接多个表

连接 n个表,至少需要 n-1个连接条件。 例如:连接三个表,至少需要两个连接条件。

内连接和外连接

  • 内连接: 合并具有同一列的两个以上的表的行, 结果集中不包含一个表与另一个表不匹配的行
  • 外连接: 两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的行 ,这种连接称为左(或右) 外连接。没有匹配的行时, 结果表中相应的列为空(NULL). 外连接的 WHERE 子句条件类似于内部连接, 但连接条件中没有匹配行的表的列后面要加外连接运算符, 即用圆括号括起来的加号(+).

外连接语法

在这里插入图片描述

自连接

在这里插入图片描述

叉 集

在这里插入图片描述

自然连接

在这里插入图片描述
在这里插入图片描述

使用 USING 子句创建连接

在这里插入图片描述

使用ON 子句创建连接

在这里插入图片描述
在这里插入图片描述

满 外连接

在SQL: 1999中,内连接只返回满足连接条件的数据
两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的行,这种连接称为左(或右) 外连接。
两个表在连接过程中除了返回满足连接条件的行以外还返回两个表中不满足条件的行 ,这种连接称为满 外连接
在这里插入图片描述

左外连接

在这里插入图片描述

右外连接

在这里插入图片描述

分组函数

分组函数作用于一组数据,并对一组数据返回一个值。
在这里插入图片描述

分组函数类型

AVG 
COUNT 
MAX 
MIN 
STDDEV
SUM

函数语法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在组函数中使用NVL函数

NVL函数使分组函数无法忽略空值。

DISTINCT 关键字

在这里插入图片描述

GROUP BY

在这里插入图片描述
SELECT 列表中所有未包含在组函数中的列都应该包含
GROUP BY 子句中。
在这里插入图片描述
包含在 GROUP BY 子句中的列不必包含在SELECT 列表
在这里插入图片描述
在GROUP BY子句中包含多个列
在这里插入图片描述
在这里插入图片描述

HAVING 子句

在这里插入图片描述

子查询

语法

在这里插入图片描述

注意

  • 子查询要包含在括号内。
  • 将子查询放在比较条件的右侧
  • 单行操作符对应单行子查询,多行操作符对应多行子查询。

类型

在这里插入图片描述

单行子查询

在这里插入图片描述
在这里插入图片描述

子查询中的 HAVING 子句

在这里插入图片描述

子查询中的空值问题

在这里插入图片描述

多行子查询

返回多行。
使用多行比较操作符。
在这里插入图片描述

在多行子查询中使用 ANY 操作符

在这里插入图片描述

在多行子查询中使用 ALL 操作符

在这里插入图片描述

子查询中的空值问题

在这里插入图片描述
在查询时基于未知的值时,应使用子查询。

常见的数据库对象

在这里插入图片描述

Oracle 数据库中的表

  • 用户定义的表:
    – 用户自己创建并维护的一组表
    – 包含了用户所需的信息
    如:SELECT * FROM user_tables;查看用户创建的表
  • 数据字典:
    – 由 Oracle Server 自动创建的一组表
    – 包含数据库信息

命名规则

表名和列名:

  • 必须以字母开头
  • 必须在 1–30 个字符之间
  • 必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
  • 必须不能和用户定义的其他对象重名
  • 必须不能是Oracle 的保留字

CREATE TABLE 语句

在这里插入图片描述

数据类型

在这里插入图片描述

使用子查询创建表

在这里插入图片描述
在这里插入图片描述

子查询创建表实例

在这里插入图片描述

alter table语句

使用alter table可以

  • 追加新的列
  • 修改现有的列
  • 为新追加的列定义默认值
  • 删除一个列
  • 重命名表的一个列名
    使用 ALTER TABLE 语句追加, 修改, 或删除列的语法
    在这里插入图片描述

追加一个新列

在这里插入图片描述

修改一个列

在这里插入图片描述

删除一个列

在这里插入图片描述

重命名一个列

在这里插入图片描述

删除表

在这里插入图片描述

清空表

在这里插入图片描述

改变对象的名称

在这里插入图片描述

DDL命令不可回滚

DDL语句创建, 修改, 删除, 和重命名表.
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Java_Fly1/article/details/121255852
今日推荐