Orcale数据库从下载到使用,零基础教学,降低你的学习成本

目录

引言 

一、Orcale 11g数据库的下载和安装

 二、Orcale 的默认系统用户登录,创建表空间及创建授权新用户

 三、Orcale 数据库 表字段的类型

 四、如何用 sql 语句创建一个 Orcale 数据库的表

 五、如何用 sql 语句查询 Orcale 数据库的表字段

 六、Orcale 中引号的使用

 七、如何进行多表联查(左外连,隐式内联)

 八、如何对查到的数据排序并重新编号

九、如何复合查询获取表中的数据条数

 十、Orcale 数据库进行 Group By 分组时需要注意什么?

 结束语


引言 

        作为开发必须的数据库分为很多种,我们通常要求根据需要进行Mysql 或 Orcale 数据库的使用,因为之前小编一直用的是MySQL数据库,现在用了一段时间Orcale数据库,那么本文就主要说说Orcale数据库的下载安装和使用,也会讲到一些MySQL 和 Orcale 的使用区别。

一、Orcale 11g数据库的下载和安装

下载链接: https://pan.baidu.com/s/1IHDva0FaFF28IJ7QzWNAEA

提取码:zmhy

如果需要其他版本可以跳转官网下载:

安装流程

1. 解压安装包,再框选解压后的两个安装包再次解压,得到 database 文件夹

2. 进入 database 文件夹,双击 setup.exe 进行安装 

 

3. 点击安装后会弹出以下窗口,不需要操作,稍等片刻,会弹出弹框说不满足要求,不需要管,点击“是”即可。

 

 4. 不需要绑电子邮箱的话,直接下一步,出现弹框选择“是”;继续点下一步,再下一步

5.  然后进行口令设置,相当于设置默认系统密码,密码需要满足规定的格式要求。

设置好以后点击“下一步”

 

6.  在先决条件检查页面,点击确认。 然后等待安装即可。安装过程会比较慢,有两个进度条会顺次执行。

 

7. 安装好以后会出现如下选项,

        点击“口令管理”可以设置用户和密码,点击确认将直接结束安装。

        如果你点击了确定,是不是意识到不知道该怎么登陆 Orcale 数据库你?继续往下看,解决办法尽在下边。

 

如果你点击进入了“口令管理”,你需要做的有如下操作:

        1、重新设置sys和system的用户密码。

        2、将sh和scott账号的勾去掉,并重新设置密码。

        3、点击确定,完成安装。

 如果你直接点击了“确定”,直接结束了安装,你要做的是用 Orcale 系统账号登陆并创建新用户供你使用。 具体流程如下:

1. 找到电脑菜单 -> 全部应用 -> Orcale... -> SQL Plus, 点击打开

2. 跟着下边登陆,创建授权用户执行sql语句

3. 登陆 Navicat 等可视化图形工具,创建连接,连接Orcale数据库

 

 


 二、Orcale 的默认系统用户登录,创建表空间及创建授权新用户

请输入用户名:as sysdba
请输入用户名:sys
输入口令:下载时定义的(大写+小写+数字)口令 【看不到输入的内容,所以输错重来就行】
--------------------------
-- 这里路径自定义设置,设置的是保存创建Orcale空间表的存放位置
create tablespace UBP datafile 'D:\UBP.dbf' size 200m autoextend on next 100m maxsize unlimited;
---------------------------
-- 创建用户UBP,设置密码UBP,并赋予初始表资源为 UBP
create user UBP identified by UBP default tablespace UBP;
---------------------------
-- 授予权限,分两步,分别授予用户(UBP) connect, resource 和 dba 权限
-- 用户名和表名重复没有关系,自己清楚就行
grant connect, resource to UBP;
grant dba to UBP;


 三、Orcale 数据库 表字段的类型

Orcale 数据库字段类型,大体分为六类,分别是字符串类型、数字数据类型、日期时间数据类型、 大型对象(LOB)数据类型、 RAW 和 LONG RAW 数据类型、 ROWID 和 UROWID 数据类型。

        其中需要特别注意的是常用的三种: VARCHAR2, NUMBER,Date.

  1. 在 Orcale 中,弃用了 MySQL 数据库的 VARCHAR,取而代之的是 VARCHAR2
  2. NUMBER(P,S) 代替了 MySQL 中 int 等基本数据类型。其中 P,precision 表示数字中的有效位(没有指定的话,将使用默认 38 作为精度),S,scale 表示小数点右侧的位数,默认为0(可设置为负数,表示将把该数字取舍到小数点左边的指定位数)
  3.  Date 类型,同 MySQL 一样用来处理日期类型,但是它对类型有更强制性的要求,在 Navicat 工具中进行 sql 匹配时,因为书写的只能是字符串类型,所以需要使用 date = TO_DATE("2023-09-05", "yyyy-mm-dd")
  4.  大小写,Orcale 在创建表字段时最好将表名和字段名都大写。 在查询字段时,查询的字段名可以小写, Orcale 会在查询时自动转换为大写。

 


 四、如何用 sql 语句创建一个 Orcale 数据库的表

