oracle-表空间-用户-角色-权限-约束

一,表空间

1.1创建表空间

--问题:创建一个名为hp的表空间,指定数据文件为hp.dbf,大小为10m.

create tablespace hp

datafile ‘C:\app\hp\hp.dbf‘

size 10M

autoextend on next 5m

maxsize unlimited;

1.2 删除表空间

drop tablespace hp;

1.3思考题

删除表空间的时候,如何删除关联的数据文件??

drop tablespace test_data including contents and datafiles;

二 创建用户

2.1创建用户

--语法结构:create user 用户名 identified by 密码 【default tablespace 表空间名】【temporary tablespace temp】

create user hope identified by 123456;

create user hope1 identified by 123456 default tablespace users;

create user hope2 identified by 123456 default tablespace users temporary tablespace temp;

2.2 修改用户密码

--语法结构:alter user 用户名 identified by 密码

alter user hope identified by 654321;

2.3 删除用户

--drop user 用户名【cascade】

drop user hope;

drop user hope cascade;

三 权限和角色

--权限指执行特定类型SQL命令或访问其他对象的权利

--系统权限:允许用户执行某些数据库操作

--对象权限:允许用户对某一特定对象执行特定的操作

--角色是具有名称的一组权限的组合

3.1 常用系统预定义角色

--CONNECT:临时用户

--RESOURCE:更为可靠和正式的用户

--DBA:数据库管理员角色,拥有管理数据库的最高权限

--一般情况下,普通用户,有connect和resource的角色就够了。

3.2 赋予权限和角色

--语法结构:grant 角色1,角色2,。。。 to 用户

grant connect to hope2

grant connect,resource to hope2;

--给hope2赋予查询scott的emp表的权限

grant select on scott.emp to hope2;

grant select,update on scott.emp to hope2;

--撤销角色和权限:

--语法结构:revoke 角色1,角色2,。。。from 用户

revoke resource from hope2;

revoke connect,resource from hope2;

四 Oracle的数据类型@@


类型


语法


描述


文本类型


char(n)


定长


最大2000字符,默认n=1


varchar2(n)


变长


最大4000字符


nchar(n)


定长


unicode数据类型,最大2000


nvarchar2(n)


变长


unicode数据类型,最大4000


clob(character large Object)


字符型大对象,最大8TB


blob(birnary large Object)


二进制数据,可存放图片、声音,最大8TB


数值


number(p,s)


变长


p-有效位,s-小数位;1<=p<=38,-84<=s<=127


日期


date


默认格式:DD-MM-YYYY ‘16-05月-2017’


timestamp(n)

4.1 文本类型

--char:可以存储定长的字符串  char(200)

--varchar:可以存储变长的字符串

--varchar2:可以存储变长的字符串  varchar2(200)

--什么时候用char,什么时候用varchar(2) @@

当已知字符串长度用char比较合适

--不确定字符串长度时,用varchar2比较合适。

--nchar和nvarchar2可以存储Unicode字符集

4.2 数值类型

--数值数据类型:numer

--number  等价于number(38,0)

--number(15)表示可以存储一个15位的整数

--number(22,7)表示可以浮点数,整数部分有15位,小数点后有7位

--注意:不建议大家使用varchar,integer,float,double

4.2 日期数据类型

--与日期类型相关的函数

--sysdate:日期函数:显示当前日期

select sysdate from dual;

--systimestamp:比Date更精确的一个时间

select systimestamp from dual;

--to_date(字符串,格式):将一个Oracle不认识的字符串,转成Oracle认识的日期格式

select to_date(‘2018-01-05‘,‘yyyy-mm-dd‘) from dual;

--Date:日期类型,存储日期和时间

--TimeStamp:比Date更精确的一种日期类型。

--默认日期格式:

--中文的Oracle:日-月-年   比如1998年7月1日 ->‘01-7月-1998’

--英文的Oracle:day-mon-year  比如1998年7月1日 ->‘01-JUL-1998‘

--Lob:

--BLOB:存储二进制对象,如图像、音频和视频文件

--CLOB:存储字符格式的大型对象

五  表

5.1创建表

1.使用sql/plus创建

create  table  表的名称(字段名称1  数据类型, 字段名称2 数据类型…);

示例:

创建学生表,字段和类型如下所示:


字段


字段类型


id


number


name


varchar2(20)


sex


char(2)


birthday


date


score


number(4,2)

create table student(

id number,

name varchar2(20),

sex char(2),

birthday date,

score number(4,2)

)

2.使用plsql developer第三方工具创建

--创建表:实际上解决的是表结构的问题,表有几个字段,每个字段的长度是多少,每个字段是什么数据类型

--create table 表名(字段名1 数据类型1(长度),字段名2 数据类型2(长度),。。。);

create table student(stuno  number(4),stuname varchar2(10),age number(2),addr varchar(50));

5.2 删除表

drop table student;

5.3 修改表

1.修改表名

RENAME 旧的表名称 TO 新的表名称;

2. 添加列

ALTER TABLE 表名称 ADD

(列名称 数据类型 [DEFAULT 默认值],

列名称 数据类型 [DEFAULT 默认值],

…);

3.修改列

ALTER TABLE 表名称 MODIFY

(列名称 数据类型 [DEFAULT 默认值],

列名称 数据类型 [DEFAULT 默认值],

…);

4.删除列

alter table 表名 drop column 列名;

alter table 表名 drop(列名1,列名2,...);

5.举例

