数据库对象的创建与管理(SQL基本的增删改查)

数据库对象的创建与管理

SQL基本的增删改查

一、表的创建与管理

(1)创建表

员工表(员工编号、姓名、薪水、性别)

create table emp(
	emp_id number(6,0) primary key,
	name varchar2(20) not null unique,
	salary float,
	sex check in('男','女')
)
(2)修改表

为emp表增加一列生日属性

alter table emp add(birthday DATE DEFAULT SYSDATE not null);

修改约束,如添加主键约束

alter table student add CONSTRAINT T_PK primary key(id);
(3)查询表

查询当前用户的表名、表空间名

select table_name,tablespace_name from user_tables;
(4)删除表

使用 CASCADE CONSTRAINTS 删除该表的同时删除其它表中相关的外键约束。

drop table student CASCADE CONSTRAINTS;

二、索引的创建与管理

(1)创建索引

在emp表的name列上创建一个索引,保存在indx表空间中。

create INDEX  emp_indx on emp(name) tablespace indx;
(2)查询索引

查询emp表的索引名和索引类型

select index_name,index_type 
from dba_indexes 
where table_name='EMP';
(3)删除索引
drop INDEX  emp_indx;

三、视图的创建与管理

(1)创建视图

创建一个视图,包含各个部门的员工人数、平均工资。

create view salary_view 
as
select emp_id,count(*) num,avg(salary) avgsal
from emp GROUP BY emp_id;
(2)修改视图定义

修改视图,增加求各个部门的工资总和。

create view salary_view2
as
select emp_id,count(*) num,avg(salary) avgsal,sum(salary) total
from emp GROUP BY emp_id;
(3)查询视图

查询当前用户所有视图名称及视图定义信息。

select view_name,text
from user_views;
(4)删除视图
drop VIEW  salary_view;

四、序列的创建与管理

序列用于产生唯一序号的数据库对象,通常使用序列自动生成表中的主键值。

(1)创建序列

创建一个序列,用于产生员工编号,起始值为1000,步长为10,不缓存,不循环。

create sequence emp_seq
start with 1000
increment by 10
maxvalue 9990
NOCACHE NOCYCLE;
(2)序列的使用

修改视图,增加求各个部门的工资总和。

//创建学生表
create table students(
	sno NUMBER primary key,
	sname char(20)
);
//创建学号序列
create sequence stu_seq
start with 1001
increment by 1
maxvalue 9990
;
//插入数据
insert into student(sno,sname) values(stu_seq.nextval,'Tom');
(3)查询序列

查询当前用户所有视图名称及视图定义信息。

select sequence_name,min_value,max_value,increment_by
from user_sequences
where sequence_name='STU_SEQ';
(4)删除序列
drop sequence stu_seq;
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值