oracle 数据库 day0902

ok家人们今天继续学习oracle数据库 嘻嘻

.表空间和数据文件

1.1 表空间和数据文件的关系

表空间是一个逻辑结构,通常用来存放表、索引、视图等数据
对象。数据文件是一个物理存储结构,用来保存数 据的文
件。表空间与数据文件相对应,一个表空间有一个或者多个数
据文件组成,一个数据文件只属于一个表空间。 下图展示了
逻辑结构和物理结构之间的关系。
我们在 sys 用户下面,使用 dba_data_files 这个数据字典查看
表空间和它对应数据文件。
-- 在sys模式下查询表空间和它对应的数据文件
-- tablespace_name表示表空间名称
-- file_name表示数据文件名称
-- bytes表示数据文件的大小,单位byte
select tablespace_name , file_name , bytes
from dba_data_files
order by bytes;

1.2 Oracle默认表空间

表空间
说明
SYSTEM
存储系统内部数据和数据字典
SYSAUX
充当 SYSTEM 的辅助表空间
USERS
存储 应用系统 所使用的数据库对象,例
如: scott 用户下的 emp 表就存储在该表空
间下面
UNDOTBS1
存储撤销数据的表空间

以上 4 个表空间是 Oracle 数据库服务器安装成功后系统自动创建的。

1.3 创建和删除表空间

创建表空间 操作在实际的工作中通常是数据库管理员 (DBA)
工作。不同类型的数据对象存储到不同的表空间 中。例如,
建立专门用于存储数据的表空间、建立专门用户存储索引的表
空间等。创建表空间语法如下:
-- 创建表空间由3部分被组成:
-- 1.创建表空间(指定表空间名称)
-- 2.指定表空间对应的数据文件路径
-- 3.为数据文件指定大小, 单位:兆 M 2m 4m 8m
-- reuse:用来判断数据文件路径在磁盘中是否存在,如果存在
删除该数据文件,重新创建新的。如果不存在直接创建数据文件
create tablespace 表空间名称 datafile '数据文件的路
径' size 数据文件大小 reuse;
示例:创建表空间,并且指定对应的数据文件
-- 创建第一个表空间
create tablespace day0901_1 datafile
'D:\ORACLE19C\ORADATA\ORCL\a.dbf'
size 64m reuse;
-- 创建第二个表空间
create tablespace day0901_2 datafile
'D:\ORACLE19C\ORADATA\ORCL\b.dbf'
size 64m reuse;
-- 使用下面的数据字典查询刚刚创建的表空间
select tablespace_name , file_name , bytes from
dba_data_files;
删除表空间 语法:
drop tablespace 表空间名称;
  示例:删除刚刚创建的表空间
drop tablespace day0901_2;

.操作用户

表空间创建好了之后,接下来我们可以在表空间下面对用户进
行各种操作,具体包括创建用户、 用户授权、 删除用户。

2.1 创建用户

创建用户语法如下:
create user 用户名 identified by 密码;
例如:
create user zhangsan identified by 123456;
上面的示例创建了一个用户,它默认在 USERS 表空间下面。
在实际工作中,在创建用户的同时建议为该用户指定表空间,
否则全部默认在 USERS 表空间下面 ( 表空间过大不 易维护,查
询效率低下 )
创建用户指定表空间语法如下:
create user 用户名 identified by 密码 default
tablespace 表空间名称;
例如:
create user lisi identified by 123456 default
tablespace day0901_1;

2.2 用户授权

创建用户之后,为了后面能够方便对它进行操作,需要为用户
授权。授权语法如下:
grant 权限列表 to 用户;
例如:为用户 lisi 进行授权 ( 授予连接权限、访问资源权限、
DBA 权限 ) ,然后使用该用户进行登录
grant connect,resource,dba to lisi;

2.3 删除用户

删除用户语法如下:
drop user 用户名;
例如:在 sys 用户下删除之前创建的 zhangsan lisi 用户
drop user zhangsan;
drop user lisi;

.数据表

表是 Oracle 数据库中一种非常重要的数据对象,它是用来存储
数据。

3.1 表的基本概念

表是一个用来存储数据的平面结构,由行 ( 记录 ) 和列 ( 字段 )
成。下图就是一张存储图书的表:
对表的基本操作包括:创建表、增加字段、修改字段、删除字
段、重命名表、删除表等。这些都属于 DDL( 数据定 义语言 )

3.2 创建表

Oracle 使用用户来管理表,创建表语法如下:
create table 表名称(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
........
列名称n 数据类型
);
Oracle常用的数据类型如下:
-- 字符串
varchar2(长度) 表示可变的字符串,例如:stu_name
varchar(30) Tom 实际上只占用了3个字符
char(长度) 固定的字符串 stu_name char(30) Tom 实
际存储了30个字符
长度固定的字符串使用char存储,例如“手机号码”。可变长度的
字符串使用varchar存储,例如:“姓名”
-- 数字
number(长度)
年龄可以使用number(3) 3表示长度,总共3位 999
成绩也可以使用number(5,2) 总共5长度5位,其中小数占据2
位 999.99
注意:number可以存储整数还可以存储负数
-- 时间和日期
date 日期和时间类型,可以存储日期和时间的组合数据
示例:在 zhangsan 用户下创建一张 city( 城市 ) 表。
使用 PL/SQL Developer 图形化窗口登录切换到 zhangsan 用户
SQL> create table city(
2 city_area varchar2(10), -- 城市区号
3 city_name varchar2(30), -- 城市名称
4 city_desc varchar2(200) -- 城市描述信息
5 );
Table created
SQL> desc city;
Name Type Nullable Default
Comments
--------- ------------- -------- ------- -------
-
CITY_AREA VARCHAR2(10) Y
CITY_NAME VARCHAR2(30) Y
CITY_DESC VARCHAR2(200) Y

