Oracle数据库学习

Oracle的优点

优点:

  1. 数据存储量大
  2. 处理速度快
  3. 安全性高
  4. 容错性强
SQL分类

DDL : 数据定义语言 create alter drop truncate
DML : 数据操纵语言 insert update delete
DCL : 数据控制语言 安全 授权 grant revoke
DQL : 数据查询语言 select from子句 where子句

Oracle表空间的创建与删除
--创建表空间
create tabkespace tablename  --表空间的名字
datafile 'c:\table.dbf'      --路径    
size 100m                    --设置空间大小
outoextend on                --设置自动扩展空间
next 10m maxsize 100m;       --每次扩展多少空间 
--删除表空间
drop tablespace tablename;
Oracle创建用户
create user username     	   --用户名
identified by password         --密码
default tablespace tablename;  --来自哪个表空间
给用户授权

Oracle数据库中常用角色:

  • connect -------------连接角色,基本角色
  • resource -------------开发者角色
  • dba -------------超级管理员角色
--给用户授权一个角色
grant dba to username;      
--grant ... to...  授予
Oracle数据类型
No数据类型描述
1Varchar,varchar2表示一个字符串
2NUMBERNUMBER(n)表示一个整数,长度是n
3DATA表示日期类型
4CLOB大对象,表示大文本数据类型,可存4G
5BLOB大对象,表示二进制数据,可存4G
创建person表
create table person(
             pid number(20),
             pname varchar2(10)
);
       --字段名 类型
修改表结构(数据定义语言Data Definition Language)(person 表)
--添加一列(多列括号中间用逗号隔开)关键字 add
alter table person add (gender number(1),...,...);  
--修改列类型,关键字 modify
alter table  person modify (gender char(1),...,...);
--char 长度是固定的
--修改列的名称  rename column 旧名称 to 新名称
alter table person rename column gender to sex;
--删除一列    drop column
alter table person drop column sex;
数据的增删改
--添加一条记录  insert into 
insert into person (pid,pname) values(1,'小明');
commit;   --提交事务

--修改   update
update person set pname='小马'
where pid=1;
commit;

--三个删除
--删除表中全部记录
delete from person;
--删除表结构
drop table person;
--先删除表再创建表。效果等同于删除表中全部记录在数据量大的情况下,该操作效率高
--索引可有提供查询效率,但是会影响增删改的效率
truncate table person;

伪表 dual

dual :虚表,只是为了补全语法,没有任何意义

select s_person.currval from dual
序列的使用(sequence)
  • 序列不属于任何一张表,但是可以逻辑和表做绑定
  • 序列默认从1开始,依次递增,主要用来给主键赋值
  • 序列名.nextval,类似于Java中的迭代器,返回下一个序列值
  • 序列名.currval,方法是返回当前序列值
  • 第一次使用序列时需要先调用nextval这个方法,不然调用currval会报错显示“currval尚未在会话中定义”
create sequence s_name       //序列名
increment by 增长数          //每次增长幅度
start with  起始值           //开始值
maxvalue  最大值             //序列最大值
minvalue  最小值             //序列最小值
Cycle 循环 nocycle 不循环    //如果为循环使用,则到达最大值或者最小值后重新建立对象
Cache 缓存  n               //是否将序列缓存在内存中,n 代表缓存的序列个数       
//Cache<maxvalue-minvalue/increment by  代表缓存所有序列值
--eg:创建一个序列,要求开始为1001,每次增长1,最大值为99999,最小值为1001,不缓存,不循环。
create sequence emp_eid_seq    --创建序列
increment 1                    --每次增长的幅度
start with 1001                --序列开始值
maxvalue 99999                 --最大值
minvalue 1001                  --最小值
nocycle                        --不循环
nochache                       --不缓存
 --
----添加一条记录
insert into person (pid,pname) values (s_person.nextval,'小明')
commit;       --提交事务

scott 用户,默认密码 tiger

scott 用户是 Oracle 帮我们建好的测试账户,Scott账户常用,里面有emp、dept表等。

----解锁scott用户(需要在管理员权限下)
alter user scott account unlock;
----解锁密码(可以重置密码)
alter user scott identified by tiger;

  • EMP表为员工表
  • DEPT表为部门表
  • SALGRADE表为工资表
单行函数(作用于一行返回一个值)
--字符函数
select lower ('YES') from dual 
select upper ('yes') from dual
--数值函数
select round (26.16,1)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值