Oracle表與表數據操作——我的Oracle學習之路

歡迎轉載,轉載請標明出處: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:刪除表中的所有數據,並釋放存儲空間

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章