Oracle學習筆記 三

2022-02-06 06:13:51 字數 3709 閱讀 7811

五、操作表

1、表分為行和列

約定:每行資料唯一性,每列資料同類性,每列列名唯一性。

2、資料型別

字元型 -- 固定長度的字元型別

字元型別:char(n)(max n=2000)、nchar(max n=1000)

-- 可變長度的資料型別(節省空間隨著資料的大小生成相應的資料)

varchar2(max n=4000)、nvarchar2(max n=2000)

數值型(通常使用number型別):number(p,s):

p--有效數字,

s--小數點後的位數

如果s為正數,代表從小數點到最低有效數字的位數;

如果s為負數,代表從最大有效數字到小數點的位數(數值型通常採用number型別)

例子number(5,2) 有效數字5位,保留2位小數,如:123.12

float :用於儲存二進位制型別1~126位

日期型date 日期型別,表示範圍為西元前2023年1月1日到公元2023年12月31日,可精確到秒(日期型通常採用date型)

timestamp 時間戳型別,可以精確到秒

其他型blob 可以存放4gb的大檔案,以二進位制形式存放

clob 可以存放4gb的大檔案,字串存放的

3、管理表的操作

建立表:建立使用者資訊表

例子:create table userinfo(

user_a_id number(6,0),

user_username varchar2(20),

user_pwd varchar2(20),

user_email varchar2(30),

user_regdate date

);修改表:修改結構

1、新增字段

例子:alter table userinfo add user_remarks varchar2(500);

2、更改字段資料型別(最好是表中沒有資料的時候進行更改)

更改原有的資料

alter table userinfo modify user_remarks varchar2(400);

更改資料的型別

alter table userinfo modify user_pwd number(6,0);

3、刪除字段

alter table userinfo drop column a;

4、修改欄位名

alter table userinfo rename column user_username to user_a_username;

5、修改表名

rename userinfo to user_info;

刪除表

刪除表中的資料,不是刪除表,但是速度快

truncate table table_name;

truncate table user_info;

刪除表的結構,真實被刪除了

drop table user_info;

檢視表desc table_name;

desc userinfo;

4、操作表中的資料

對錶的內容進行操作

1、新增資料

insert into userinfo(user_a_id,user_username,user_pwd,user_email,user_regdate) values(1,'xiaobaitu','123456','[email protected]',sysdate);

全新增,可以省略userinfo後邊的()

insert into userinfo values(1,'xiaobaitu','123456','[email protected]',sysdate);

不新增全部資料

insert into userinfo(user_a_id,user_username,user_regdate) values(1,'xiaobaitu',sysdate);

為字段新增預設值

建立表時,建立預設值

create table userinfo_a(

userinfo_a_id number(6,0),

userinfo_regdate date default sysdate

);新增資料

insert into userinfo_a(userinfo_a_id) values(1);

修改表時,新增預設值

alter table userinfo modify user_email default '無';

如果沒有新增,email為預設值:

insert into userinfo(user_a_id) values(3);

select user_a_id ,user_email from userinfo;

如果新增了,就會返回新增的值

insert into userinfo(user_a_id,user_email) values(4,'aa');

select user_a_id ,user_email from userinfo;

2、複製表資料

(1)在建表時複製

(a)複製表中的全部資料

create table userinfo_2 as select * from userinfo;

select * from userinfo_2;

desc userinfo_2;

(b)複製表中部分資料

create table userinfo_3 as select user_a_id from userinfo;

select * from userinfo_3;

desc userinfo_3;

(2)在新增資料時複製

(a)新增全部資料(複製的兩個表必須結構相同)

create table user_new(

user_a_id number(6,0),

user_username varchar2(20),

user_pwd varchar2(20),

user_email varchar2(30),

user_regdate date

);insert into user_new select * from userinfo;

(b)新增部分資料(新增時資料型別要相同)

insert into user_new(user_a_id,user_username) select user_a_id,user_username from userinfo;

3、修改資料(更新操作)

(1)無條件更新

update userinfo set user_pwd='111111';

(2)有條件更新

update userinfo set user_pwd='6666' where user_username='xiaobaitu';

4、刪除資料(行刪除,不能刪除列)

建立乙個實驗用表

create table user_new2 as select * from userinfo;

(1)無條件刪除

delete from userinfo_3; 等同於 truncate table userinfo_3;

(2)有條件刪除

delete from user_new2 where user_username='xiaobaitu';

Oracle 學習筆記(三)

約束 定義規則,確保資料完整性 規範性 1 非空約束 注意 非空約束盡可以列級新增,不可表級新增 在建立表時新增非空約束 create table table name column1 datatype not null,在修改表時新增非空約束 alter table table name modi...

Oracle學習筆記(三)

oracle 許可權傳遞 sky使用者登入 grant all on mytab to sinitek 授權mytab所有許可權給sinitek sinitek使用者登入 grant all on sky.mytab to freedom 授權sky的表mytab給freedom使用者 報錯,ora...

Oracle 學習筆記(三)

cid number 4 primary key,班級編號 cname varchar2 100 unique not null,班級名稱 cyear number 4 入學年份 clen number 1 學制 建立學生表 create table stuinfo stuno number 4 p...