创建用户、创建表、简单操作

创建用户与授权

表空间

对应物理磁盘上建立一个数据文件,作为数据库对象(用户、表、存储过程等等)的物理存储
空间;

创建表空间:

便于管理

性能提升

防止IO竞争

1
2
3
4
5
6
7
8
CREATE TABLESPACE 表空间名
DATAFILE 文件路径 SIZE 文件大小
AUTOEXTEND ON NEXT 扩展大小 MAXSIZE 最大空间;

例如:
CREATE TABLESPACE MYFIR_TBS
DATAFILE 'D:\app\EShyee\oradata\orcl\MYFIR_TBS.DBF' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 200M;

查看表空间:

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
2
3
grant select, update, insert on表名to用户
grant all on表名to用户
grant select, update, insert on emp to EShyee

补充其他管理操作

1
2
3
4
5
6
7
8
9
10
11
12
查询当前用户的默认表空间
select default_tablespace from user_users ;

修改密码
Alter user EShyee identified by tt456;

冻结用户与解锁用户
Alter user scott account lock
Alter user scott account unlock

删除用户
drop user 用户名;

创建表

三要素

1、表名
2、表中有哪些列(列名)
3、列的数据类型

create table名(列名数据类型列名数据类型..);

1
2
3
4
5
6
7
8
9
10
11
12
create table student(
stuno varchar2(20) ,
name varchar2(20),
age int,
height number(4, 1)
);
创建一个表,名字是student该表中,有
stuno学号
name姓名
age年龄
height身高

常用数据类型

数字类型:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1、重命名
rename student to stu;
将student表 名改为stu
2、 重命名列
alter table表rename column列名to新列名
alter table stu rename column class to banji;
将stu表的class 列改为banji
3、添加一列
alter tableadd 列名数据类型;
alter table stu add sex char(1);
在表stu中添加一列,性别sex,类型为char(1); 1表示字节byte长度1
4、修改列
一般修改列时,修改其长度大小
alter table stu modify sex char(2);
修改表stu中的sex列,将其长度改为2
5、删除列
alter table 表名 drop column 列名;
alter table stu drop column sex;
6、删除表
drop table表名;

单双引号

双引号表明是个关键字

Oracle 默认大写 如果非要规定 大小写 用双引号

1
2
3
4
5
6
7
8
创建一个带双引号的表
create table "student2"(
"stuno" varchar2 (20),
"school" varchar2 (50)
);
查看表的时候也得加上双引号
desc "student2"
对表操作的时候也得加上

单引号表示的值

关系

image-20200317102333059

实例中包含多个表空间

用户关联表空间

表放在表空间中

用户拥有表 表可能来自不同的表空间

1
create table test(id int) tablespace 别的表;

小结