创建和管理表练习

我们看一下创建和管理表的题目

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

利用子查询创建这个表叫emp,该表包含employees这几个字段,这是创建表的第二种方式,借助于已经存在的表,你看怎么写,

我们就不自己去操作了,一块看一下,create table myemp,as select,这样四个列,起别名的话就加在列的后面,那么你新创建

的表就叫做id,就叫name,创建表的同时,大家注意,这个方式创建表的时候,是包含employees表的数据的

create table myemp

as 

select employee_id id, last_name name, salary sal, email from employees

如果想不包含,创建一个空表的话,加上一个条件,将这个条件一定不成立,如果你这里写2等于2,怎么着了,是不是又把表里面

所有数据都加进去了,那就和没写一样,加上一个不等

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;

这个修改操作啊,稍微多一点,这样你需要熟悉一下,有add,有modify,有rename to,还有一个叫drop,有

四个命令,需要注意,其中这个modify,既可以改数据类型,可以改数据大小,还可以增加一个默认值


53. 清空表(截断: truncate), 不能回滚!!	
				
清空表,使用truncate,truncate table什么什么,truncate table,比如叫myemp

truncate table myemp;

就完了,就清空了,这个是不可回滚的


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;

如果你要表结构都一样的话,那你就select *呗,但是是空表,就这样写,如果不用空表的话,你就这样写

相当于对原有的表进行一个复制,完全的把原有的employees表复制了一份,就这个意思,后面是把employees

表中80号部门的所有的数据,复制到这个里边,这个是我们上一步创建的表,这个操作是我们下一节要讲的,

叫insert into,insert into的时候我们也可以一条条的加,添加的方式就是这样,这个大家先不用管它,我们放在

数据处理里面会讲,这个题目我们就先到这儿

创建和管理表练习_第1张图片

create table dept1(
id number(7),
name varchar2(25)

)

大家先把这个题目先做一下,我们来看一下这个题目,第一个题目叫创建这个表,这个表结构都给你放到

这儿了,这个写法的话是不是可以直接来了,创建表,这个就是白手起家创建的,create table,dept,

然后就是一个小括号,两项,id,number类型的,7个长度,第二个name,varchar2,25个长度,这就创建好了,

我就把我这个表里面已经有了一个dept,真是有,我们给他改个名吧,dept1

create tabel dept1(
	id number(7),
	name varchar2(25)
)

创建和管理表练习_第2张图片

创建和管理表练习_第3张图片

然后你再desc dept1;

创建和管理表练习_第4张图片

2.	将表departments中的数据插入新表dept2中
a)	create table dept2
b)	as
c)	select * from departments

讲一个表departments中的数据插入dept1中,这个就相当于我用第二种方式来创建,这个改成dept2,

create table dept2,这个就不这样写了,as select,将里面的所有的,select *,from departments这个表,

他也没有说这个数据怎么办,那我们就让这个数据都要,那就这样来写

create table dept2

as

from * from departments

创建和管理表练习_第5张图片

创建和管理表练习_第6张图片

然后select * from dept2,刚才我写的是dept2

创建和管理表练习_第7张图片

创建和管理表练习_第8张图片

create table emp5(
id number(7),
first_name varchar2(25),
last_name varchar2(25),
dept_id number(7)
)

他这创建的叫emp,emp我们这里面有这个表了,起一个其他的名字,emp10吧,emp10,然后呢,

id,number,第一个长度,最后一个没有逗号了,需要你注意

create table emp5(
	id number(7),
	first_name varchar2(25),
	last_name varchar2(25),
	dept_id number(7)
)

创建和管理表练习_第9张图片

创建和管理表练习_第10张图片

4.	将列Last_name的长度增加到50
a)	alter table emp5
b)	modify (last_name varchar2(50))

将这里面的列,last_name,长度增加到50,那就是修改,修改,alter table,这里叫emp5,

modify,last_name,varchar2增加到50,这样

alter table emp5

modify (last_name varchar2(50))

创建和管理表练习_第11张图片

创建和管理表练习_第12张图片

5.	根据表employees创建employees2
a)	create table employees2
b)	as
c)	select * from employees

这个难度也不大,就是我们创建表的第二种方式,就是完全是一个复制了,create table employees2,

as select, from employees

create table employees2

as 

select from employees

创建和管理表练习_第13张图片

创建和管理表练习_第14张图片

创建和管理表练习_第15张图片

6.	删除表emp5
drop table emp5;

刚才我们是emp5,所以删除emp5,删除我们直接在这里写,drop,drop table emp5


7.	将表employees2重命名为emp5
rename employees2 to emp5

将employees2重命名为emp5,大家注意,这里是没有table的,rename employees2,to emp5,

rename employees2 to emp5;


8.	在表dept和emp5中添加新列test_column,并检查所作的操作
alter table dept
add(test_column number(10));

在表中增加新列test_column,再加一个列,这两个表中都加新列,检查所做的操作,我们就在其中一个加,

另一个都同理,增加一个列,alter table,dept,然后呢add,增加一个列,test_column,加个数据类型,number

类型的,10个单位的长度,并检查所做的操作,那你就desc dept就行

alter table dept

add (test_column number(10));

desc dept;

看看是否新增加了一个列,存储的长度是否对,然后同样的操作来处理emp,这个我们就省略了


9.	在表dept和emp5中将列test_column设置成不可用,之后删除
a)	alter table emp5
b)	set unused column test_column

alter table emp5
drop unused columns

我们将这两个列设置成不可用的,之后删除,这个大家也不需要过多的关注,作为一个了解吧,那我们得写一下,

我还是得用一下他,刚才我们是emp5,给他新增加一个列

alter table emp5

add(test_column number(10))

创建和管理表练习_第16张图片

创建和管理表练习_第17张图片

有这个列,现在把这个列设置成不可用,这个怎么写,大家了解一下就行,set unused,

column test_column,把它置成一个不再使用的

alter table emp5

set unused column test_column

创建和管理表练习_第18张图片

创建和管理表练习_第19张图片

就没有了,虽然没有了,但是并不意味着这个列是在的,跟没在效果差不多,那么这个命令这样写

把设置不可用的列删除,删除的话我们就这样,drop unused columns

alter table emp5

drop unused columns

创建和管理表练习_第20张图片

创建和管理表练习_第21张图片

这是这个命令,大家只要了解一下就行,下面直接删除表中的列,删除还是一个修改

10.	直接删除表emp5中的列 dept_id
Alter table emp5
drop column dept_id

alter table emp5,alter table他,然后删除drop,column dept_id,删除这一个列

alter table emp5

drop column dept_id

 

你可能感兴趣的:(ORACLE)