a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > Oracle > 正文

Oracle基礎入門

2024-08-29 13:54:36
字體:
來源:轉載
供稿:網友

1.1 Oracle數據庫系統的特點

1.1.1 Oracle的發展史

1977年,Oracle誕生。現CEO勞倫斯.埃里森 Lawrence (Larry) J. Ellison與女上司Robert Miner創立“軟件開發實驗室”(Software Development Labs)。當時IBM發表“關聯數據庫”的論文,埃里森以此研發新數據庫,名為Oracle。1979年,公司前往硅谷,更名為“關系軟件公司”(Relational Software Inc. , RSI)。1983年,為了突出公司的核心產品,RSI再次更名為Oracle。2002年4月26日,正式啟用“甲骨文”作為公司的中文注冊商標。

Oracle是數據庫管理系統,是Oracle公司的核心產品。Oracle在管理信息系統、企業數據處理、因特網及電子商務等領域使用非常廣泛。由于其在數據安全性與完整性控制方面的優越性能,以及跨操作系統、跨硬件平臺的數據互操作能力,使得越來越多的用戶將Oracle作為其應用數據的處理系統。

Oracle數據庫系統的主要版本有Oracle 8i、Oracle 9i、Oracle 10g,最新版本是Oracle 11g。其中后綴i的含義是Internet,表示Oracle公司進軍互聯網。后綴g的含義是Grid,表示支持網格計算。本書中使用的版本是Oracle 11g。

1.1.2 Oracle的功能特點

Oracle數據庫基于“客戶/服務器”(Client/Server,C/S)系統結構。此概念將應用程序功能處理劃分到兩個系統中,即客戶端和服務器端。與用戶相關的活動在客戶端完成,數據庫相關的活動在服務器端完成。

Oracle數據庫的主要特點如下:

? 支持多用戶,高并發事務處理。

? 數據安全性和完整性方面性能優越。

? 網格計算,Oracle能夠把許多低成本的設備集成起來,為用戶提供高性能的共享計算能力。

? 具有高可移植性,能夠在主流的操作系統和硬件平臺上運行。

1.2 如何啟動Oracle數據庫

我們在學習SQL Server的時候,為了正常使用SQL Server數據庫,會打開Windows操作系統的“服務”組件啟動SQL Server相應的系統服務。那么為了使用Oracle,該如何啟動Oracle數據庫呢?

實際上,Oracle數據庫庫的啟動和關閉是日常工作之一。Windows操作系統下的Oracle服務以后臺服務進程的方式來進行管理。服務是在數據庫創建過程創建的,并且與數據庫關聯,啟動或關閉與Oracle數據庫相關的服務,即完成Oracle數據庫的啟動和關閉。一個數據庫有一項或多項服務與之關聯。如果要查看Oracle服務,可以選擇【開始】→【設置】→【控制面板】→【管理工具】→【服務】來打開“服務”窗口,如圖1.21.1所示。

? OracleOraDb11g_home1TNSListener

OracleOraDb11g_homeTNSListener服務是Oracle服務器的監聽程序。客戶端必須先連接駐留在數據庫服務器上的監聽程序,才能連接數據庫服務器。監聽器接收從客戶端發出的請求,然后將請求傳遞給數據庫服務器,以此建立客戶端與服務器的連接。一旦建立了連接,客戶端便可以與Oracle數據庫服務器直接通信。

? OracleServiceSID

OracleServiceSID服務是為SID(系統標識符)數據庫示例創建的。其中,SID是在安裝Oracle 11g時輸入的數據庫名稱。該服務是Oracle的核心服務,啟動Oracle實例必須啟動該服務。

? OracleJobSchedulerSID

OracleJobSchedulerSID服務是任務調度服務,負責按預先設置的時間周期性地執行某項用戶自定義的功能,從而實現Oracle服務器的自動管理功能。

? OracleDBConsoleSID

OracleDBConsoleSID服務負責在Windows平臺下啟動Oracle企業管理器。Oracle 11g企業管理器是一個功能完善的Oracle數據庫管理工具,可以管理本地數據庫環境和網絡環境。如圖1.21.2所示:

注意

Oracle服務器端,至少應該啟動OracleOraDb11g_homeTNSListener和OracleServiceSID兩個服務。

1.1 如何登錄Oracle數據庫