(1)给学生表添加班级编号

alter table students add(class_id number);

(2)学生姓名变成varchar2(30)

alter table students modify(name varchar2(30));

(3)删除学生表的score字段

alter table students drop column score;

alter table students drop(score);

(4)把学生表名students修改成stu

SQL>rename students to stu;

六 约束

--问题:往表中插入数据的时候,可能出现一些问题,比如:重复插入数据,内容不对(性别)

--如何保证数据库表中数据的完整性和一致性呢?

--常见的约束:主键(primary key),外键(foreign key),唯一(unique),非空(not null),默认(default),用户自定义(check)

6.1 主键约束

--什么是主键约束?主键约束就是给表定义一个主键,什么是主键?

--主键主要是用来保证表记录的唯一非空的。

--建表的时候添加主键

create table student(stuno number(4) primary key,stuname varchar2(10),age number(2),addr varchar(50));

insert into student values(1001,‘zhang‘,18,‘luoyang‘);

--再次插入相同记录,违法主键约束,不允许插入

SQL> insert into student values(1001,‘zhang‘,18,‘luoyang‘);

insert into student values(1001,‘zhang‘,18,‘luoyang‘)

ORA-00001: 违反唯一约束条件 (SYS.SYS_C0010797)

--如果主键为null也不允许插入,同样是违反了主键约束

SQL> insert into student values(null,‘zhang‘,18,‘luoyang‘);

insert into student values(null,‘zhang‘,18,‘luoyang‘)

--创建一张课程表:

create table course(cno number(4) primary key,cname varchar2(20),cscore number(2));

--创建一张成绩表:学号和课程号共同作为一个主键,称为联合主键

--一张表只能有一个主键

create table score(sno number(4),cno number(4),score number(5,2),constraint pk_score primary key (sno,cno));

drop table course;

create table course(cno number(4) constraint pk_course primary key ,cname varchar2(20),cscore number(2));

作业:

  1. 删除表空间时,如何删除相关联的数据文件

drop tablespace test_data including contents and datafiles;

2. 复习本周所讲的所有内容,预习约束的相关内容,下周提问。

原文地址:https://www.cnblogs.com/liu-wang/p/8204750.html

时间: 2024-09-29 02:55:33

oracle-表空间-用户-角色-权限-约束的相关文章

oracle 表空间 用户

Oracle创建表空间.创建用户以及授权.查看权限 创建临时表空间 CREATE TEMPORARY TABLESPACE test_temp TEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test_temp01.dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL; 创建用户表空间 CREATE TABLESPACE test_data LOGGIN

oracle创建表空间-用户-角色-授权

1.创建数据表空间: SQL> create tablespace rusky_data 2 datafile 'D:\rusky\rusky_data01,dbf' size 10M 3 autoextend on 4 next 10M maxsize 1024m 5 extent management local; 表空间已创建. EXTENT MANAGEMENT LOCAL:存储区管理方法.本地管理(LOCAL):用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘. 同时能够

Oracle表空间用户的基础语法

创建临时表空间: create temporary tablespace mdm_temp tempfile '/u01/app/oracle/tempspace/mdm_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; 创建表空间: create tablespace MDM logging datafile '/u01/app/oracle/tablespace/mdm.dbf'

Oracle 表空间和用户权限管理

一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻辑结构的一个重要组件. 表空间可以存放各种应用对象,如表.索引等. 而每一个表空间由一个或多个数据文件组成. 1. 表空间的分类 表空间可分为3类: 永久性表空间:一般保存表.上天.过程和索引等数据.system.sysaux.users.example表空间是默认安装的. 临时性表空间:只用于保存

Oracle 表空间和用户权限管理【转】

一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻辑结构的一个重要组件. 表空间可以存放各种应用对象,如表.索引等. 而每一个表空间由一个或多个数据文件组成. 1. 表空间的分类 表空间可分为3类: 永久性表空间:一般保存表.上天.过程和索引等数据.system.sysaux.users.example表空间是默认安装的. 临时性表空间:只用于保存

Oracle开发:创建一个用户并分配表空间和分配权限

-- 创建一个用户并分配表空间和分配权限 -- 以sysdba登录 [email protected]:~> sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Mon Mar 7 18:48:59 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition

Oracle表空间,用户,用户授权

一:Oracle表空间 1,Oracle表空间与SQL Server文件组对比 SQL Server的文件组(文件组包括若干MDF,NDF数据文件)对我们来说并不陌生,前段时间我在博客"怎样玩转千万级别的数据"提到了过表分区的概念,其实表分区说到本质上就是按一定条件把不同数据放在不同的数据文件里,这些数据文件在物理上是相对独立的,在逻辑上又是一个整体.特别强调一下,在SQL Server中,建表时是默认把所有的表都保存在PRIMARY默认文件组 ,当数据库中表很多,并且数据量很大时,会

SQL创建Oracle表空间、用户以及给用户赋权的方法

//创建表空间 Create tablespace examination//创建表空间examination datafile 'c:\Oracle\zhangwei\examination.dbf'//与表空间关联的文件存放位置(要预先手动建好文件夹) size 100m//文件初始大小,千万不要写成mb(这里以下可略) autoextend on//文件大小可自动拓展 next 30m//每次拓展30m maxsize unlimited//不限制文件大小的上限 logging//生成对于

oracle 数据库导出 表空间查询 与 权限管理 整理

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>导入导出操作 oralce imp help=y; 查看命令使