-
1.創(chuàng)建表:
reate table? table_name
(column_name datetype,...)
2.修改表:
2.1 添加字段
alter table? zhaozy.student add notes varchar2(20);
2.2 更改字段數(shù)據(jù)類型(修改列無數(shù)據(jù)才可以修改)
--該列有數(shù)據(jù)無法修改數(shù)據(jù)類型
alter table? zhaozy.student modify address number(20);
--該列有數(shù)據(jù)可以修改長度
alter table? zhaozy.student modify address varchar2(100);
2.3 刪除字段
alter table? zhaozy.student drop column address;
2.4 修改字段名
alter table? zhaozy.student rename column notes to modify_notes;
2.5 修改表名
rename student to new_student;
查看全部 -
select column_name as new_name,... from table_name;
查看全部 -
select * from table_name;
查看全部 -
由于學(xué)到這里各種約束的表級(jí)創(chuàng)建格式相似,直接來一個(gè)綜合運(yùn)用?。。?!
SQL> create table userinfo_c(id varchar2(10) primary key,username varchar2(20),salary number(5,0) check(salary>0));
表已創(chuàng)建。
先創(chuàng)建一個(gè)userinfo_c表等會(huì)兒作為外鍵主表,設(shè)定id為主鍵約束,salary為檢查約束
SQL> create table userinfo_c1(id varchar2(10),username varchar2(20),salary number(5,0),constraint fk_username_c foreign key(username) references userinfo_c(username),constraint ck_salary check(salary>0),constraint pk_id_c primary key(id));
嘗試創(chuàng)建一個(gè)userinfo_c1表,并一次性設(shè)定主鍵約束、外鍵約束(從表userinfo_c1的username字段引自主表userinfo_c表中的username)、檢查約束
報(bào)錯(cuò)信息:
第 1 行出現(xiàn)錯(cuò)誤:
ORA-02270: 此列列表的唯一關(guān)鍵字或主鍵不匹配
發(fā)生報(bào)錯(cuò)
SQL>?alter table userinfo_c add constraint un_username_new unique(username);
表已更改。
經(jīng)過檢查發(fā)現(xiàn)被引用的主表userinfo_c的字段username并沒有唯一鍵或主鍵,需要將userinfo_c的username增加唯一鍵
SQL> create table userinfo_c1(id varchar2(10) primary key,username varchar2(20),salary number(5,0),constraint fk_username_c foreign key(username) references userinfo_c(id),constraint ck_salary check(salary>0));
表已創(chuàng)建。
重新創(chuàng)建一個(gè)userinfo_c1表,并一次性設(shè)定主鍵約束、外鍵約束(從表userinfo_c1的username字段引自主表userinfo_c表中的username,約束名為fk_username_c)、檢查約束
創(chuàng)建成功
--------------------------------------------------------------------------------------------------------
假定并不知道userinfo_c的唯一鍵 un_username_new被userinfo_c的外鍵fk_username_c所引用
SQL> alter table userinfo_c drop constraint UN_USERNAME_NEW;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
第 1 行出現(xiàn)錯(cuò)誤:
ORA-02273: 此唯一/主鍵已被某些外鍵引用
對(duì)userinfo_c的唯一鍵 un_username_new進(jìn)行刪除操作
報(bào)錯(cuò)提示已經(jīng)被某些外鍵所引用,需要反查這個(gè)唯一鍵被哪些外鍵引用了
SQL> select constraint_name from user_constraints where r_constraint_name='UN_USERNAME_NEW';
CONSTRAINT_NAME
------------------------------
FK_USERNAME_CC
FK_USERNAME_C
在user_constraints表中的r_constraint_name就是外鍵的引用來源的鍵名稱
查看全部
舉報(bào)