啟動Oracle數據庫之后,就可以開始使用Oracle數據庫來完成我們需要的數據處理。啟動的內部過程比較復雜,本章暫且不仔細研究,先掌握在正確啟動Oracle數據庫之后,使用SQL Plus和PL/SQL Developer兩款常用工具登錄到數據庫。

Oracle默認創建多個用戶,其中包括SYS、SYSTEM和SCOTT。

? SYS用戶

SYS用戶是Oracle中的超級用戶,主要用于維護系統信息和管理示例,數據庫中數據字典的所有表和視圖都存儲在SYS中。

? SYSTEM用戶

SYSTEM用戶是Oracle中默認的管理員,它擁有DBA權限。該用戶擁有Oracle管理工具使用的內部表和視圖,通常通過SYSTEM用戶管理Oracle數據庫的用戶、權限和存儲等。

? SCOTT用戶

SCOTT是Oracle數據庫的示例用戶。SCOTT用戶包含4張示范表,該用戶的默認口令為tiger。

注意

建議日常的管理任務使用SYSTEM用戶登錄Oracle數據庫服務器。如果需要執行備份、恢復、更改數據庫的任務,則必須以SYS用戶登錄Oracle數據庫服務器。

1.1 使用SQL命令管理數據表

當能夠正確啟動并登錄Oracle數據庫之后,我們開始體驗Oracle對數據的管理。那么在Oracle當中,我們如何新建數據表,標準的數據類型都有哪些呢?

1.1.1 回顧SQL語言

SQL(結構化查詢語言)是一種在關系型數據庫中定義和操作數據的標準語言,是應用程序與數據進行交互操作的接口。

SQL查詢語言主要包括以下4種:

(1)數據定義語言(Data Definition Language,DDL):用于創建、修改和刪除數據庫對象,如CREATE TABLE、ALTER TABLE、DROP TABLE等。DDL語句可以自動提交事務。

(2)數據操縱語言(Data Manipulation Language,DML):用于操縱數據庫,包括INSERT、UPDATE、DELETE、SELECT等。

(3)數據控制語言(Data Control Language,DCL):用于執行授予權限和撤銷權限的操作,包括GRANT(授予權限)、REVOKE(撤銷權限)兩條命令。DCL語句可以自動提交事務。

(4)事務控制語言(Transactional Control Language,TCL):用于維護數據的一致性,包括COMMIT(提交事務)、ROLLBACK(回滾事務)和SAVEPOINT(設置保存點)3條語句。

1.1.2 Oracle常用數據庫數據類型

Oracle 支持的數據類型多達幾十種。其中,常用數據類型大致可以分為字符類型、數字類型、日期類型、大對象類型等。以下將講解常用、典型的數據類型。

1.字符類型

(1)CHAR類型

CHAR表示固定長度字符串,長度不足時使用空格補充,最多可以存儲2000個字節。CHAR類型區分中英文,中文在CHAR中占兩個字節,而英文只占一個字節,所以CHAR(20)只能存20個字母或10個漢字。

(2)VARCHAR2類型。

VARCHAR2表示可變長度字符串,最多可以存儲4000個字節。在定義該數據類型時,應該指定其大小。與CHAR類型相比,使用VARCHAR2可以節省磁盤空間。例如,某列數據定義了VARCHAR(10)的數據類型,當用戶輸入5個字節的字符時,該列值的長度將是5個字節,而非10個,但該列值最大長度不能超過10個字節。

2.數值類型

NUMBER類型可以存儲正數、負數、零、定點數和精度為38位的浮點數,格式為:NUMBER(M,N),其中M表示精度,代表數字的總位數;N表示小數點右側數字的位數。以下將演示NUMBER數據類型的用法:

(1)size  number(2):表示size列的值只能是整數,并且最多只能取兩位整數。

(2)PRice number(6,2):表示price列的整數部分最多只能是4位,小數部分最多只能保留兩位。

3.日期類型

(1)DATE類型。

DATE數據類型用于存儲表中的日期和時間數據,取值范圍是公元前4712年1月1日至公元9999年12月31日。DATE類型的長度是7,7個字節分別表示世紀、年、月、日、時、分、秒。

(2)TIMESTAMP類型

