Oracle数据库学习-PartOne

2026年01月23日/ 浏览 5

OracleDay01

引言:这篇文章和知识脑图整理了很多,补了一段时间没有发文章了,知识点很多,一般是熟悉和安装服务器数据库,另外一般是SQL中简单查询,“骨头”硬的话可以慢慢“啃”,尽可能“搅碎”,数据库还是比较简单和基础的!

整理了很久的,用的话帮博主点个赞呗

Oracle 的概念

什么是Oracle

Oracle是一个关系型(表)数据库,Oracle(甲⻣文公司)也是一个公司的名称Oracle数据库的市场份额是最多的,Mysql数据库也是甲骨文公司的Oracle数据库价格昂贵,主要在电信、银行、证券、国企领域使用,Mysql主要是小公司、互联网行业应用比较多Oracle版本:Oracle 9i--Internet、Oracle 10g--grid、Oracle 11g、Oracle 12c--cloudOracle默认端口是1521

数据和数据库

数据(data):数字、文字、图形、视频等数据库(database):管理数据的仓库,其的创建和存在是满足一定的规则,这些规则称为范式

学号姓名课程成绩系名系主任99张三java90计算机李四99张三C语言80计算机李四第一范式(1NF):每一了都是不可再分的(所有字段值都是不饿分解的)第二范式(2NF):不存在部分依赖,所有主键完全要依赖于主键,不能依赖于主键的一部分

依赖:主键的值可以决定费主键的值,费主键依赖于主键

例如

学号+课程 |成绩 :成绩是完全依赖于主键(主键+课程名)

学号+课程|姓名 :姓名部分依赖于主键(学号)

拆分:

学号|姓名|系名|系主任 (学生表) :主键--学号

学号|课程|成绩 (成绩表) :主键--学号+课程名

第三范式(3NF):不存在传递依赖

例如

学号---姓名

学号---系名---系主任

拆分:

学号|姓名|系名 (学生表):主键--学号

系名|系主任 (系名):主键--系名

学号|课程名|成绩 (成绩表):主键--系名数据库管理系统(DBMS):Oracle、Mysql

属性--字段--列元组--记录--行域-值域:属性的取值范围主键:能够唯⼀的标识⼀条记录的属性(列)或属性组(联合主键)外键:在A表中不是主键,但是在B表中是主键,这一列就叫做A表的外键

Oracle数据库安装

安装服务器完成后测试数据库服务器sqlplus工具,Oracle自带,可以连接到数据库进行操作

--服务器登录

--sys用户:

sqlplus sys/test123 as sysdba ----数据库鉴权

--普通用户:sqlplus scott/tiger

--sys用户:

sqlplus / as sysdba ----操作系统

鉴权

--客户端登录

--sys用户:

sqlplus sys/test123@orcl_100 as sysdba

---数据库鉴权

--普通用户:

sqlplus scott/tiger@orcl_100

安装完成后,scott用户是锁定的,可以在口令管理中解锁,也可以使用命令解锁使用命令解锁scott用户

使用sys用户登录到数据库

sqlplus / as sysdba在sql提示符下输入

alter user scott account unlock;

修改密码

alter user scott identified by tiger;

3. 手机市场

sys 超级管理system 管理员scott 普通用户

4. 数据监听

运行在数据库服务器上一个进程,负责处理数据库连接请求查看监听 lsnrctl status=lsnrctl=listener+control停止监听 lsnrctl stop启动监听 lsnrctl start

5. 客户端工具

对数据库操作一般不使用自带的sqlpus工具,使用PLSQL Developer,是第三方的工具,将工具放到客户端上,打开使用,目录不要有中文 两个窗口

SQL窗口--执行sql语句的窗口命令窗口---相当sqlplus登录后的窗口,可以执行sql语句和sqlplus命令 sqlplus命令:查看表结构--看一个表有哪些列,类型、长度 desc 表名;

SQL语句分类

语言分类详细描述1、数据查询语句select2、数据操纵语句(DML)Insert;Update;Delete;3、数据定义语句(DDL)Create;Alter;Drop;Rename;Truncate;4、事务控制语句(TC)Commit;Rollback;Savepiont;5、数据控制语言(DCL)Grant;Revoke;其应用频率(重要程度)是从上到下递减的

SQL查询

了解表及表结构

emp
Name Type Nullable Default Comments -------- ------------ -------- ------- -------- EMPNO NUMBER(4) 工号 ENAME VARCHAR2(10) Y 姓名 JOB VARCHAR2(9) Y 职位 MGR NUMBER(4) Y 经理的工号 HIREDATE DATE Y 入职时间 SAL NUMBER(7,2) Y 月薪 COMM NUMBER(7,2) Y 奖金 DEPTNO NUMBER(2) Y 部门号
dept
Name Type Nullable Default Comments ------ ------------ -------- ------- -------- DEPTNO NUMBER(2) 部门号 DNAME VARCHAR2(14) Y 部门名 LOC VARCHAR2(13) Y 地址
salgrade
Name Type Nullable Default Comments ----- ------ -------- ------- -------- GRADE NUMBER(4) Y 级别 LOSAL NUMBER(8)Y 最低工资 HISAL NUMBER(8) Y 最高工资

SQL查询注意事项

关键字以及列名、表名不区分大小写语句可以换行,但是关键字不能换行语句以分号结尾
--查询用户下有哪些表 select * from user_tables; --重记录 --可以使用distinct关键字去重 --查询员工表中的部门号 select distinct deptno from emp; --定义列的别名 --使用as关键字 格式:列名(表达式) as 别名 --查询员工的年薪 select ename,sal*12 年薪 from emp;

select:识别什么列

from:识别那个表

where子句

比较运算符

等于和不等于:=,<>/!=
--查询不是部门10的员工 select ename from emp where deptno<>10;
大于和小于:>,<
--查询工资位于8000以下和10000以上的员工信息 select * from emp where sal<8000 and sal>10000; select * from emp where sal not between 8000 and 10000;
大于等于和小于等于:>=,<=
--查询工资7000以下(包含3000)的员工名字 select ename from emp where sal<=7000;

其他比较运算符

between...and... 两者之间
--查询工资位于8k-10k的员工信息 select * from emp where sal between 8000 and 10000;
in 匹配列出的值
--查询部门是10和20的员工信息 select * from emp where deptno in(10,20); select * from emp where deptno=10 or deptno=20;
null 空值
--查询奖金不为空的员工信息 select * from emp where comm is not null;

like 模糊查询

% 表示n个字符

--查询以熊开头的所有同学信息

select * from student where sname like熊%;

_ 表示1个字符

--查询第二个名字是思的所有同学信息

select * from student where sname like_思%;

逻辑运算符

and
--查询部门10里面工资大于8000的员工名字 select ename from emp where deptno=10 and sal>8000;
or
--查询部门10或者工资小于6000的员工信息 select * from emp where deptno=10 or sal<6000;
not
--查询奖金不为空的员工名字 select ename from emp where comm is not null;
优先级顺序
--NOT>AND>OR --查询部门10和20中工资大于6000的员工 select * from emp where (deptno=10 or deptno=20) and sal>6000;

order by 子句

排序

asc :升序desc:降序位置位于select语句的最后
--查询员工年薪从高到低 select ename,sal*12 年薪 from emp order by 年薪 desc;

以上子句在SQL执行顺序

from whereselectorder by

总结:简单查询还有一点没有讲到,在下面一章里会提,知识架构图用的话,帮博主点点关注,后期不定时更新,觉得帮到你的话可以留个赞~

picture loss