Oracle系列学习(三)
创建用户、创建表、简单操作
创建用户与授权
表空间
对应物理磁盘上建立一个数据文件,作为数据库对象(用户、表、存储过程等等)的物理存储
空间;
创建表空间:
便于管理
性能提升
防止IO竞争
1 | CREATE TABLESPACE 表空间名 |
查看表空间:
1 | select file_name,tablespace_name,bytes from dba_data_files; |
用户
创建用户
1 | create user 用户名 identified by 密码 [default tablespace 表空间名]; |
创建用户时如果不指定 会使用默认的表空间users
授权
1 | grant connect,resource to 用户名 [with grant option]; |
三种角色权限
dba系统管理员最高权限,啥都能干
resource操作数据库数据,但是不能管理数据库(如用户管理)
connect连接数据库,但是不能操作数据库
角色是权限的集合,一个角色里,包含有很多个细分权限,
比如,resource角色包含create drop select insert等
-般为普通用授予connect和resource权限即可,如scott账户
with grant option表示该用户还可以将其权限授权给其他用户。
注意:
12c版本开始,回收的unlimited tablespace权限,导致即使给用户指定了表空间,也不能使用。
解决办法是给用户授予该权限:
grant unlimited tablespace to用户
实体权限
对数据库实体的具体操作(如增删改查等),使用实体权限能细化授权
实体权限有select, update, insert, alter, index, delete,execute, all (all包括所有权限) 等
1 | grant select, update, insert on表名to用户 |
补充其他管理操作
1 | 查询当前用户的默认表空间 |
创建表
三要素
1、表名
2、表中有哪些列(列名)
3、列的数据类型
create table名(列名数据类型列名数据类型..);
1 | create table student( |
常用数据类型
数字类型:
number(p,s)数字
p为总位数,s为小数点后最多几位
例如,number(5,3) 可以表示99999 123.32 135.5等
Integer/int 整数,相当于number(38,0), 可以表示很大的数
float:小数
字符类型
varchar2(p)表示能存储一个字符串, 其最大的长度为p
char(p)表示能存储一个字符串,固定长度为p,如果长度不够,自动补充空格
比如: varchar2 (20) 与char(20)同时存放一个字符串’123’:
varchar2只存放’123’这三个字符
char会存放’123 (17个空格)’。
日期类型
date:存储日期类型,可以精确到秒,通常存储格式是年月日时分秒
timestamp:和DATE相比,这个可以精确到纳秒,存储时间精度更高
大对象类型
CLOB:最大为(4GB-1)*数据库块大小,存储字符数据,主要用于存储大型英文字符
BLOB:最大为(4GB- 1)*数据库块大小,存储非结构化二进制数据,主要存储图像、声音、视频等文件。
查看已创建的表
1 | select table_name from user_tables ; |
修改表
1 | 1、重命名 |
单双引号
双引号表明是个关键字
Oracle 默认大写 如果非要规定 大小写 用双引号
1 | 创建一个带双引号的表 |
单引号表示的值
关系
实例中包含多个表空间
用户关联表空间
表放在表空间中
用户拥有表 表可能来自不同的表空间
1 | create table test(id int) tablespace 别的表; |