TIMESTAMP數據類型用于存儲日期的年、月、日以及時間的小時、分和秒值。其中,秒的數據值精確到小數點后6位,該數據類型同時包含時區信息。

4.大對象類型

(1)CLOB大字符串對象類型

CLOB(Character Large Object)數據類型用于存儲可變長度的字符數據,最多可存儲4GB的數據。該數據類型用于存儲VARCHAR2類型不能存儲的長文本信息。

(2)BLOB大二進制類型

BLOB(Binary Large Object)數據類型用于存儲較大的二進制對象,如圖片、視頻剪輯和聲音剪輯等,最多可存儲4GB的數據。

注意

Oracle也支持INTEGER、FLOAT、DOUBLE等數值類型,但建議采用Oracle自身的NUMBER數據類型;Oracle也支持VARCHAR字符類型,但建議采用Oracle自身的VARCHAR2類型。

1.1.3 在SCOTT方案中創建數據庫表

Oracle中,可以使用CREATE TABLE命令創建數據庫表,具體語法如下。

 

CREATE  TABLE[<方案名>.]<表名>

(

     <列名1><數據類型>,

    <列名2><數據類型>,

    ……

    <列名n><數據類型>

)

 

問題:

某移動通信公司需要建設網上營業廳,需要使用Oracle數據庫存儲用戶個人信息,內容包括:機主姓名、手機號碼、地市歸屬、入網時間、消費品牌名稱(如動感地帶)等基本信息。如何創建數據庫表以保存個人信息呢?

以SCOTT用戶登錄SQL Plus,輸入示例21.1的SQL代碼。

示例1.1

CREATE TABLE PERSONAL_INFO

 (

OWNER_NAME VARCHAR2(20) NOT NULL,

TEL_CODE VARCHAR2 (15) NOT NULL,

CITY VARCHAR2 (20) NOT NULL,

NETWORK_DATE DATE NOT NULL,

BRAND_NAME VARCHAR2 (20) NOT NULL

 );

執行后,使用DESC 命令查看表結構。運行結果如圖1.4.11.7所示:

 

圖1.4.11.7 創建個人信息表的顯示結果

我們在之前學習SQL Server知識的時候,已經學習過對表字段添加各種約束,例如唯一約束,在我們新建的個人信息表中,TEL_CODE(手機號碼)需要添加唯一約束,怎么實現呢?修改表結構,并添加唯一約束,如示例1.2所示:

示例1.2

 

SQL> ALTER TABLE PERSONAL_INFO ADD CONSTRAINT U_TEL_CODE UNIQUE (TEL_CODE);

SQL>COL COLUMN_NAME FOR A20;

該代碼表示在接下來的查詢中,列“COLUMN_NAME”按照20個字符寬度顯示。

SQL> SELECT CONSTRAINT_NAME, COLUMN_NAME FROM USER_CONS_COLUMNS WHERE TABLE_NAME='PERSONAL_INFO';

該代碼使用了數據庫視圖USER_CONS_COLUMNS,此視圖存儲了數據庫表中所有的約束信息,對應的列描述見表1-41-1。

表1-41-1 列信息

列名

描述

CONSTRAINT_NAME

約束名稱

COLUMN_NAME

約束所在的列名稱

TABLE_NAME

約束所在的表名稱

通過對圖1.4.21.8的觀察,發現在TEL_CODE列上,建立了U_TEL_CODE唯一約束。

1.1 使用SQL命令管理序列

已經創建了數據庫表,下一步就要錄入數據。需要解決的一個問題是:個人信息表沒有主鍵,如果有一ID字段并能夠實現自動編號功能,就方便多了。Oracle中是如何解決主鍵自動增長的呢?

Oracle并沒有類似SQLServer中的Identity來定義主鍵自增屬性。如果要實現主鍵自增,常用的方法是定義一個序列Sequence,然后在插入數據記錄時取序列中的下一個值nextval即可。

序列(Sequence)是Oracle提供的的用于產生一組等間隔整型數值的數據庫對象,可以通過在插入語句中使用序列值來實現主鍵自增。

Oracle中的CREATE  SEQUENCE命令用于創建序列。

 

CREATE SEQUENCE <序列名稱>

[START WITH 初始值 ]

[INCREMENT BY 步長 ]

[MINVALUE 最小值 | NOMINVALUE ]

