8. 09 Oracle 学习笔记

1.安装 11g版本

注意:安装路径不能有汉字

关系型数据库:
oracle mysql sqlserver db2
非关系型数据库:
redis hbase

先有关系型数据库,后有非关系型数据库。

非关系型数据库会不会替代关系型数据库?
不会,各自作用不同,可以说是互补的关系

mainfram 大型机 cobol语言

2.数据库怎么用

services.msc

3.连接oracle
1.dos连接
sqlplus
2.第三方软件 pl/sql developer

4.用户名
scott oracle默认用户
system 管理员
sys 超级用户 超级管理员

5.重新设置密码

  1. sys as sysdba 使用超级用户登陆数据库。
  2. 口令随便输入即可

alter user scott identified by 123456
the account id locked;
aelter user scott account unlock;

6.再创建一个数据库
emp标 雇员信息表

7.关系型数据库
有时候,一张表是表示不出来所有信息的,需要多张表的关联才可以查出完整信息。

多张表表示完整信息感觉麻烦,能不能进行表的合并?
不行,因为数据库的涉及要遵循三范式。
如果合并,会造成数据冗余,从而影响查询修改等效率。

listener 监听器
oracle 提供服务 服务端

服务端会不会主动提供服务?
不会,当有请求的时候

listener 监听 1521端口
端口有一个特性:独占性,一个端口只能被一个进程占用。

8.表–理解为–文件
表空间–理解为–文件夹
一般情况下,一个用户可以有一个表空间

注意: 如果一个用户不创建表空间,oracle有一个默认的表空间。此用户的表就会放在默认表空间中。

创建表空间
create tablespace t1
datafile ‘d://t1.dbf’
size 10M

删除表空间:
drop tablespace t1;

创建用户
创建 tom用户的同时,给此用户赋值一个表空间,
意味着此用户在建表的时候,表存在ti中
create user tom
identified by 123456
defeault tablespace t1;


五范式
三范式

事物

隔离级别

数据库调优

数据库锁

书推荐:锋利的JQuery

10.权限
connnect
resource
dba

11.oracle 数据类型
字符:
varchar2(20) 长度可变 最大长度是6,字符长度可以在0-20之间
char(6) 固定长度 长度是6,长度超过6会报错。如果长度是3,会自动补充三个空格

尽量用varchar2(),因为在开发中不容易出错
数值:number(3) 长度为3的整数
number(3,2) 整数部分长度为3,小数部分长度是2的数值

日期类型:date 精确到年月日
timestap 精确到时分秒

大数据类型:不再使用
因为现在大文件,都是存在文件服务器,不再存到数据库。
数据库村的是存文件的路径

date类型使用的比较少
页面中的日期是String类型,保存到oracle要转换成date
查询的时候还要把date类型转换成String
要来回转换,比较麻烦,所以干脆date---->varchar2
这个问题在mysql不存在,mysql会自动把String转换成date

12.建表
理论上要遵循数据库三范式

create table stuinfo(
stuno char(6) not null,
stuname varchar2(20) not null,
stuage number(3,0) not null,
stuid number(18,0),
stuseat number(2,0)
);

学习的奥义:
–慢慢养成如果出错 先想着为什么出错,哪里出错了,该怎么改?下次怎么避免。
–为什么别人会,别人是怎么解决的?解决问题的思路是什么?为什么我没有这个思路

第一范式:字段不可再分 尽量把字段分的细一些
例子:建学生表,应该有个住址

第二范式:其他字段都要依赖主键, 都要跟主键相关

14.修改表
在开发中,不能修改表。因为所有的代码都是建立在表上的。一旦修改表,就意味着原来的代码全部作废,所以说在建表前,一定要充分考虑表怎么建。

alter user scott account unlock

15.数据合法性验证

例如,年龄必须是数字

在开发过程中,有的验证没有必要到达数据库之后再验证,而是应该验证无误后才保存到数据库。
但是oracle有此功能(验证数据的合法性),一般不用。

oracle提供了4种完整性约束

  1. 实体完整性
    同样的数据不能重复插入
    采取什么措施,来保证实体完整性?
    可以给表创建主键约束
    主键:保证了数据的唯一性。主键可以保证同一条记录只能插入一次。
--删除表
drop table stuinfo;
--建表

create table stuinfo(
stuno char(6) not null,
stuname varchar2(20) not null,
stuage number(3,0) not null,
stuid number(18,0),
stuseat number(2,0)
);


--向表中添加两列
alter table stuinfo add(
stutel_no varchar2(12),
address varchar2(20)
);

--修改列
alter table stuinfo modify(
stuage number(3,0) default(20)
);

--向 stuinfo表中插入数据

inset info stuinfo(stuno,stuname,stuage) values('101010','')

--删除列
--删除一列alter table stuinfo drop column stutel_no;
alter table stuinfo drop(stutel_no,stuseat);


--创建学生表
create table stuMarks(
examno varchar2(7) not null,
stuno varchar2(6) not null,
wittenexam number(3,0) not null,
labexam number(3,0) not null
);

-- 创建供应商表
create table S(
sno char(2) not null primary key,
sname varchar2(8) not null,
city varchar(20)
);

--创建产品表
create table P(
pno char(2) not null primary key,
pname varchar2(8) not null,
kind number(8) not nulln
);
--创建供应情况表
create table SP(
sno char(2) not null,
pno char(2) not null,
qty number(8) not null,
primary key(sno,pno),
foreign key(sno) references S(sno),
foreign key(pno) references P(pno)
);

二叉树特点:中间节点值大于左边,小于右边
数据库索引:二叉树算法
索引的目的:提高查询效率

主键所在的列会自动创建索引,索引是变化的,数据库要时刻要维护索引

一般情况下,只有一个字段可以添加主键,此字段一般是编号

  1. 域完整性
    一般对一个字段的约束
    例如:序号 位数,一般是确定的 可以用于数据类型约束 char(11)

  2. 引用完整性
    一般指多张表之间的引用
    外键:起到关联两张表的作用
    例如:A表和B表进行关联
    A外键 要对应 B的主键
    外键的值不是随意写的,而是要跟主键的值对应

    外键所在的表我们称之为从表,外键引用的表称之为主表
    外键的值来自主表的主键值。否则会报错

    唯一约束 约等于主键约束
    不同的是唯一约束 允许为null。主键约束不允许为空

  3. 自定义完整性(基本用不到)
    例如:年龄必须为20-40岁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值