Ø复制表(带数据)
CREATE TABLE 表名1 AS
SELECT * FROM 表名2;
Ø复制表结构(不带数据)
CREATE TABLE 表名1 AS
SELECT * FROM 表名2
WHERE 1 = 2;
Ø添加列:
ALTER TABLE 表名
ADD 列名 数据类型 [默认值|NOT NULL] 约束;
Ø修改列
ALTERTABLE 表名
MODIFY列名 数据类型 [默认值|NOT NULL] 约束;
Ø删除列
ALTERTABLE 表名
DROPCOLUMN 列名
Ø给表重命名
ALTER TABLE 表名 RENAME TO 新表名;
Ø给列重命名
ALTER TABLE 表名
RENAMECOLUMN 列名 TO 新列名;
Ø给列添加约束(主键、外键、唯一、检查)
ALTER TABLE 表名
ADD CONSTRAINT 约束名 约束类型(列名);
约束类型:PRIMARY KEY/FOREIGNKEY/CHECK/UNIQUE
Ø删除约束
ALTER TABLE 表名
DROP CONSTRAINT 约束名;
==========================================================================================
序列上用来生成唯一、连续的整数的数据库对象,通常用来生成主键或者唯一键值,可按升序排列或者减序排列。
创建语法如下:
CREATE SEQUENCE SEQUENCE_NAME
START WITH integer ---开始值
INCREMENT BY integer ---递增值
MAXVALUE integer|MAXVALUE ---最大值
MINVALUE integer|MINVALUE ---最小值
CYCLE|NOCYCLE ---是否重新生成
CACHE|NOCACHE ---预生成序列个数
获取序列的当前值
Select sequence_name.currval from dual
获取序列的下一个值
Selectsequence_name.nextval from dual
删除序列
Drop SEQUENCE sequence_name
=========================================================================================
视图是从一个或几个基表导出的表。他与基本表不同的是它是一个虚拟的表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据任存放在原来的基本表中。
视图的特点:
简单
安全性
不受基表的影响
可以通过重命名列,从另一个角度提供了数据,而不影响到基表
创建视图
Createview view_name asselect * from table_name where table_column=?
更改视图
Updateview_name set view_column=? Where view_row=?
删除视图
Dropview view_name
========================================================================================
索引的作用
1.索引只是一种快速访问数据的途径,它只影响执行的速度索引是与表相关的一个可选结构
2.用以提高SQL 语句执行的性能
3.减少磁盘I/O
索引的类型:
唯一索引:唯一索引确保在定义索引的列中没有重复值,Oracle 自动在表的主键列上创建唯一索引。
组合索引:组合索引是在表的多个列上创建的索引
反向键索引:反转索引列键值的每个字节,另外还有位图索引、基于函数的索引等。
唯一索引
Create unique index index_name on table_name(table_column)
组合索引
Createi ndex index_name on table_name(table_column1,table_column2)
反向键索引
Create index index_name on table_name(table_column) REVERSE
将反向键索引重新转化为标准索引
Alter index index_namerebuild NOREVERSE-----不能进行相反操作
位图索引(适用于列中出现不同值的数目比表中的行数少的列,比如性别列就比较合适建立位图索引)
Create BITMAP index index_name on table_name(table_column)
基于函数的索引
Create index index_name on table_name(UPPER(table_column))
如果我们经常使用大写字母进行查询,那么这样的索引就起到作用了
要创建基于函数的索引,那么必须要赋予用户一个系统权限:query rewrite
Grant query rewrite to user_name
********************************************************************************************************************
存储过程
就是一段进行预编译的PL/SQL块,并以对象的形式保留在数据库中,以备调用。
函数用于计算和返回特定的数据,可以将经常需要进行的计算写成函数,函数的调用是表达式的一部分,而过程呢个的调用是一条PL/SQL语句。
这两者的区别就是存储过程没有返回值而函数有。
存储过程和函数的优点:
模块化
可重用性
可维护行
安全性
CREATE OR REPLACE PROCEDURE procedure_name
[(parameter_list)]
[IS|AS]
[local_declarations]
BEGIN
executable_statments
[EXCEPTION]
exception_handlers
END [procedure_name];
例子:
如何使用存储过程读取t_config表的一个配置项名
createor replace procedure find_t_config(configid number)
as
config_namevarchar(200);
begin
select configname into config_name from t_config where configid=configid;
dbms_output.put_line(‘配置项的名称为:’||config_name);
exception
when NO_DATA_FOUNDthen
dbms_output.put_line(‘没有合适的配置项');
end find_t_config ;
注意:要看到效果,请执行:set serverout put on