Oracle的简易理解

本文详细介绍了Oracle数据库的若干核心概念,包括表空间和用户的创建,DDL操作如创建表和插入数据,事务的开启、提交与回滚,以及序列的使用。还探讨了字段约束如主键和外键,以及单行和多行函数的应用。此外,文章还讨论了Oracle与MySQL在自增长、分页和外连接等方面的区别。
摘要由CSDN通过智能技术生成

表空间与用户

Oracle中的一些注意点:

  1. 字段使用两个单词使用下划线做连接:user_id
  2. 表,视图,函数,触发器,存储过程
  1. oracle的表空间:一个数据库建立多个表空间,一个表空间下建立多个用户,一个用户下创建多个表
  2. 系统在创建之初会生成默认的system,sys账号,系统也会有默认的表空间dbf文件(但是登录时无法登录,需要给system账号解锁)
1.让所有登录的用户(主要是system用户)都可以以DBA的身份登录
sqlplus / as sysdba;
2.给system用户解锁
alter user system account unlock;
  1. 创建表空间: 一个表空间可以对应多个数据文件datafile
create tablespace test123 (表空间的名称)
datafile 'E:\app\test123.dbf' (表空间对应的数据文件datafile)
size 100m (表空间的初始大小)
autoextends on (表空间自动增长)
next 10m;(每次自动增长的长度为10
  1. 查看表空间
select tablespace_name from dba_tablespaces;
  1. 创建用户,新创建的用户没有权限,所以需要授权(grant dba to 用户),oracle中有三种角色:connect,resource,dba
create user c##用户名,c##用于数据加密
idendtified by 密码
default tablespace 表空间
  1. 给角色授权grant gba to 用户名
  2. 总结上述,创建用户之后可以以此用户登录
1.创建表空间
create tablespace test456 datafile 'E:\app\test456.dbf' size 100m autoextend on next 10m;
2.给表空间创建用户
create user c##heihei identified by 23123 default tablespace test456;
3.给用户授权
grant dba to c##heihei1;
  1. oracle的数据结构
数据类型
number(总长度,小数) 可以表示为整数和小数
varchar 字符串
varchar2 字符串
data 日期类型
clob 文本类型
blob 二进制数据

DDL操作

  1. 创建表结构
create table ttable(
  id number(10),
  name varchar2(20),
  height number(5,2),
  birth date);
  1. 插入数据
insert into ttable 
values(101,'小明 ',123.4566,to_date('2001-11-01','yyyy-mm-dd'));
  1. 对字段的DDL操作
1.添加字段
alter table ttable add gender varchar2(10);
13. 修改字段,default表示的是默认值
alter table ttable modify gender  varchar2(4) default '男'; 
3.修改字段名
alter table ttable rename column gender to sex;
4.删除字段名(删除的时候总是出现问题)
alter table ttable drop column sex;

事务

  1. 事务:从开始到结束完成某一个功能 (转账)完整的过程,系统会自动开启事务,在最后自动commit()提交事务,也可以手动开启(比如转账,从一个账户转走钱,另一个事务接收钱,这整个过程是事务)
  2. 事务的核心:当提交事务时,有一个sql语句失败了,事务回滚rollback(),让整个事务状态回滚到开启事务之前
  3. 事务开启,事务提交,事务回滚
  4. 一条或多条sql语句完成某一个功能的叫事务,像函数和存储过程里的sql语句集就可以开启事务,提交事务
  1. 一条sql语句:delete from user where id=3;这是事务,系统自动开启事务,提交事务
  2. 多条sql语句:转账,这也是事务,必须手动开启事务

序列

  1. 序列:在Oracle中要想实现自增长,必须手动处理,依靠序列实现自增长
  2. 创建序列:create sequence 序列名
  3. 面试题:自增长的前提是这个字段必须是序列
  4. 插入数据实现自增长(序列.nextval
--将id设置为序列
create sequence id;

--插入数据实现自增长
insert into ttable(id,name) values(id.nextval,'小明')

  1. 序列的注意事项:
  1. 数据自增的前提是该地段是序列
  2. 多个表同时使用id做序列,他们是共享的
  3. 删除序列数据时,在自增时,自增以最后一次数字开始自增,比如删除2,3,4,下次id会从5号开始
  4. 当插入数据失败,序列也会增长的
  1. 当删除了数据,在自增的时候,自增以最后一次数字开始,比如删除了id为2,3,4,下次的id号从5开始
  2. 当多个表同时有id作为序列,那他们是共享的
  3. 要想序列重新从1开始,先删除序列,再重新将id创建为序列
--删除序列
drop sequence id;
--创建序列
create sequence id;
--插入数据实现序列自增长
insert into ttable(id,name) values(id.nextval,'小明');
--查询数据
select * from ttable;

字段约束——主键

  1. 字段约束——主键,外键,unique
  2. 索引:主键,唯一,index
  3. 在创建表的时候设置主键,特点是非空唯一,不然会有违反唯一约束这种问题,所以一般设置主键为序列,实现自增长

字段约束——外键

  1. 先创建主表再创建从表
  2. 设置主键:constraint cou_pk primary key (cou_id)
-- 主表
create table course(
	cou_id number(10),
	cou_name varchar2(30),
	constraint cou_pk primary key (cou_id))
--创建序列
create sequence cou_id;
--插入数据
insert into course values(cou_id.nextval,'软件182班')
--查询数据
select * from course;
  1. 设置外键:foreign key (cou_id) references course (cou_id)
-- 从表
create table student3(
	stu_id number(10),
	stu_name varchar2(30),
	stu_gender varchar2(10),
	cou_id number(10),
	
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值