[MAXVALUE 最大值 | NOMAXVALUE ]

[CYCLE | NOCYCLE ]

[CACHE 預分配序列個數 | NOCACHE]

[ORDER | NOORDER]

說明如下:

? START WITH  用于指定序列的起始值。

? INCREMENT BY  用來指定序列的增量,如果取負值,則為遞減序列。

? MINVALUE | NOMINVALUE  指定序列是否有最小值。

? MAXVALUE | NOMAXVALUE 用來說明序列是否有最大值。

? CYCLE | NOCYCLE  用于指定序列值達到最大之后,是否重新從最小值開始產生。

? CACHE | NOCACHE  用來指定是否在緩存中保存預先分配的序列值,如果選擇CACHE,可以提高獲取序列的速度。

? ORDER | NOORDER 是否確保序列值是否唯一和有序。

下面定義SEQ_PERSONAL_INFO序列用來實現PERSONAL_INFO表的主鍵自動編號,如示例1.3所示。

示例1.3

CREATE SEQUENCE SEQ_PERSONAL_INFO

START WITH 1

INCREMENT BY 1

NOMAXVALUE

CACHE 20;

使用序列時,需要用到序列的兩個偽列NEXTVAL和CURRVAL,其中NEXTVAL返回序列的下一個值,而CURRVAL返回序列的當前值。

至此,我們只需要修改PERSONAL_INFO表,添加ID列,之后就可以使用序列實現自增了。如示例1.4所示。

示例1.4

ALTER TABLE PERSONAL_INFO ADD ID NUMBER PRIMARY KEY;

 

INSERT INTO PERSONAL_INFO VALUES('張三','19900000000','北京','18-7月-2011',

'動感地帶',SEQ_PERSONAL_INFO.NEXTVAL);

 

INSERT INTO PERSONAL_INFO VALUES('李四','19900007777','北京','18-7月-2011',

'全球通',SEQ_PERSONAL_INFO.NEXTVAL);

 

首先修改PERSONAL_INFO表,添加了主鍵字段ID。然后往表中新增了2條記錄。

1.1 使用SQL命令完成數據增刪改查

在本章前一節的內容中,我們接觸了INSERT命令,會發現與之前學習的SQL Server操作很相似。事實上,雖然Oracle數據庫功能非常強大,體系結構與其他數據庫有較大差異,但其同樣遵循標準的SQL語言。因此,對于修改表數據,刪除表數據不過多介紹,只給出語法。

UPDATE 表名 SET 列名=值 [ , 列名=值 , …… ] [ WHERE 條件 ]

DELETE [ FROM ] 表名 [ WHERE 條件 ]

使用SELECT編寫子查詢

在數據庫數據操作語句(DML)中,查詢是較復雜的一類操作,也是體現數據庫技能掌握是否良好的重要指標。在涉及基于數據庫編程方面,查詢也是至關重要的知識。本節我們著重講解Oracle數據庫數據查詢的知識。

1.SCOTT示例方案簡介

Oracle數據庫安裝的時候會提示是否安裝示例數據庫,如果選擇安裝了,會提供SCOTT方案供學習Oracle數據庫使用。SCOTT方案有1-6-11-2所示數據表。

表1-1-12

表名

描述

EMP

雇員表

DEPT

部門表

SALGRADE

薪水等級表

BONUS

獎金表

2.單行子查詢

子查詢是指嵌套在其他SQL語句中的查詢,它可以出現在SELETE、WHERE、FROM等語句中。使用子查詢,可以用一系列簡單的查詢構成復雜的查詢,從而增強SQL語句的功能。

單行子查詢不向外層查詢返回記錄或者只返回一條記錄。子查詢可以放在SELECT語句的WHERE或FROM等子句中。

示例1.5要求查詢工資最高的雇員信息。

示例1.5

 

     SELECT EMPNO, ENAME, SAL, HIREDATE FROM EMP

WHERE SAL= (SELECT MAX (SAL) FROM EMP);

 

多行子查詢

多行子查詢可以向父查詢返回多行記錄。在WHERE語句中使用多行子查詢時,必須使用多行運算符(IN、NOT IN、EXISTS、NOT EXISTS、ALL和ANY等)。例如,查詢工資高于部門20中所有員工的雇員信息,先利用子查詢獲得部門20中所有員工的工資,再利用父查詢獲得其工資大于等于這些員工的雇員信息。

