zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Oracle表与表数据操作

Oracle数据 操作
2023-09-11 14:16:59 时间

欢迎转载,转载请标明出处:https://blog.csdn.net/qq_44333320/article/details/105754992

表结构和数据类型

表和表结构

表是日常工作和生活使用的一种表示数据以及关系的形式。如图为学生表。
在这里插入图片描述

数据类型

  1. 字符类型(char、varchar2)
  2. 数值类型(number)
  3. 日期和时间类型(date)
  4. LOB类型
  5. ROWID类型

最常用的是VARCHAR2、NUMBER、DATE和CLOB。

表结构设计

简而言之,表结构设计就是定义表结构以及设置表和列的属性。

创建和操作表空间

数据表空间 (Tablespace)
存放数据总是需要空间, Oracle把一个数据库按功能划分若干空间来保存数据。当然数据存放在磁盘最终是以文件形式,所以一盘一个数据表空间包含一个以上的物理文件。

  1. 创建表空间
格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小
create tablespace BKJ  --创建名为BKJ表空间
logging  --默认产生日志
datafile 'F:\oracle data\BKJ.dbf' --自定义路径
size 50m  --空间大小
autoextend on  
next 50m maxsize 20480m  --自动扩展至最大,每次扩展50M
extent management local;    --创建本地化的可变表空间
  1. 创建用户并授权
格式: create user 用户名 identified by 密码 default tablespace 表空间表;
create user zzxy identified by zzxy default tablespace BKJ;
  1. 赋予权限

grant connect,resource to zzxy; //表示把 connect,resource权限授予zzxy用户
grant create tablespace to zzxy;//表示把create tablespace权限授予给zzxy
grant dba to zzxy;//表示把 dba权限授予给zzxy
1.grant connect,dba,resource,EXP_FULL_DATABASE,IMP_FULL_DATABASE to zzxy; 
2.grant create session to 用户名  //允许用户连接;
grant select,insert,update on 表名 to 用户名 //允许用户对该表进行查询,插入,修改

4.删除用户及数据库

drop user zzxy cascade;drop user zzxy ;
drop user xxx必须是这个用户下面没有任何对象;这样才可以使用这个命令,否则就会报错;如果用户下面有对象,就得用drop user xxx cascade来删除这个用户以及这个用户下的所有对象。
  1. 几个操作
select username from dba_users;//查询用户
select username,default_tablespace from dba_users order by username;//查询用户和用户所在的表空间
SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_TABLES;//查询表所在的表空间
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;//删除表空间

创建和操作表

创建表

格式:create table 表名(
						列名 数据类型;
						。。。。。。;
						。。。。。。
					);

基本的增删改查

添加列:alter table 表名 add 列名  列的属性; --单列操作
		alter table 表名 add (列名11的属性,列名22的属性,...) --多列操作
添加表注释:comment on table 表名 is '表注释';
添加字段注释:comment on column 表名.列名 is '列注释';
添加约束:
  添加主键约束:alter table 表名 primary key(列名);
  添加唯一约束:alter table 表名 constraint 约束名 unique(列名);
  //主键约束和唯一约束的区别:主键约束:唯一标识,不能为空。唯一约束:唯一标识,只能有一个值为空
  非空约束:alter table 表名 modify(列名 constraints);

数据的增加:
--单行操作
insert into 表名 values(所有列的信息);  --数据类型必须与表结构里字段的属性一致
insert into 表名 values(部分信息); --会按表的字段顺序加入信息,后面没设置的为null(输入数据必须小于或等于列数)
--多行操作
insert into1
select 数据1 from dual
union
select 数据2 from dual;  --dual 是一张伪表只是为了方便操作而存在,需要了解的请百度

  1. 清空表,truncate和delete.都是删除表中所有数据,保留表的结构,区别是TRUNCATE语句不能回滚. 但DELETE 语句删除数据,可以回滚。
删除列:alter table 表名 drop column 列名;  --单列操作
		alter table 表名 drop (1,2);  --多列操作(多列不需要加column)
删除表:DROP TABLE 表名;//drop数据和结构都会被删除,事务被提交,索引被删除,无法回滚

数据的删除:
delete from 表名  --删除所有数据
delete 列名 from 表名 where 条件 --删除符合条件的某些数据
//删除某一列数据(该列必须可以为null):
1.update 表名 set 列名=null;
2.delete from 表名 where 列名 is not null ;
修改列:alter table 表名 rename column 原列名 to 列名;
修改数据类型:alter table 表名 modify 列名 新属性; --单列操作
			alter table 表名 modify (列名11的新属性,列名22的新属性);--多列操作
插入数据:insert into(列名,……)values(数据,……)//注意!!!  oracle中不能直接写入日期函数
插入时间:to_date('2020-4-25 21:34:54','YYYY-MM-DD HH24:MI:SS')
插入当前时间:sysdate

update 表名 set 列名=数据 where 条件; --修改满足条件的数据
update 表名 set 列名=数据; --将该列全部修改
select * from 表名; --查看表的全部信息
select1,列2 from 表名; --查看表的列1,列2信息

敲敲知识点之总结:

create table:创建表
alter table:修改表结构
drop table:删除表
rename to:重命名表
truncate table:删除表中的所有数据,并释放存储空间