1.什么是Oracle数据库?
数据库:存放、操作、管理数据的仓库。
数据最终保存计算机的磁盘上。
项目开发:淘宝网 -->.txt
Oracle:甲骨文公司
全球第二大软件厂商
第一:微软
第三:IBM
第四:爱斯普
第五:赛门铁克
Oracle数据库:Oracle甲骨文公司所研发
和推出的一款关系型数据库软件。
2.为什么要学习、使用数据库?
数据库的好处、优点
1)file文件
学生管理系统
保存数据的格式不规范。
解析数据的方式不统一。
2)xml格式
可扩展标记语言
xml主要用于轻量级的数据存储和传输
SAX解析 Dom解析 Dom4j解析
<students>
<student>
<id>1001</id>
<name>Jack</name>
<age>22</age>
<gender>男</gender>
</student>
</students>
3)数据库软件
非轻量级的数据管理软件。
下载、安装、配置环境.....
当上述步骤一旦执行完毕,
用来处理数据和操作数据相当的高效和方便。
常见关系型数据库的分类:
1)大型数据库
Oracle db2(IBM) ....
特点:存储量大、安全性高 收费
银行 大型企业
花旗银行 一台40000 40台一组
2)中型数据库
Mysql SqlServer
特点:存储量较大、安全性较高 免费
3)小型数据库
Access(微软) Sqlite
特点:存储量较小、安全性较低
就是一个文件。
移动端开发、嵌入式设备开发
3.如何学习使用数据库?
学习对数据进行CRUD(增删改查)的操作。
CURD
Create Read Update Delete
在关系型数据库中,CRUD是通过SQL指令实现的。
SQL:结构化的查询语句。
查询student表中的全部内容:
select * from student;
查询teacher表
select * from teacher;
PL/SQL:在原有的sql命令基础之上,
加了一些逻辑判断。例如if else for
SQL*PLUS:Oracle自带的一个客户端工具,
用来向Oracle服务器发送、执行sql命令。
4.表(table)
最基本的存储单元。
有行有列
表格中有哪些种类的数据取决于有哪些列(字段)
每插入一条数据,就是插入一行数据。
列决定了表格结构,
行决定了表格具体数据内容。
学生管理系统:
1)学生表(学号、姓名、性别、年龄、班级)
1 张三 男 22 1001
2)课程表(课程编号、课程名、课程描述)
1 java基础 面向对象编程技术
2 Oracle数据库基础 。。。。
3)学生选课表(学生学号、课程编号)
1,1
1,2
4)教师表(教工号、姓名、性别、年龄...)
5)教师授课表(课程编号,教工号)
1 张三 男 40 java基础 公共选修课 面向对象编程
2 李四 女 50 java基础 公共选修课 面向对象编程
数据冗余
1号学生 张三 40岁 男
2号学生 张三 40岁 男
关系型数据库:
数据库中数据和数据之间是存在一定关联的。
1)表自己存在二元关系 二维关系
行和列交错
2)表与表之间存在关联关系
非关系型数据库:
Redis:一种运行在内存中的非关系型数据库。
保存的数据全部都是键值对。
key = value
name=zhangsan
address=suzhoushi
age=22
company=briup
关系型数据库中实体的关系有三种:
1)一对一
一个A只能对应一个B
一个B只能对应一个A
丈夫和妻子的关系属于一对一关系。
丈夫表(id,姓名,年龄,妻子id)
1 张三 23岁 10
妻子表(id,姓名,年龄)
1 王翠花 22岁
处理方式:通过主键和外键
可以把外键放在任意一方。
2)一对多
一个A可以对应很多个B
但是每个B只能对应一个A
小组和成员的关系
一个小组中可以容纳很多个成员
但是每个成员只能加入一个小组。
小组表(小组编号,小组名,小组描述)
成员表(成员编号,姓名,性别,小组编号)
1 张三 男 S1
处理方式:通过外键。
外键应该放在多的一方。
3)多对多
一个A可以对应很多个B
一个B也可以对应很多个A
学生和课程的关系
学生表(学号、姓名、性别、年龄、班级)
课程表(课程编号、课程名、课程描述)
处理方式:建立一张桥表。
学生选课表(学生ID、课程ID、选课时间)
处理思想:把一个多对多变成了
两个一对多。
5.SQL的分类
分为五种:
1)DDL Database Design Language
数据库定义语言
用来定义数据库对象(表)的结构。
创建表:create table
修改表:alter table
删除表:drop table
截断表:truncate table
单纯地对表的表名、字段做操作
不涉及到表中具体的数据。
2)DCL Database Control Language
数据库控制语言
用来控制数据库中用户的权限
向用户赋予权限:grant 权限/角色 to 用户名;
撤销用户的权限:revoke 权限/角色 from 用户名;
3)DML Database Manipulation Language
数据库操纵语言
操纵的是具体到表中的数据。
包含:增加 删除 修改
插入数据:insert
删除数据:delete
修改数据:update
特点:具有事务性。
事务性:每次执行一条/一批sql语句的过程
都看做是一次事务。
事务需要提交。如果不提交事务,
则DML语言所做的修改,不会真实生效。
在提交事务之前,
事务可以回滚到上一个节点。
4)DQL Database Query Langauge
数据库查询语言
select
查询语句是数据库中最简单的sql
也是最复杂的sql
select * from 表名;
5)DTL Database Transiction Language
数据库事务语言
用来控制事务的提交、回滚
提交:commit;
回滚:rollback;
6.Oracle数据库中的六大对象
1)*表 table
是关系型数据库中最基本的存储单位。
2)视图 view
不是一张真正的表。是一张虚表。
视图中显示的内容需要依赖于其它表的内容。
本质就是一条select查询语句。
3)*序列 sequence
Oracle中特有的对象。
用来产生唯一值。
通过指定规则,序列可以产生一组特定数值。
常用于生成主键ID的值。
4)索引 index
索引加在数据库表中的某些字段上,
可以提高该字段的检索效率。
一些经常查询的字段,就可以加上索引。
加了索引之后,查询时会优先查询这些字段。
不要在不经常使用的字段上加索引。
5)*同义词 synonym
给数据库中的对象起一个别名。
HOSPITAL_MANAGE_SYSTEM_SYS_USER
起个别称:user
6)存储单元/程序单元 program unit
PL/SQL所操作的对象。
一个认知
什么是Oracle?
两个概念
1.什么是数据库
2.什么是关系型数据库
三个名词
SQL
SQL*PLUS
PL/SQL
四个约束
主键约束--实体性完整性约束
外键约束--参照性完整性约束
列级约束
表级约束
五个分类
SQL语句的五种分类
1)DDL
2)DCL
3)DML
4)DQL
5)DTL
六个对象
表
视图
序列
索引
同义词
程序单元
在SQLPLUS中访问和操作数据库:
1.打开SQLPLUS工具
1)打开CMD,在命令行输入指令:SQLPLUS
win+r 弹出运行窗口 输入CMD
前提是环境变量配置正确
检查环境变量中的PATH的值:
有没有正确添加Oracle数据库的BIN目录
2)直接打开oracle自带的终端SQLPLUS
区别:如果在cmd中运行sqlplus命令的话,直接需要输入账号和密码
如果运行的是oracle自带的终端的话
可以不输入账号密码
2.使用账号和密码进行登录
oracle已经给我们预设好了两个管理员账号
可以直接用来登录
1)sys 权限最大 董事长
2)system 权限其次 总经理
密码是安装的过程中设定的密码。oracle
不推荐直接使用管理员账号对数据库进行操作。
使用管理员账号创建一个普通账号用来操作数据。
登录过程:
1)CMD 直接提示输入账号--> system -->回车 -->提示输入密码
-->输入密码 回车
2)直接打开SQLPLUS终端
使用指令conn 账号/密码
conn不是登录的意思
是连接账号的意思
在登陆了某个账号的状态下,
也可以使用conn命令切换账号。
查看当前登录的用户: show user
创建一个用户:
create user 用户名 identified by 密码;
例如:创建一个名为briup 密码为oracle的用户:
create user briup identified by oracle;
向创建好的用户赋权:
grant 权限/角色 to 用户名;
一般要赋予两个最基本的角色:
connect 包含创建连接、发起会话的权限
resource 包含操作数据中的表以及表中数据的权限。
增删改查
SQL:grant connect,resource to briup;
切换到briup用户:
conn briup/oracle
3.修改会话语言环境
为什么要修改会话语言环境?
在插入的数据当中包含日期类型的数据。
日期类型数据在中英文环境下表现是不同的。
alter session set nls_language='english';
alter session set nls_language='simplified chinese';
nls:native language support 地区化语言支持
4.导入数据(执行.sql脚本)
.sql:一批sql命令,集合在一个文件中。
可以批量执行sql命令。
把一批sql命令放到.sql脚本中,
在终端直接执行这个文件,就相当于逐条执行sql命令。
执行方式:
1)start 目录+文件名
2)@目录+文件名
注意书写方式区别:start后面有空格,@后面没有空格。
查看数据是否导入成功:
查询s_emp表中有多少数据?
select count(*) from s_emp;
三张表
员工表 s_emp
部门表 s_dept
区域表
查看表中的字段