示例1.6

 

     SELECT ENAME, JOB, SAL, DEPTNO FROM EMP

WHERE SAL >= ALL (SELECT SAL FROM EMP WHERE DEPTNO=20);

相關子查詢

相關子查詢是指引用了父查詢中某些列的子查詢。在相關子查詢中,父查詢所處理的每一行都先被傳遞給子查詢。子查詢依次處理這些行,即將其應用到子查詢,如果滿足子查詢中的條件,則父查詢中的這一行就是最終結果集中的一行,直到父查詢中的每一行都處理完成為止。一般可以在SELECT或WHERE語句中使用相關子查詢。例如,查詢負責管理其他雇員的管理員信息,父查詢提供一個雇員編號(EMPNO)給子查詢,子查詢利用該雇員編號查詢是否存在一個管理者(MGR)與父查詢提供的雇員編號(EMPNO)對應。若存在,則說明該EMPNO就是管理者,將其顯示出來。

示例1.7

 

     SELECT EMPNO, ENAME, DEPTNO, SAL FROM EMP A

WHERE EXISTS (SELECT * FROM EMP B WHERE B.MGR = A.EMPNO);

添加數據

數據庫用來保存數據的,添加數據使用insert語句

(1)添加一條語句

SQL>insert into dept(deptno,dname,loc) values (60,’市場部’,’Beijing’);

插入多行

將SELECT語句檢索出來的所有數據行都插入到表中.這條語句通常在從一個表向另一個表快速復制數據行.

  SQL> create table dept1(deptno number(2) primary key,dname varchar2(14),loc varchar2(13));

  SQL> insert into dept1 select * from dept;

修改語句

SQL> update dept set dname = ‘國內市場部’, loc=’HongKong’ where deptno = 60;

刪除語句

SQL> delete from dept where deptno = 60 or dname = ‘銷售部’;

Delete語句中如果沒有where子句表示刪除表中的所有數據

8.使用Truncate 刪除所有數據

SQL> truncate table shopinfo;

使用delete語句可以刪除表中的全部數據,但是delete操作會被記錄在日志文件中,

 

9.Oracle分頁查詢

Rownum是一個偽列,它會根據返回的記錄生成一個序列化的數字。可以使用ROWNUM列返回查詢結果集中前N條記錄

SQL> select rownum,deptno,ename,job,mgr,hiredate from emp where rownum<10

分頁實現

比如每5行為一頁,現在要顯示第2頁,就是要顯示第6行到第10行

SQL> select e.*  from

( select rownum r,deptno,ename,job,mgr,hiredate from emp )  e

Where  r>5  and  r<11;

10. rowid偽列

rowid就是唯一標志記錄物理位置的一個id,內容是當前行位于哪個文件,塊,行的詳細信息。

SQL> select rownum,deptno,dname,loc  from dept

dual虛表

dual是系統定義的表,只有一行一列數據. 寫成select   100*200   from   dual   這里的dual只是為了完善語義的 。對于虛表(dual)來說,其中的列往往是不相關的或無關緊要的。

SQL> select 5*9 from dual;

SQL> select sysdate from dual;

;

1.1 使用JDBC訪問Oracle數據

在第二學期,我們詳細的學習了JDBC相關知識,在這里我們簡要的回顧一下關鍵步驟和核心對象。

? 第一步,加載驅動。關鍵代碼:Class.forName(“……”);

? 第二步,建立連接。關鍵代碼:DriverManager.getConnection(“……”);

? 第三步,執行SQL。核心對象:PreparedStatement

? 第四步,處理結果。核心對象:ResultSet

? 第五步,釋放資源。

本章前部分,新建了個人信息數據庫表,現在需要查詢北京地區動感地帶用戶數量。需要使用JDBC訪問Oracle數據庫實現。

