oracle数据库创建及管理表
创建和管理表(DDL)
CRAETE TABLE 创建一个数据库的表
TRUNCATE TABLE 清空表(与delete from table的区别 )
ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
REANME…TO 修改表名。
DROP TABLE … 删除表。
操作完以后,自动commit; 所以,rollback对其操作,没有效果
1.创建表
1.1直接创建
create table emp11(
id number,
name varchar2(20),
hiredate date,
salary number(8,2) default 1000 --default 系统默认值
)
1.2子查询创建
create table emp22 as select * from emp11;
-- 或者
create table emp22 as select a.id,a.name,a.salary from emp11 a;
2.修改表
1.1增加新的列
alter table emp11 add(age char(2));
1.2 修改现有的列
alter table emp11 modify(name varchar(25) default '程');
1.3重命名现有的列
alter table emp11 rename column salary to sal;
1.4 删除现有的列
alter table emp11 drop column age;
3.清空表中的数据(与delete from table 区分开)
3.1truncate 清空表数据
truncate table emp11;
4.重命名表
4.1 rename 重命名表
rename emp11 to emp111;
5.删除表
5.1 drop 删除表
drop table emp111;
6.数据处理DML 增删改查
6.1 增
6.1.1 增加一条记录
insert into emp11(字段名) values(值);
--无字段名默认添加所有字段。
insert into emp11 values(1,'2',3);
6.1.2 从其他表中拷贝数据
insert into 表名 select * from 表名2 where 条件;
6.2 修改一条数据
update 表名 set 需要修改的字段='值' where 修改的条件;
6.3 删除一条数据
delete from 表名 where 条件;
6.4 查询
select * from 表名 where 条件;
7.表的约束
约束 :对创建的表的列属性、字段进行的限制。
诸如: not null : 往表里新增数据的时候字段不允许为空。
unique : 唯一约束 新增的数据不允许重复。
primary key : 新增表的主键。不允许为空,字段值必须唯一。
foreign key : 表的外键 ,指向另一张表的主键。(关联)
check : 某列取值范围限制、格式限制等
7.1 如何定义约束(在创建的同时,添加对应属性的约束)
7.1.1表级约束&列级约束
--constraint emp_email 为约束名
create table emp1(
eemp_id number(8),
salary number(8,2),
hire_date date not null, --列级约束
email varchar2(8) constraint emp_email unique,
name varchar2(8) constraint emp_name not null,
first_name varchar2(8),
--表级约束
constraint emp1_emp_id_ps primary key (eemp_id),
constraint emp1_fir_name_uk unique(name),
constraint emp1_dept_id_fk foreign key(dept_id) references dept(dept_id)
ON DELETE CASCADE
--ON DELETE CASCADE对于外键的引用操作,可以实现在从父表中删除数据时自动删除子表中的数据。
)
只有not null 只能使用列级约束,其他的约束方式两种皆可。
7.2添加和删除表的约束 --在创建表以后,只能添加和删除,不能修改
7.2.1 添加
alter table emp1 add constraint emp1_sal_ck check(salary>0);
7.2.1.1 对于not null 来讲,不用add 需要使用modify
alter table emp1 modify(salary not null); --modify 修改
7.3 删除
alter table emp1 drop constraint emp1_sal_yk;
7.4 使某一个约束失效:此约束还存在于表中,只是不起作用
alter table emp1 disable constraint emp1_email_uk;
7.5 使一个约束激活:激活以后具有约束力
alter table emp1 enable constraint emp1_email_uk;
————————————————
加油!