Oracle数据库教程(一)

15 篇文章 2 订阅
3 篇文章 0 订阅

一、简介

Oracle 数据库是 Oracle(中文名称叫甲骨文)公司的核心产品,Oracle 数据库是一个适合于大中型企业的数据库管理系统。在所有的数据库管理系统中(比如:微软的 SQL Server,IBM 的 DB2 等),Oracle 的主要用户涉及面非常广,包括:银行、电信、移动通信、航空、保险、金融、电子商务和跨国公司等。Oracle 产品是免费的,可以在 Oracle 官方网站:https://www.oracle.com/上下载到安装包,另一方面 Oracle 服务是收费的

Oracle 公司成立以来,从最初的数据库版本到 Oracle7、Oracle8i、Oracle9i,Oracle10g到 Oracle11g…虽然每一个版本之间的操作都存在一定的差别,但是 Oracle 对数据的操作基本上都遵循 SQL 标准。因此对 Oracle 开发来说版本之间的差别不大

通过 SQL可以实现与 Oracle 服务器的通信

SQL 是 Structured Query Language(结构化查询语言)的首字母缩写词

SQL 是数据库语言,Oracle 使用该语言存储和检索信息

表是主要的数据库对象,用于存储数据
 

二、数据类型

创建表时,必须为各个列指定数据类型
下图是 Oracle 数据类型的类别:
在这里插入图片描述
在这里插入图片描述
当需要固定长度的字符串时,使用 CHAR 数据类型
CHAR 数据类型存储字母数字值
CHAR 数据类型的列长度可以是 1 到 2000 个字节

VARCHAR2数据类型支持可变长度字符串
VARCHAR2数据类型存储字母数字值
VARCHAR2数据类型的大小在1至4000个字节范围内

常用数据类型

VARCHAR2 (size):可变长度的字符串, 必须规定长度

CHAR(size):固定长度的字符串, 不规定长度默认值为1

INT:整型

NUMBER(p,s):数字型p是位数总长度, s是小数的长度, 可存负数最长38位. 不够位时会四舍五入

DATE:日期和时间类型

NUMBER(p,s):p表示精度,s表示小数点的位数
NUMBER(5,2):表示整数部分最大3位,小数部分为2位
NUMBER(5,-2):存储整数,最大为7位整数,倒数2位为0,前面的取整
如果把s设成负数,Oracle将把该数字取舍到小数点左的指定位数

三、数据定义

数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象

用于操纵表结构的数据定义语言命令有:
CREATE TABLE
ALTER TABLE
TRUNCATE TABLE
DROP TABLE

建表

CREATE TABLE 表名
(字段名1 字段类型 PRIMARY KEY,
字段名2 字段类型 NOT NULL,
字段名3 字段类型 DEFAULT 默认值
);
例如:

CREATE TABLE t
(c1 int primary key,
 c2 varchar2(10) not null,
 c3 char(1) default 'A'
);

利用现有的表创建表
语法:

CREATE TABLE 目的表名 AS
SELECT 字段列表 FROM 源表名;
CREATE TABLE t2 AS SELECT * FROM t;
CREATE TABLE t3 AS SELECT c1,c2,c3 FROM t;
CREATE TABLE t4 AS SELECT * FROM t WHERE 1 = 2;

约束

可用于建表CREATE TABLE 命令中的语法

PRIMARY KEY:主键,唯一,不能为空,有唯一索引

FOREIGN KEY:外键,与其他表主键间的约束

UNIQUE:唯一约束
CHECK:检查约束,自定义字段数据的范围或规则
NOT NULL:非空约束

例如:

CREATE TABLE t
(
 t1 int,
 t2 char not null,
 t3 char(1) check(t3 in('A','B','C'),
 constraint pk_a primary key(t1),
 constraint fk_a foreign key (t2) references b(b1)
);

四、数据操纵

数据操纵语言用于检索、插入和修改数据
数据操纵语言是最常见的SQL命令

数据操纵语言命令包括:
INSERT   (增)
SELECT   (查)
UPDATE   (改)
DELETE   (删)

增加数据

INSERT INTO 表名(字段列表) VALUES(字段值列表);

INSERT INTO t(c1,c2,c3) values(1,2,3);

INSERT INTO 表名(字段列表) SELECT 子句;

INSERT INTO t(c1,c2,c3) select b1,b2,b3 from b;

插入日期类型的值
日期数据类型的默认格式为“DD-MON-YY”
使用日期的默认格式
使用TO_DATE函数转换

INSERT INTO t1 (date_col)
VALUES (TO_DATE('2021-12-26', 'YYYY-MM-DD'));
INSERT INTO t1 VALUES('0001', '24-12月-21');

删除数据

DELETE [FROM] 表名 [WHERE 子句];

DELETE from t ;
DELETE from t where c1=10;

修改数据

UPDATE 表名 SET 字段名=值 [WHERE 子句];

UPDATE t set c1=20;
UPDATE t set c1=20 where c1=30;

修改表结构
修改表结构ALTER TABLE 命令

ALTER TABLE ADD
ALTER TABLE MODIFY
ALTER TABLE DROP 

查询语句

SELECT 对象 FROM 对象名;

Oracle的select语句必须有from子句

SELECT/字段名 
FROM 对象名
WHERE 子句 
GROUP BY 子句
HAVING 子句
ORDER BY 子句;

数据提交/回退

COMMIT/ROLLBACK; 提交/回退

INSERT、UPDATE、DELETE操作对数据产生的影响回归段

注意SQL*Plus对数据事务的默认处理方式

CREATE、DROP、TRUNCATE TABLE不经过回退段

五、SQL操作符

Oracle 支持的 SQL 操作符分类如下:
在这里插入图片描述

算术操作符

算术操作符用于执行数值计算

可以在SQL语句中使用算术表达式,算术表达式由数值数据类型的列名、数值常量和连接它们的算术操作符组成

算术操作符包括加(+)、减(-)、乘(*)、除(/)

SELECT itemdesc, max_level - qty_hand avble_limit
FROM itemfile WHERE p_category='spares';
SELECT itemdesc, itemrate*(max_level - qty_hand)
FROM itemfile
WHERE p_category='spares';

比较操作符

比较操作符用于比较两个表达式的值

比较操作符包括 =、!=、<、>、<=、>=、BETWEEN…AND、IN、LIKE 和 IS NULL等

SELECT itemdesc, re_level
 FROM itemfile
 WHERE qty_hand < max_level/2;
SELECT orderno FROM order_master
WHERE del_date IN ('24-11月-21','26-12月-21');
SELECT vencode,venname,tel_no
FROM vendor_master
WHERE venname LIKE 'j___s';

逻辑操作符

逻辑操作符用于组合多个计较运算的结果以生成一个或真或假的结果

逻辑操作符包括与(AND)、或(OR)和非(NOT)

SELECT * FROM order_master
 WHERE odate > '10-9月-21'
 AND del_date < '26-12月-21';

显示 2021-9月-10 至 2021-12月-26的订单信息

连接操作符

连接操作符用于将多个字符串或数据值合并成一个字符串

SELECT (venname|| ' 的地址是 '
||venadd1||' '||venadd2 ||' '||venadd3) address
FROM vendor_master WHERE vencode='V001';

通过使用连接操作符可以将表中的多个列合并成逻辑上的一行列

操作符优先级

SQL 操作符的优先级从高到低的顺序是:
算术操作符 --------最高优先级
连接操作符
比较操作符
NOT 逻辑操作符
AND 逻辑操作符
OR 逻辑操作符 --------最低优先级


  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值