一.DDL,DML,DCL,视图,索引

一.DDL,DML,DCL,视图,索引

1、数据定义语言DDL:用来定义和管理数据库中的对象

DDL主要的语句有:
CREAT TABLE /创建表/
ALTER TABLE /修改表的属性/
DROP TABLE /删除表/

2、数据操作语言DML:用来操作数据库中的对象和数据,是T-SQL中最常用的部分。

DML主要的语句有:
SELECT /从一个表或多个表中检索数据/
DELETE /从表中删除数据/
INSERT /向一个表中添加数据/
UPDATE /修改表中已有的数据/

3、数据控制语言DCL:用来控制用户对数据库对象操作的权限。

主要的命令有:
GRANT /授予权限/
REVOKE /回收所授予的权限/

CREATE
创建表语法:
CREATE TABLE <表名> (<列名><数据类型> [NULL|NOT NULL]
[列级完整性约束条件] [,<列名><数据类型>[列级完整性约束条件]…][,<表级完整性约束条件>])

ALTER
修改表
ALTER TABLE<表名>
[ADD <新列名><数据类型>[完整性约束]
[DROP<列名>]
[MODIFY]<列名><数据类型>];

DROP
删除基本表语法
DROP TABLE <表名>

SELECT语句的语法形式如下:
SELECT select_listFROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ]

INSERT语句用于向数据库或者视图中加入一行数据
语法:
INSERT [INTO] { talbe_name |view_name}
{[(column_list)]
{values ({default |NULL |expression } [,…n])}

INSERT [INTO] { talbe_name |view_name}
{[(column_list)]
select column_list from table_name

Update { table_name |view_name }
[from {}[,…n]
SET column_name={expression |default |NULL}[,…]
[where search_condition]

DELETE语句用于删除数据库表中的数据
语法:
DELETE [FROM ]
{table_name |view_name
}
[ WHERE

]

用来控制用户对数据库对象操作的权限
语法:
grant|revoke 对象权限|all
on 数据库对象
to 数据库用户
[WITH GRANT OPTION]

约束

alter table table_name add(列 类型)
alter table table_name modify(列 类型)
查看约束的数据字典:user_constraints
建表时加约束:(列级别启用约束)
非空约束 : constraint constraint_name not null
建表后加约束:(表级别启用约束)
唯一约束 : alter table table_name add constraint constraint_name unique (列名)
主键约束 : alter table table_name add constraint constraint_name primary key (列名)
外键约束 : alter table table_name1 add constraint constraint_name foreign key (列名) references table_name2(由于外键只能参照主键,一张表只有一个主键,所以无需指定列) [on delete cascade | on delete set null]
check约束 : alter table add constraint add constraint_name check (check 条件)
注意 : not null 只能在列级别启用约束
修改表中约束的启停状态:
alter table table_name modify constraint constraint_name disable(enable) novalidate;

视图:

限制数据访问
简化复杂查询(降低性能)

创建视图:
create or replace [force] view v_temp(v_col1,v_col2,v_col3)
as
select col1,col2,col3
from table_name1,table_name2
where clause
with check option
with read only
删除视图
drop view view_name
查询创建视图的子查询
select text from user_views where view_name=视图名称

索引:

--索引的数据字典 user_indexes 
减少对数据库的I/O操作,加速查询
索引是有序排列的
对select,update,delete操作加速,对insert操作降速

创建简单索引
create index index_name on table_name (列名)
查看索引的有效性:
–数据字典
desc index_stats
–关键列:name,heignt,blocks,br_blks,br_rows,lf_blks,lf_rows
将索引分成多个叶子块,根据索引范围去对应的叶子块当中查询,无需全表扫描
rowid 物理地址的绝对值
将rowid 和 主键列 一起存入索引当中,根据主键列找到rowid,根据rowid直接获取信息
rowid 18 位长度
6 3 6 3
对象号 文件号 块号 行号
使用索引的技巧
对于小表来说,使用索引对于性能不会有任何提升
当索引列中有极多的不同数据和空值时,索引会使性能极大提高
当查询返回很少数据时,索引可以优化查询;当查询返回数据很多(25%)时,索引会加大系统开销
索引降低插入和更新操作的性能,当需要大量的更新操作时,需要先删除索引,待更新操作完成,再简单的恢复索引
对字段的索引已经对两个表进行了归并操作,这一技术极大的提高了归并的速度
不要对经常更新或修改的字段创建索引
在创建索引时使用unique关键字
符合索引通常使用unique关键字防止相同数据多次出现
create unique index index_name
on Tbale(col1,col2)

你可能感兴趣的:(Oracle,DDL,DML,DCL,视图,索引)