常用数据库对象
01 用户和表空间
一,前言
安装完Oracle之后系统为开发者提供了一些用户如SCOTT SYSTE SYS等用户,但是这都是系统给的,能不能自己创建用户呢。显然是可以的.第一次课里面说的Oarcle的数据是存在放到目录下的oraldata目录下的DBF文件里面
那么可以不可以创建自己的存放数据库的DBF文件呢,显然是可以
二、创建表空间
1、创建临时表空间
create temporary tablespace erp_temp
tempfile 'D:\oracledata\erp_temp.dbf' DBF文件的位置自定义
size 50m 初始大小
autoextend on 大小自动增加
next 50m maxsize 20480m 每次增加的大小和最大空间
extent management local[本地管理]/dictionary[数据字典管理];
2、创建表空间
create tablespace erp_data
datafile 'D:\oracledata\erp_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m ;
3、修改表空间
语法: alter tablespace 旧名称 rename to 新名称;
alter tablespace newspace rename to myspace;
4、删除表空间 并把包含的数据和约束删除
语法: drop tablespace 表空间名 [including contents and datafiles];
drop tablespace ERP_TEMP including CONTENTS AND DATAFILES;
5、查看表空间
select * from v$tablespace;
三、创建和删除用户
1、创建用户
create user erp identified by erp 创建一个用户名为erp密码为erp的用户
default tablespace erp_data 默认的数据存放的表空间
temporary tablespace erp_temp; 临时的数据存放表空间
2、删除用户
drop user erp;
四、赋予和取消户相关权限
1、添加权限
grant connect,resource,dba to erp;
2、取消权限
revoke connect,resource,dba from erp;
3、关于权限
权限指执行特定类型SQL 命令或访问其他对象的权利
角色是具有名称的一组权限的组合
常用系统预定义角色
①CONNECT:临时用户
②RESOURCE:更为可靠和正式的用户
③DBA:数据库管理员角色,拥有管理数据库的最高权限
4、开发中的注意点
在开发中,系统集成开发会用到其它系统要能查询当前系统的表的功能,这时候一般是创建一个新的用户给新用户查询的权限,而不会把当前系统的用户给别人。
grant select any table to test(用户名需要查询表的用户);使用用户test去访问别的用户下(如test2)的T表的时候select * from test2.T(表名);
02 数据库表table
一、前言
前面讲了scott用户下的四张表,Oracle也为用户提供了创建自定义表的功能,表是数据库存放数据的最小单元。
二、数据库表字段的常用数据类型
1、字符数据类型
①CHAR:存储固定长度的字符串
②VARCHAR2 :存储可变长度的字符串
2、数值数据类型
NUMBER:存储整数和浮点数,格式为NUMBER(p, s)
column_name NUMBER { p = 38, s = 0}
column_name NUMBER § {整数}
column_name NUMBER (p, s) {浮点数}
3、日期时间数据类型
①DATE:存储日期和时间数据
②TIMESTAMP:比DATE更精确
4、LOB数据类型
①BLOB:存储二进制对象,如图像、音频和视频文件
②CLOB:存储字符格式的大型对象如XML
三、创建表
1、设计要求:
•建立一张用来存储学生信息的表 字段包含学号、姓名、性别,年龄、入学日期、班级,email等信息
•具体要求1.学号是主键;2.姓名不能为空;3.性别默认值是男;4.年龄范围18—30岁;5.Email唯一
create table student(
sno number(6),
sname varchar2(8) ,
sex char(2),
age number(3),
enterdate date,
clazz varchar2(10),
email varchar2(20)
)
•以上写法的缺陷:1.学生编号可以相同,2.年龄的范围没有限制 ,3.姓名居然可以为空,4.邮箱不唯一
•解决方法
添加相关的约束-----后面讲到
2、语法
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr] , …
);
3、注意点
在创建新表时,指定的表名必须不存在,否则将出错。
使用默认值:当插入行时如果不给出值,dbms将自动采用默认值。
在用Create语句创建基本表时,最初只是一个空的框架,用户可以使用insert命令把数据插入表中。
四、修改表
在基本表建立并使用一段时间后,可根据实际需要对基本表的结构进行修改
1、增加新的列用“alter table … add …”语句
alter table emp add address varchar(20)
注意:新增加的类不能定义为“not null”, 基本表在增加一列后,原有元组在新增加的列上的值都定义为空值。
2、删除原有的列用“alter table … drop…”语句,语法格式:alter table 表名 drop column 列名
alter table emp drop column address
3、修改字段数据类型“alter table…modify…”
alter table emp modify(job varchar