===========
二.数据库的其他对象 index 索引 table 表 view 视图 sequence 序列
PL/SQL程序块: trigger 触发器 package body 包体 procedure 过程 package 包头 function 函数
synonym: 同义词 database link
user_tables user_objects
select distinct object_type from user_objects;
1】.视图 view
----???sql(select) 语句查询结果的映像
create view v_emp_tian as
select deptno,count(*) num from emp_tian where deptno is not null group by deptno order by deptno;
select*from v_emp_tian;
create or replace view v_emp_tian as
select empno,ename,deptno,job from emp_tian; --------------??视图?????????可用于隐藏数据,简化查询 ------------------------------------ --------------??视图中不包含数据,只是基表的映像 ------------------------------------------- create or replace view xxx--视图名称 as
sql语句
drop view v_emp_tian; select*from v_emp_tian;
--??创建视图,内容是每个部门的编码,名字,位置和这个部门的员工人数
=============================方法一================================== 匿名表/视图
create view v_dept_count as
select d.deptno,d.dname,d.loaction,e.count
from dept_tian d join ( select deptno,count(*) count from emp_tian group by deptno ) e on e.deptno = d.deptno;
select*from v_dept_count;
============================方法二=================================== create or replace view v_dept_count as
select d.deptno,d.dname,d.loaction,count(e.ename) count from dept_tian d join emp_tian e on e.deptno = d.deptno
group by d.deptno,d.dname,d.loaction;
select*from v_dept_count; 2】索引 Index
---??全表扫描 Full Table Scan (FTS) 遍历 ---???? 类比键值对 ???? 名字 位置
JAVA编程思想 三层211号架
1) 如果在某个列建立PK约束条件,索引自动建立 drop table stu_tian; create table stu_tian( id number(4) primary key, name char(10) );
---?索引自动创建 查询索引名称
select index_name from user_indexes where table_name = 'STU_TIAN';
insert into stu_tian values(1,'peter'); insert into stu_tian values(2,'tomas');
????? 建立如下索引中有如下结构的数据: ????? 1 某个地址
????? 2 某个地址
------------------如果按照id查找,自动使用索引--------------------------------------------- select*from stu_tian where id = 2;
-----------------如果按照name查找,不会自动使用索引---------------------------------------- select*from stu_tian where name = 'tomas';
-----查找主键约束的名字
select constraint_name from user_constraints where table_name = 'STU_TIAN'; ---?手动建立索引
---在经常做查询的列上手动创建缩影 create index idx_stu_t_name on stu_tian(name);
索引对查询有帮助,对DML操作是阻碍作用 索引由Oracle Server 自动维护
批量插入数据之前先删除索引,插完再重新建索引 drop index idx_stu_t_name; 3】Sequence 序列
create sequence seq_tian; ----银行排号机 要号: select seq_tian.nextval from dual;
insert into stu_tian
values(seq_tian.nextval,'Lilei'); select *from stu_tian;
drop sequence seq_tian;
create sequence seq_tian start with 1000 increment by 10;
-----????每次值增加1
select seq_tian.currval from dual; --------------------------查询当前
----------------------------------------Mysql主键自增长---------------------------------------- create table student_tian
(id int primary key auto_increment,--主键自增长 name char(10) );
insert into student_ning(name) values('peter');
id name --------------- 1 peter