在Oracle中创建数据表的时候,建议表名字段名全部为大写,会减少一些错误的产生。

在查询的时候使用小写字段可以成功查询,如果需要,可以给字段和表名加双引号,给字符串类型加单引号。

create table Student (
    id number(10) primary key,    //primary key 设置主键
    name varchar2(20) not null,    //varchar2 必须添加长度
    classId number(10) not null,
    "uId" varchar2(20) unique not null,    //unique 设置唯一
    birthday date          //date 不能加长度
);

 五、如何用 sql 语句查询 Orcale 数据库的表字段

查询中常见的错误:

  1. 查询字段没有大写

 

 2. 表字段没有大写

3. “张三”,使用双引号包裹

4. 最终 sql

select * from STUDENT s where s.NAME = '张三';


 六、Orcale 中引号的使用

----------------------------1. 创建表 

Orcale中创建表语句,对于表名和字段名都可以加双引号或者不加。

----------------------------2. 查询表

Mysql中查询语句为:(不支持倒引号查询)

Oracle中的查询语句: (仅支持单引号和无引号查询)

----------------------------3. 具体用途

单引号的使用:

1. 用来限定字符串(varchar2等),界定一个字符串的开始和结束。上边的“张三”查询不到也正是因为这个原因。

2. 当做转义字符使用,对应的 MySQL 中一般使用 \ 来转义

双引号的使用:

在创建表时,用来限定表名,列名的名称,如果不使用引号直接声明字段,遇到数据库中的关键字就会创建失败,比如 desc


 七、如何进行多表联查(左外连,隐式内联)

隐式内联:需要注意对于命名相同的字段通过 表名.字段名 进行区分,如此处的 CLASS_ID 

select s.*, c.NAME className, c.stu_num from STUDENT s, CLASS c 
    where s.NAME = '张三' and s.CLASS_ID = c.CLASS_ID; 

 左外连:查询左表的全部和右表关联的数据。区别于 where 查询,左外连用 ON 进行条件筛选。

如果需要多个表进行左外连查,那就按照:

        表a  LEFT JOIN 表b ON 条件1 LEFT JOIN 表c ON 条件2 的格式。

对应的,右外联用的是 RIGHT JOIN

select s.*, c.NAME className, c.stu_num FROM STUDENT s 
    LEFT JOIN CLASS c ON s.NAME = '张三' and s.CLASS_ID = c.CLASS_ID;

 八、如何对查到的数据排序并重新编号

         1. 直接查询

        2. 排序并编号查询

 

 -- 关键部分是 row_number () over ( ORDER BY ID),

其中排序利用的是 Order By,编号用的是 row_number,但是两者又是一个整体,如果缺少了 ORDER BY,语句就会报错。

SELECT row_number () over ( ORDER BY ID ) rn, s.* from STUDENT s;

九、如何复合查询获取表中的数据条数

这里提供两种办法,但是都需要子查询,也都需要对字段分组(group by),试着思考分组需要注意什么。 

-- 方法一,查询字段使用子查询。
select c.*, (select count(ID) from STUDENT s where s.CLASS_ID = c.CLASS_ID GROUP BY CLASS_ID) num 
from CLASS c where c.CLASS_ID = 1;

-- 方法二,查询表进行合并,增加子查询字段。
SELECT n.class_id, n.name, n.stu_num, n.id, COUNT(ID) NUM
 FROM (select c.*, s.ID from STUDENT s, CLASS c where c.CLASS_ID = s.CLASS_ID) n
    WHERE n.CLASS_ID = 1 
    GROUP BY n.id, n.class_id, n.name, n.stu_num ;


 十、Orcale 数据库进行 Group By 分组时需要注意什么?

 通过上面的复合查询我们知道要求COUNT值,我们需要分组,那么直接对需要求的字段分组为什么会报不是分组呢? 在 Orcale 中,规定了 GROUP BY 需要遵守的规则,要么将查询的所有字段都进行分组,要么通过子查询的方式。

所以这个查询正确的写法就是:  SELECT n.class_id, n.name, n.stu_num, n.id, COUNT(ID) NUM FROM (select c.*, s.ID from STUDENT s, CLASS c where c.CLASS_ID = s.CLASS_ID) n WHERE n.CLASS_ID = 1 GROUP BY n.id, n.class_id, n.name, n.stu_num ;


 结束语

我接触 Orcale 仅有四周时间,接触到的知识面还尚浅,但也希望这篇博文能对你有一定的帮助。如果你看到了这里,相信或多或少会有一些收获吧,那如果可以的话,就麻烦点个赞再走吧!感谢您的收看~

猜你喜欢

转载自blog.csdn.net/m0_70876920/article/details/132631410