1.oracle10g 11g:g(grid)表示网格技术 以baidu搜索为准,现在想使用一个软件,但是此软件在离自己非常近的地方就存在了下载地址,但是与自己非常远的地方也同样存在一个下载地址,而搜索引擎就有可能没有搜索到离自己近的下载,而是使用了更远的下载。那么这样一来肯定会造成资源的浪费。 所以新的网格概念就是将网络划分一个个的网格,通过网格表示一个区域。 先找自己所在的"网格",找不到的话再去找其他"网格"。 2.输出环境变量设置: 每行显示的长度: set linesize 长度 (默认80) 每页显示的长度: set pagesize 长度 3.命令行输入:"sqlplusw"进入sqlplusw窗口操作界面 在窗口中输入"ed 文件名称",输入完后,会提示用户是否创建文件。 编辑完成后,就可以通过@文件名称的方式来执行命令了。 以下几种输入方式都是正确的: 假设新创建的文件demo是在D盘的根目录下面 (1)txt文件 @d:demo.txt @d:demo.txt (2)sql文件(默认的是sql文件,其他格式的文件执行的时候必须带后缀名) @d:demo @d:demo 4.子查询的分类 (1)单列子查询:返回的结果是只有一列。 (2)单行子查询:返回的结果是只有一行,有坑是一条完整的记录。 (3)多行子查询:返回多行记录。 5.事务处理 所谓事务处理就是保证数据操作的完整性,所有的操作要么全部成功,要么全部失败。 每一个连接到数据库上的用户都是一个session。 6.组函数和统计函数、聚合函数是同一个概念 统计函数:max()、min()、avg()、sum()、count() (1).统计函数必须出现在分组统计之中。 (2).所谓分组是只列中存在重复的内容,使用group by的方式进行分组的统计。 (3).如果要加入分组条件,则编写having 子句,所有的统计函数作为条件的时候 只能在having中出现,不能在where中出现。 (4)分组函数允许嵌套,但是嵌套之后就不能再查询其他字段,包括分组字段。 7.添加检查约束: --匿名 age number(3) not null check(age between 0 and 100) sex varcahr2(2) default '男' check(sex in ('男','女')) --命名 检查约束: constranit tablename_age_ck(约束名称) check(age between 0 and 100) 主键约束: constranit tablename_id_pk(约束名称) primary key(id) 唯一约束: constranit tablename_name_uk(约束名称) unique(name) 外键约束: constranit tablename_name_fk(约束名称) foreign key(字段) references 父表名称(父表主键字段) 约束的修改: alter table tablename add constranit ablename_name_uk(约束名称) unique(name); 约束的删除: alter table tablename drop constranit ablename_name_uk(约束名称); 8.级联删除 删除表的同时删除约束: drop table tablename cascade constranit 删除时级联删除内容: constranit tablename_id_pk(约束名称) primary key(id) on delete cascade 9.嵌套表: 一张表中又包含有一个子表 举例: (1)创建子表类型 create type project_ty as object ( proid number(4), proname varchar2(20), prodata date ); (2)为类型创建一个名称 create type project_nt as table of project_ty; (3)创建嵌套表 create table department ( deptno number(2) primary key not null, dname varchar2(20) not null, projects project_nt )nested table projects store as project_nt_tab_temp; 插入数据: insert into department(deptno,dname,projects) values(1,'研发部', project_nt( project_ty(1001,'f1',sysdate), project_ty(1002,'f2',sysdate), project_ty(1003,'f3',sysdate) ) ); 嵌套表查询: select * from department; select * from table(select projects from department where deptno=1); 嵌套表的更新: --将项目编号为1001的项目名称,将此项目名称更新为"测试项目" update tabletable(select projects from department where deptno=1) pro set value(project_ty('1001','测试项目',sysdate)) where pro.proid = 1001; 10.可变数组 例如:一个部门有多个工人 (1)首先要创建一个工人类型 create type worker_ino as object( id number, name varchar2(20), sex varchar2(2) ); (2)创建数组类型 create type work_info_list as varry(10) of worker_info; (3)创建表 create table department ( deptno number(2) primary key not null, dname varchar2(20) not null, works work_info_list ); 插入测试数据 insert into department(deptno,dname,works) values(1,'研发部', worker_info_list( worker_info(1,'张三','男'), worker_info(2,'李四','女'), worker_info(3,'王五','男') ) );