笛卡尔积 cross join
数据库连接
等值连接
自然连接 natural join
自动为我们把同名字段|主外键关系字段做等值连接
同名字段不能使用限定词
join…using(制定等值连接字段名)
同名字段不能使用限定词
-等值|非等值连接
表1 join 表2 on 连接条件
select e.deptno from emp e inner join dept d on e.deptno=d.deptno;
内连接 (inner) join
外连接
左连接 left join … on
右链接 right join … on
试图
是一个虚拟表,介于表和结果集之间授权,使用完毕以后回收权限
如果没有权限,登录sys管理员身份进行
create or replace view 视图名 as select语句 [with read only];
索引
是数据库的对象之一,需要维护的
可以帮助我们提高查询效率
到底没有添加索引,对于数据库中的表的使用完全没有影响,索引是透明的
大量的数据的频繁查询是有效,提高查询效率,如果大量做增删改,反而会降低效率
字典的目录
oracle会自动为表的主键添加索引
创建索引
create index 索引名 on表名 (字段列表…)
删除索引
drop index 索引名
创建表
create table 表名(
字段名 类型 (约束),
字段名…
–);
–注意:表中的字段添加校验要求等等 1)直接加在表结构中,约束 2)在java代码中进行校验
create table tb_user(
userid number(5),
username varchar2(15), --可变长字符串 ()默认指字节数 如果想要表示字符数 3 char
userpwd varchar2(5 char), --()中的数字 如果想要表示字符数 3 char->3个字符
age number(3,1), --精确匹配3位数字,其中一位是小数
gender char(3), --定长字符串 ()中的数字 如果想要表示字符数 3 char->3个字符
email varchar2(30),
tegtime date
);
添加约束
学生表 从表|子表 **
添加约束1 字段后直接添加约束 没有约束名字,比较简单,但是不便于后期维护 **
添加约束2 字段后直接添加约束并指定约束名字 便于后期维护,不满足约束条件的时候会提示约束名字
添加约束3 字段后,创建表结构结束前添加约束,制定约束名字
添加约束4 床架表结构结束后追加约束
添加约束3 on delete set null 删除主表数据的同时为从表中引用的那些数据的外键字段值设置为null| on delete cascade 删除主表数据的同时也删除掉从表中引用的那些数据| 不写 默认先删除从表引用了主表要删除数据的那些从表数据,再删除主表数据
追加约束4: add constraint
alter table sxt_student add constraint haha unique(sqq);
–加入注释
comment on table sxt_student is ‘学生表’;
comment on column sxt_student.sid is ‘学生编号’;
拷贝数据
根据已有的表进行拷贝
–只拷贝表结构,不拷贝原表中的数据
–create table 表名 as select 字段列表 from 已有表 where 1!=1;
–拷贝表结构+数据
–create table 表名 as select 字段列表 from 已有表 where 1!=1;