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,'王五','男') ) );