oracle数据库基本操作

-- 创建数据表
/* create table <表名>
 ( 字段名1 数据类型[列级别约束条件][默认值]
 ....
 [表级别约束条件] 
 )*/

-- 创建员工表tb_emp
create table tb_emp(
    id number(11),
    name varchar2(10),
    depid number(11),
  salary number(9,2)
);

-- 查看表结构注意 command window下可以使用
-- desc tb_emp;

-- 约束条件
-- 1、主键约束(primary key),主键是表中一列或多列的组合
-- 主键能够唯一的标识表中一条记录,还可以结合外键定义不同表之间的关系
-- 可以加快数据库查询的速度

-- 1.1、创建表的同时声明主键约束
create table tb_emp3(
    id number(11) primary key,
    name varchar2(20)
);
-- 联合主键
create table tb_emp4(
    id number(11),
    name varchar2(20),
    salary number(10,2),
    primary key(id,name)
);


-- 1.2、给定义的表添加主键约束
/*alter table 表名
add constraints 约束名 primary key (字段名)*/
alter table TB_EMP2 
add constraints pk_id primary key (id);


-- 1.3、移除主键约束
/*ALTER TABLE 表名
DROP CONSTRAINT 约束名;*/
alter table tb_emp4
drop constraints sys_c007421; 


-- 2、外键约束,外键用来在两个数据表的数据之间建立连接
-- 一个表可以有一个或多个外键
-- 外键首先肯定是当前表的一个字段(可以不是当前表的主键)对应着另一个数据表的主键。
-- 外键的主要作用保证多表间数据的完整性
-- 注意:主外键类型要相匹配
create table tb_dept(
    id number(11) primary key,
    name varchar2(22)
);

-- 2.1 创建表的同时声明外键
/*constraint <外键名> foreign key  字段1,[字段2]
references <主表名> 主键列1[,主键列2,...]*/
-- 主表(父表):对于两个有关联关系的表而言,关联的键为主键所在的表为主表
-- 从表(子表):对于两个有关联关系的表而言,关联的键为外键所在的表为从表

create table tb_emp5(
        id number(10) primary key ,
        name varchar2(20),
        deptid number(11),
        constraint fk_emp_dept1 foreign key(deptid) references tb_dept(id)
);

-- 2.2、给已存在的表添加外键约束
/*alter table 表名 
add constraints 约束名 foreign key (外键约束的字段名)
references 表名(字段名)
on delete cascade;*/
alter table tb_emp
add constraints fk_emp_dept foreign key(depid)
references tb_dept(id);

-- 2.3、 删除外键约束
alter table tb_emp
drop constraints fk_emp_dept;

-- 3、非空约束
-- 字段的值不能为空
create table tb_emp6(
    id number(11) primary key,
    name varchar2(10) not null
);
-- 为表添加非空约束
/*alter table 表名
modify 字段名 not null*/
alter table tb_emp5
modify name not null;

-- 移除非空约束
alter table tb_emp5
modify name null;


-- 4、唯一约束
-- 该列要求唯一,确保一列或者几列不出现重复值
create table tb_dept2(
    id number(11) primary key,
    name varchar2(22) unique
);
-- 为表添加唯一约束
/*alter table 数据表名
add constraint 约束名 unique(字段名)*/
alter table tb_emp5
add constraint uq_name unique(name);

-- 为表移除唯一约束
alter table tb_emp5
drop constraint uq_name;

-- 5、检查约束
-- 规定每一列能够输入的值,从而保证数据的正确性
/*constraint 检查约束名 check(检查条件)*/
create table tb_emp7(
    id number(11) primary key,
    name varchar2(10),
    gender varchar2(2),
    constraint chk_gender check(gender='男' or gender='女')
);

-- 修改数据表时添加检查约束
alter table tb_emp7
add constraint chk_name check(name='admin' or name = 'user');

-- 移除检查约束
alter table tb_emp7
drop constraint chk_name;


-- 6、默认值
-- 字段名 数据类型 default 默认值
create table tb_emp8(
    id number(11) primary key,
    deptid number(11) default 20
);

-- 修改数据表
/*alter table*/
-- 1、修改表名
/*alter table <旧表名> rename to <新表名>;*/
alter table tb_dept rename to tb_dept1;

-- 2、修改字段类型
/*alter table <表名> modify <字段名> <数据类型>*/
alter table tb_dept1  modify name varchar2(22);

-- 3、修改字段名
/*alter table <表名> rename column <旧字段名> to <新字段名>*/
alter table tb_dept1 rename column name to dname;

-- 4、添加字段
/*alter table <表名> add <新字段名> <数据类型>*/
alter table tb_dept1 add location varchar2(20);

alter table tb_dept1 add phone number(13) not null;

-- 5、删除字段
/*alter table <表名> drop column <字段名>*/
alter table tb_dept1 drop column phone;


-- 删除数据表
-- drop table 表名
-- 删除没有关联的表
drop table tb_emp8;

-- 删除有关联的表,因为tb_dept1的主键被tb_emp5引用,有外键约束所以不能直接删除
-- drop table tb_dept1;ORA-02449: 表中的唯一/主键被外键引用

-- 可以去除外键约束然后删除
alter table tb_emp5 drop constraints fk_emp_dept1;
drop table tb_dept1;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值