Oracle数据库对创建表、修改和删除表、建立约束及增删改

创建数据库表

创建表格式
–C --check
–P --primary key
–R --forgien key
–U --unique
–CREATE TABLE <table_name>(
–column1 DATATYPE [NOT NULL] [PRIMARY KEY],
–column2 DATATYPE [NOT NULL],
–…
–[constraint <约束名> 约束类型 (要约束的字段)
–… ] )
–说明: 
–DATATYPE --是Oracle的数据类型
–NOT NULL --可不可以允许数据有空的
–PRIMARY KEY --是本表的主键
–constraint --是对表里的字段添加约束.(约束类型有Check,Unique,Primary key,not null,Foreign key)

–constraint 约束名 Foreign key(表中外键列) references引用 主表表名(主表中的主键列或者唯一列)

创建数据库表

--学生表
create table STUDENT(
STU_ID number(10) , --number(定义长度)
NAME nvarchar2(20) not null,--非空约束 --写入中文时建议用nvarchar2
age number(3) not null,
sex nchar(1) default('男'), --default 默认值约束
constraint PK_STU_ID primary key(STU_ID), --主键约束
constraint C_CHECK_SEX check(sex='男' or sex='女')--检查约束
)
--课程表
create table COURSE(
COURSE_ID number(10) constraint PK_COURSE_ID primary key,--主键约束
COURSE_NAME nvarchar2(10) not null, --非空
constraint U_COURSE_NAME Unique(COURSE_NAME) --唯一约束
)
--成绩表
create table SCORE(
STU_ID number(10) ,
COURSE_ID number(10) ,
SCORE number(3) not null,
constraint R_fk_STU_ID foreign key(STU_ID) references STUDENT(STU_ID), --外键约束
constraint R_fk_COURSE_ID foreign key(COURSE_ID) references COURSE(COURSE_ID) --外键约束
)

通过子查询创建表

create table stu as(
select * from STUDENT
)
--不会继承STUDENT的约束

对表删除及字段的修改

--删除表
drop table SCORE
--改名
alter table SCORE rename to SCORES ;
--添加字段属性
alter table STUDENT add (STU_EMAIL varchar(50))
--删除字段
alter table STUDENT drop column age
--修改字段属性
alter table STUDENT modify sex nchar(1) default('女')

向数据库表插入数据

insert into STUDENT values(011,'氨基酸',default,'156111651@qq.com');
insert into STUDENT values(012,'三氯蔗糖',default,'155636551@qq.com');
insert into STUDENT values(013,'热分解','男','855424545@163.com');
select * from STUDENT

insert into COURSE values(1001,'JAVA');
insert into COURSE values(1002,'HTML5+CSS3');
insert into COURSE values(1003,'ORACLE');
select * from COURSE

insert into SCORES values(011,1001,98);
insert into SCORES values(011,1002,93);
insert into SCORES values(011,1003,94);
insert into SCORES values(012,1001,100);
insert into SCORES values(012,1002,90);
insert into SCORES values(012,1003,96);
select * from SCORES

更新和删除表数据

--更新数据
--UPDATE	表名
--SET			列名1 = 值 , 列名2 = 值
--[WHERE	条件];
update SCORES set stu_id=011 where score=96
--删除数据
delete from SCORES where stu_id=011

创建序列

------创建序列
--先创建一个没有任何约束的表
create table stu as(
select * from STUDENT
)
CREATE SEQUENCE   
MINVALUE 1 
MAXVALUE 9999999999999999999999999999 
INCREMENT BY 1 
START WITH 1 
NOCACHE  
ORDER  
NOCYCLE ;

insert into stu values(stu_id.nextval,'sda',default,'adwawdawd')

SELECT * FROM stu
--删除序列
drop SEQUENCE "MY_CD"."STU_ID" 

创建索引

--单一索引
create index stu_stu_id on stu(stu_id);

--查询索引
select STU_ID, NAME, SEX, STU_EMAIL from stu where stu_id=011

--复合索引
create index  stu_stu_id_name on stu(stu_id,name)

select STU_ID, NAME, SEX, STU_EMAIL from stu where  name='氨基酸'

--修改和删除索引
--重建索引 经常使用DML语句就需要重建索引
alter index stu_stu_id_name REBUILD
--删除索引
drop index stu_stu_id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值