【正文】
查詢出來的結(jié)果可以更新;user 表的 userId 跟 jforum_user_groups 表的 userID 關(guān)聯(lián)設(shè) user 表的 userID=403 在 jforum_user_groups 表設(shè) userID=403的 groudID=2。: Io 異常: The Network Adapter could not establish the connectionselect * from user 。PS:關(guān)于 rownum對于 rownum 來說它是 oracle 系統(tǒng)順序分配為從查詢返回的行的編號,返回的第一行分配的是 1,第二行是 2,依此類推,這個偽字段可以用于限制查詢返回的總行數(shù),而且 rownum 不能以任何表的名稱作為前綴。SQL 語句如下:select * from (select t.*,rownum R from subscriber_attr t where rownum = 10) where R 5 通過上面的語句,就得到了 6 到第 10 條數(shù)據(jù)了。 另外一種方法,采用子查詢: 子查詢的這種方法相對比較復(fù)雜一點,不過性能要比剛才的集合相減要好一些。11. GRANT UNLIMITED TABLESPACE TO SCOTT。8. 創(chuàng)建用戶9. CREATE USER KEELTEST IDENTIFIED BY KEELTEST。5. 查詢當前用戶的系統(tǒng)權(quán)限:SELECT * FROM USER_SYS_PRIVS。這樣 TEST 用戶就能成功登陸進去3. 建表權(quán)限 GRANT CREATE TABLE TO TEST。這樣就可以知道當前用戶的權(quán)限常用的賦權(quán)命令: CREATE USER TEST INDENTIFIED BY TEST。//把創(chuàng)建視圖的權(quán)限賦給 scott。4. ORACLE 連接其他地址的庫在 ORACLE 安裝目錄下的:C:\oracle\product\\db_1\NETWORK\ADMIN 的 文件 Network Configuration File: C:\oracle\product\\db_1\work\admin\Comment [U20]: 這就是對應(yīng)地址55 / 62 Generated by Oracle configuration tools.ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )orcl74= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) 如果要連接 =jdbc:oracle:thin::1521:orcl=jdbc:oracle:thin::1521:orcl =zhmwc =zhgmccamp。 提交完成.SQL conn scott/tiger更改 scott 口令新口令:tiger重新鍵入新口令:tiger口令已更改已連接。SQL alter user scott account unlock。//以 DBA 的身份登錄(2)alter user scott account unlock。scott 用戶被鎖定問題原因:默認 Oracle10g 的 scott 不能登陸。相反,HAVING 子句可以讓我們篩選成組后的各組數(shù)據(jù).53 / 62oracle 常見問題1..在打開 PL/SQL DEVELOP 的時候 回彈出: ORA12170: TNS: 連接超時關(guān)閉掉殺毒跟防火墻都無法解決:點 Net Manager ?設(shè)置好主機名,也可以設(shè)置 IP 地址,但是每次都要重新設(shè)置。二、 顯示每個地區(qū)的總?cè)丝跀?shù)和總面積.僅顯示那些面積超過 1000000 的地區(qū)?! QL 實例:一、顯示每個地區(qū)的總?cè)丝跀?shù)和總面積.SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region 先以 region 把返回記錄分成多個組,這就是 GROUP BY 的字面含義。當你指定 GROUP BY region 時, 屬于同一個 region(地區(qū))的一組數(shù)據(jù)將只能返回一行值.也就是說,表中所有除 region(地區(qū))外的字段,只能通過 SUM, COUNT 等聚合函數(shù)運算后返回一個值. HAVING 子句可以讓我們篩選成組后的各組數(shù)據(jù). WHERE 子句在聚合前先篩選記錄.也就是說作用在 GROUP BY 子句和 HAVING 子句前.而 HAVING 子句在聚合后對組記錄進行篩選。 SELECT SUM(population) FROM bbc 這里的 SUM 作用在所有返回記錄的 population 字段上,結(jié)果就是該查詢只返回一個結(jié)果,即所有國家的總?cè)丝跀?shù)。 3. 用戶可以自己購買商品,購買商品時要在訂單表中添加信息,一個用戶可以同時購買多個商品,用戶可以選擇自己所在的地區(qū)進行商品的派送4. 用戶可以根據(jù)自己的購買積分,對商品進行折扣52 / 62GROUP BY 和 HAVING 在介紹 GROUP BY 和 HAVING 子句前,我們必需先講講 sql 語言中一種特殊的函數(shù):聚合函數(shù),例如 SUM, COUNT, MAX, AVG 等。數(shù)據(jù)庫設(shè)計范式實際上非常重要,但是從實際的開發(fā)來看,如果真的全部按照范式去做,則這個程序沒法寫,包括查詢語句也會變得復(fù)雜,(因為表關(guān)聯(lián)過多,會產(chǎn)生大量的笛卡爾乘機在 Oracle 中的 scott 用戶的全部表 ,實際上就已經(jīng)很好的體現(xiàn)一種設(shè)計思路 。這時候再用 conn test/hello 登陸就會提示你重新輸入修改密碼;49 / 62數(shù)據(jù)庫的備份與恢復(fù)(了解)把所有數(shù)據(jù)都備份到 之中, exp 命令之后會提示你要備份的是哪個用戶名下的數(shù)據(jù) 是導(dǎo)出文件的默認名稱 不建議修改,然后就執(zhí)行一系列的默認操作備份完成,為了檢驗備份的效果,把數(shù)據(jù)庫中的表全部刪除,之后使用 imp 命令將備份的文件恢復(fù)50 / 62數(shù)據(jù)庫設(shè)計范式(了解)嵌套表、可變數(shù)組,對于數(shù)據(jù)庫的開發(fā)過程中像過程之類的基本上也都不使了,因為很多都用程序完成,而且,對于高級開發(fā)部分,游標,觸發(fā)器,包,函數(shù)。所以想要完成此功能,可以手工讓一個密碼失效,格式如下:ALTER USER 用戶名 PASSWORD EXPIRE。范例:將 test 的用戶密碼修改為 helloALTER USER test IDENTIFIED BY hello。GRANT CONNECT, RESOURCE TO test。創(chuàng)建用戶之后,開啟一個新的 sqlplusw,并用此用戶登陸。CREATE USER ke IDENTIFIED BY ke123。范例:創(chuàng)建一個 test 用戶,密碼是 test123。48 / 62用戶管理(了解)在 oracle 中可以對用戶進行建立及授權(quán)的操作。比如在如下字段建立索引應(yīng)該是不恰當?shù)模?..很少或從不引用的字段2...邏輯型的字段,如男或女(是或否) 等。實踐表明,不恰當?shù)乃饕坏谑聼o補,反而會降低系統(tǒng)性能。 索引缺點分析索引有一些先天不足:1:建立索引,系統(tǒng)要占用大約為表的 。SELECT * FROM customer where name=’sp’。Comment [U18]: 邏輯型的,比如說在sex字段上沒必要建索引,因為它本身就很好找,”男”或” 女”,很好區(qū)分,沒必要建。索引有很多種我們主要介紹常用的幾種:為什么添加了索引之后,會加快查詢速度呢?Comment [U16]: 如果經(jīng)常要根據(jù)name去查詢客戶,如果這里數(shù)據(jù)非常海量,不加索引,這里將會非常浪費時間。索引是用于加速數(shù)據(jù)存取的數(shù)據(jù)對象。在同一張表上可以有多個索引,但是要求列的組合必須不同,比如:Create index emp_idx1 on emp(ename,job)。現(xiàn)在把書變成我們的表,把卡片變成我們的索引,就知道為什么索引會快,為什么會有開銷。但是此種特性只適用于 oracleComment [U15]: 這兩個是不同的索引 ,46 / 62索引圖書館:如果雜亂地放書的話檢索起來就非常困難,所以將書分類,然后再建一個箱子,箱子里面放卡片,卡片里面可以按類查詢,按姓名查或者類別查,這樣的話速度會快很多很多,這個就有點像索引。范例:將 定義 emp 的同義詞CREATE SYNONYM emp FOR 。 在 sys 用戶下存在此表,此表在 sys 下,但是在 scott 用戶下卻可以直接通過表名稱訪問,那么正常情況下如果要訪問不同用戶的表需要使用””。 //找不到Conn sys/change_on_install AS SYSDBA。查找所有的表:select* from tab。45 / 62同義詞(了解即可)之前總是存在這樣的一種查詢語句:SELECT SYSDATE FROM dual。CREATE SEQUENCE myseq INCREMENT BY 2 START WITH 10。查看表結(jié)構(gòu): desc dept。INSERT INTO test2seq(next,curr) VALUES( , )。重建 testseq表重新建立 :DROP TABLE test2seq。也就是說,現(xiàn)在的這種序列,每次增長的幅度是 1,那么也可以修改序列的增長幅度:可以使用以下的兩個參數(shù): 每次的增長幅度:INCREATE BY 從哪里開始:START WITH范例:重新創(chuàng)建序列刪除序列:DROP SEQUENCE myseq。向表中添加數(shù)據(jù),添加數(shù)據(jù)的時候需要手工使用序列范例: 使用序列INSERT INTO testseq(next,curr) VALUES( , )。范例:創(chuàng)建一個 myseq的序列,驗證自動增長的操作CREATE SEQUENCE myseq。創(chuàng)建序列需要 CREATE SEQUENCE系統(tǒng)權(quán)限。序列(重點)李興華:在 oracle中序列是最重要的。Comment [U8]: 每次增長幅度Comment [U9]: 從哪開始。創(chuàng)建條件不能更新,那么其他字段呢?例如: 現(xiàn)在將 7369的雇員姓名修改 Wie“史密斯”范例:修改視圖中 7369的雇員編號;UPDATE empv20 SET ename=’ 史密斯’ WHERE empno=7369。 此時,已經(jīng)提示視圖正常的進行了更新,重新查詢視圖之后,會發(fā)現(xiàn)