51. 利用子查询创建表 myemp,
该表中包含 employees 表的 employee_id(id), last_name(name), salary(sal), email 字段
1). 创建表的同时复制 employees 对应的记录
create table myemp
as
select employee_id id, last_name name, salary sal, email from employees
2). 创建表的同时不包含 employees 中的记录, 即创建一个空表
create table myemp
as
select employee_id id, last_name name, salary sal, email from employees where 1 = 2
52. 对现有的表进行修改操作
1). 添加一个新列
ALTER TABLE myemp
ADD(age number(3))
2). 修改现有列的类型
ALTER TABLE myemp
MODIFY(name varchar2(30));
3). 修改现有列的名字
ALTER TABLE myemp
RENAME COLUMN sal TO salary;
4). 删除现有的列
ALTER TABLE myemp
DROP COLUMN age;
53. 清空表(截断: truncate), 不能回滚!!
54.
1). 创建一个表, 该表和 employees 有相同的表结构, 但为空表:
create table emp2 as select * from employees where 1 = 2;
2). 把 employees 表中 80 号部门的所有数据复制到 emp2 表中:
insert into emp2 select * from employees where department_id = 80;
/*************************************************************************************************/
测 试
1. 创建表dept1
name Null? type
id Number(7)
name Varchar2(25)
create table dept1(
id number(7),
name varchar2(25)
)
2. 将表departments中的数据插入新表dept2中
a) create table dept2
b) as
c) select * from departments
3. 创建表emp5
name Null? type
id Number(7)
First_name Varchar2(25)
Last_name Varchar2(25)
Dept_id Number(7)
create table emp5(
id number(7),
first_name varchar2(25),
last_name varchar2(25),
dept_id number(7)
)
4. 将列Last_name的长度增加到50
a) alter table emp5
b) modify (last_name varchar2(50))
5. 根据表employees创建employees2
a) create table employees2
b) as
c) select * from employees
6. 删除表emp5
drop table emp5;
7. 将表employees2重命名为emp5
rename employees2 to emp5
8. 在表dept和emp5中添加新列test_column,并检查所作的操作
alter table dept
add(test_column number(10));
desc dept;
9. 在表dept和emp5中将列test_column设置成不可用,之后删除
a) alter table emp5
b) set unused column test_column
alter table emp5
drop unused columns
10. 直接删除表emp5中的列 dept_id
Alter table emp5
drop column dept_id