3.3 增加字段

成功创建表后,可能会根据需求变化向表中增加字段。其语法
如下:
alter table 表名称 add 字段名称 数据类型;
示例:向城市表添加一个 province( 所在省份 ) 字段
SQL> alter table city add province varchar2(20);
Table altered
SQL> desc city;
Name Type Nullable Default
Comments
--------- ------------- -------- ------- -------
-
CITY_AREA VARCHAR2(10) Y
CITY_NAME VARCHAR2(30) Y
CITY_DESC VARCHAR2(200) Y
PROVINCE VARCHAR2(20) Y

3.4 修改字段

除了增加字段外,还可以根据实际情况修改字段信息。包括修
改字段的数据类型长度、数值列的精度等。其语法 如下:
alter table 表名称 modify 字段名称 字段属性;
例如:将 province ( 所在省份 ) 字段的数据类型改为 char(30)
SQL> alter table city modify province char(30);
Table altered
SQL> desc city;
Name Type Nullable Default
Comments
--------- ------------- -------- ------- -------
-
CITY_AREA VARCHAR2(10) Y
CITY_NAME VARCHAR2(30) Y
CITY_DESC VARCHAR2(200) Y
PROVINCE CHAR(30) Y

3.5 删除字段

在工作中可以根据实际情况删除某些无用的字段。语法如下:
alter table 表名称 drop column 字段名称;
例如:将 city province ( 所在省份 ) 字段删除掉
SQL> alter table city drop column province;
Table altered
SQL> desc city;
Name Type Nullable Default
Comments
--------- ------------- -------- ------- -------
-
CITY_AREA VARCHAR2(10) Y
CITY_NAME VARCHAR2(30) Y
CITY_DESC VARCHAR2(200) Y

3.6 重命名表

创建表后,可以修改指定表的名称。语法如下:
alter table 原表名称 rename to 新表名称;
例如:将 city 表重命名为 tb_city
SQL> alter table city rename to tb_city;
Table altered

3.7 删除表

如果某张表不需要使用了,就可以将其删掉。语法如下:
drop table 表明称;
例如:删除城市表 (tb_city)
SQL> drop table tb_city;
Table dropped

.操作表的数据

操作表中的数据包括:插入数据 (Insert) 、修改数据
(Update) 、从表中删除数据 (Delete Truncate) 。这些操作都
属于 DML( 数据操纵语言 ) DML 前置条件是:表成功创建。
DML 后置条件是:表中的数据发生变化。

4.1 插入数据

插入数据就是将新数据添加到已经存在的表中。 Oracle 数据库
通过 Insert 语句来实现向表插入数据的
向指定列插入数据,语法如下:
insert into 表名称(列1,列2,列3...列n) values (值1,
值2,值3....值n);
例如:向 city 表插入一行数据。
SQL> insert into city(city_area,city_name)
values('1','长沙');
1 row inserted
SQL> commit;
Commit complete
为数值列添加数据时,可以直接提供数字值;为字符串列或者
日期列添加数据时,必须用单引号引住; insert 语句执行完之
后必须执行 commit ,将数据永久的提交到 city 表里面
向表的所有列插入数据,语法如下:
insert into 表名称 values (值1,值2,值3....值n);
例如:
SQL> insert into city values('2','郑州','省会城
市');
1 row inserted
SQL> commit;
Commit complete

4.2 修改表中的数据

如果表中的数据不正确或不符合需求,就需要对其进行修改。
Oracle 通过 update 语句修改表中的数据。修改数 据语法如
下:
update 表名称
set 字段名1 = 值1[,字段名2 = 值2,字段名3 = 值3...]
[where 条件];
set 后面定义要修改的值,语法是:字段名称 = 值 如果要修改
多个字段的值使用英文逗号分隔 where 后面用来定义条件,
只修改满足条件的数据。如果 update 语句不指定 where 条件
就会修改所有的数据
示例:修改城市区号为 2 的描述信息就改为交通枢纽
SQL> update city set city_desc = '交通枢纽' where
city_area = '2';
1 row updated
SQL> commit;
Commit complete

4.3 删除表中的数据

从表中删除数据可以使用 delete truncate 语句。
delete 语句
delete 语句可以从表中删除所有数据和指定条件的数据,语法
如下:
delete from 表名称 [where 条件];
如果删除表中所有的数据就不用加上 where 条件 如果只删除
表中部分数据,请在 where 后面定义条件。
例如:删除城市区号为 2 的城市信息。
SQL> delete from city where city_area = '2';
1 row deleted
SQL> commit;
Commit complete

truncate语句

truncate 语句可以删除表中所有的数据, Oracle 也建议使用这
种方式删除数据,效率比 delete 高的多。
语法:
truncate table 表名称;
例如:删除城市表所有的数据
truncate table city;
truncate delete 区别?
前者会删除表中所有的数据,后缀可以删除表中所有的数据也
可以根据 where 条件只删除表中部分数据。 前者删除表中的
数据不需要 commit 提交,后者删除数据之后必须使用
commit 提交数据,否则无法删除数据。
byebye
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值