示例1.8

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Date;  public class PagingEmpInfo {public static void main(String[] args) {showPagingEmp(2,5);}/** * 分頁查詢員工信息 * @param pageNum 第幾頁 * @param pageSize  每頁記錄數 * */public static void showPagingEmp(int pageNum,int pageSize){Connection con = null;PreparedStatement stmt = null;ResultSet rs = null;//數據庫連接信息String driverClass = "oracle.jdbc.driver.OracleDriver";String url = "jdbc:oracle:thin:@localhost:1521:orcl";String user = "scott";String passWord = "tiger";try {//加載驅動Class.forName(driverClass);} catch (ClassNotFoundException e) {e.printStackTrace();}try {//建立數據庫連接con = DriverManager.getConnection(url,user,password);//準備將要執行的SQL語句,?號表示占位符,執行是會被具體值替代String sql  = "select e.* from "+"(select rownum r,ename,job,hiredate from emp) e"+" where r> ? and r<?";//創建語句對象System.out.println(sql);stmt = con.prepareStatement(sql);//替換占位符int begin = (pageNum-1)*pageSize;int end = pageNum*pageSize+1;stmt.setInt(1, begin);stmt.setInt(2, end);//執行SQL語句,得到結果集rs = stmt.executeQuery();//處理數據while(rs.next()){int rownum = rs.getInt(1);String ename = rs.getString(2);String job = rs.getString(3);Date hiredate = rs.getDate(4);System.out.println(rownum+"/t"+ename+"/t"+job+"/t"+hiredate);}} catch (SQLException e) {e.printStackTrace ();}finally {//釋放數據庫連接if(con != null){try {con.close ();} catch (SQLException e) {e.printStackTrace ();}}} }}

執行結果如圖1.1.24所示

 

圖1.1.24北京動感地帶用戶數

從示例1.78可以看出,使用JDBC訪問Oracle數據庫的步驟與訪問SQLServer的步驟相同,只是具體連接參數不同。數據庫驅動類名稱字符串為“oracle.jdbc.driver.OracleDriver”,數據庫連接字符串為“jdbc:oracle:thin:@localhost:1521:orcl”,其中“localhost”是Oracle服務器IP地址或者機器名,“1521”是監聽端口,“orcl”是數據庫實例示例名稱。

? 本章總結

? Oracle 11g實例啟動必須啟動OracleOraDb11g_home1TNSListener,OracleServiceSID服務

? Oracle內存可分為系統全局區(SGA)和程序全局區(PGA)

? SYS用戶是Oracle中的超級用戶,SYSTEM是Oracle中默認的管理員,它擁有DBA權限,SCOTT是Oracle數據庫的一個示范帳戶

? Oracle管理工具主要包括SQL*PLUS、PL/SQL Developer和Oracle Enterprise Manager

? 使用JDBC訪問Oracle數據庫

? rownum是一個偽列,它會根據返回的記錄生成一個序列化的數字,rowid就是唯一標志記錄物理位置的一個id,內容是當前行位于哪個文件,塊,行的詳細信息。

? Oracle 支持的數據類型多達幾十種。其中,常用數據類型大致可以分為字符類型、數字類型、日期類型、大對象類型等

? 序列(Sequence)是Oracle提供的的用于產生一組等間隔整型數值的數據庫對象,可以通過在插入語句中使用序列值來實現主鍵自增。Oracle中的CREATE  SEQUENCE命令用于創建序列

 

 

 

任務實訓部分

 

1:使用SQL命令創建數據表

訓練技能點

? 能夠正確使用SQL Plus登錄到Oracle數據庫

? 熟練使用Oracle數據類型

? 熟練使用CREATE TABLE命令創建表

需求說明

在Oracle中使用SQL命令創建一個聯系人表,表結構如下所示。

表1-2-1 聯系人表

列名

數據類型

約束

id

number

主鍵,自增

name

varchar2

非空

address

varchar2

 

phone

varchar2

 

 

實現步驟

(1) 啟動相關Oracle服務

(2) 打開SQL Plus登錄到Oracle數據庫

(3) 使用CREATE TABLE命令按照表1-2-1創建表

2:創建序列

訓練技能點

? 為聯系人表的id字段創建序列

? 在insert語句中使用序列

需求說明

聯系人表的id字段是自動增長列,所以在Oracle中需要創建序列,要求從1開始,每次自增1。

實現步驟

(1) 使用CREATE  SEQUENCE命令創建序列

(2) 使用insert命令向聯系人表中插入測試數據

 

3:使用PL/SQL Developer工具

訓練技能點

? 使用PL/SQL Developer工具登錄Oracle數據庫

? 使用PL/SQL Developer工具創建表

? 使用PL/SQL Developer工具創建序列

? 使用PL/SQL Developer工具插入測試數據

需求說明

前兩個實訓任務都是通過SQL Plus工具實現的,現在要求把聯系人表刪掉并使用PL/SQL Developer工具實現前兩個實訓任務

4:JDBC連接Oracle數據庫

訓練技能點

? JDBC連接Oracle數據庫

? JDBC查詢數據

需求說明

使用JDBC連接聯系人表,并查詢表中的所有數據顯示到jsp頁面上

實現步驟

(1) 創建DAO類,在該類中實現兩個方法:連接數據庫和查詢數據

(2) 在JSP頁面中調用DAO類把查詢到的數據顯示到頁面上

(3) 顯示頁面時使用分頁方式

 

 

鞏固練習

 

一、選擇題

1. 在使用Oracle數據庫時至少需要啟動()服務。

A. OracleOraDb11g_home1TNSListener

B. OracleServiceSID 

C. OracleDBConsoleSID

D. OracleJobSchedulerSID

2. 下列()不是Oracle默認的用戶。

A. system

B. sys

C. scott

D. sa

3. 關于jdbc:oracle:thin:@localhost:1521:orcl說法正確的是()。

A. 1521是Oracle的默認端口號

B. orcl是表名

C. localhost表示應用程序所在的機器

4. 下列()用于支持OEM服務。

A. OracleOraDb11g_home1TNSListener

B. OracleServiceSID 

C. OracleDBConsoleSID

D. OracleJobSchedulerSID

5. 下列關于序列的說法正確的是()。

A. 序列一旦創建,就可以立即使用CURRVAL列

B. 在引用序列的CURRVAL列前,必須引用過一次NEXTVAL列

C. 可以修改序列中的起始值

D. 序列的初始值可以從0開始

 

二、上機練習

在Oracle中使用SQL Plus創建新聞表news,表結構如下所示。

表1-3-1 新聞表

列名

數據類型

約束

id

number

主鍵,自增

title

varchar2

非空

content

varchar2

 

author

varchar2

 

創建好后在PL/SQL Developer工具中插入測試數據。

 

 

Oracle擴展進階

 

 

Sqlplus常用命令

 

1. 顯示當前用戶

show user

2. 建立連接

connect   scott/tiger

connect   sys/admin as sysdba

3.斷開連接

disconnect

4.退出sqlplus

exit

quit

5.執行sql 文件

Start 或者@d:/aa.sql

6.編輯上一次的SQL語句

ed

7.保存輸入的代碼

Spool  

spool d:/b.sql  

spool off

8. 設置行大小(linesize) 默認80字符

set linesize 150

9. 顯示行大小

show linesize

10. 設置頁大小,顯示頁大小

set pagesize 500

show pagesize

11. select * from scott.emp

12. desc user_tables

13.select table_name from user_tables;

16.SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME = ‘T1’

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲精品在线播放 | 亚洲国产精品人人爽夜夜爽 | 忘忧草精品久久久久久久高清 | 亚洲香蕉精品 | 欧美日韩国产在线观看 | 免费99精品国产自在在线 | 污网站在线观看视频 | 色吊丝在线永久观看最新版本 | 日本黄色片在线观看 | 色.com| 欧洲另类二三四区 | 精品国产一区二区三区久久影院 | www.av在线| 中文字幕亚洲天堂 | 日本黄a三级三级三级 | 日韩国产中文字幕 | 精品久 | 精品日韩一区二区三区 | 国产色网 | 夜夜骑日日射 | 国精产品一区二区三区黑人免费看 | 欧美日韩成人精品 | 成人精品一区二区三区中文字幕 | 欧美午夜网 | 欧美激情精品久久久久 | 99久久久国产精品 | 国产三区在线成人av | 丁香婷婷在线观看 | 日韩美香港a一级毛片免费 欧美一极视频 | 成人av免费 | 国产精品久久久久久久久久妞妞 | 色婷婷综合久久久久中文一区二区 | 美女一区二区三区四区 | 性色视频免费观看 | 蜜桃av中文字幕 | 午夜精品久久久久久久星辰影院 | 97av超碰 | 中文字幕毛片 | www.五月婷婷 | 亚洲国产情侣自拍 | 丁香在线 |