Oracle
- 安裝
- Oracle的資料型別
- 1、數值型別
- 2、字符型別
- 3、日期型別
- 4、布爾型別
- 5、檔案型別(不建議資料庫內上傳檔案)
- PLSQL Developer
- 1、創建一個新的用戶
- 2、為已創建的用戶授權
- 3、創建一個表空間
- 4、為當前用戶指定表空間
- 5、修改當前字符集為簡體中文
- 6、創建表
- 7、查看表結構
- 8、插入資料(默認不會自動提交事物)
- 9、提交事物
- 10、匯入檔案
- 11、查詢資料
- 與mysql比較
- 主鍵策略
- 創建序列
- 插入資料
- 偽列與偽表:
- 分頁查詢
- Oracle分頁查詢(子回圈,嵌套查詢):
- Mysql分頁查詢:
- 主鍵裂縫(主鍵永遠不會重復)解決方法
- Oracle JDBC
優點:資料量,讀寫速度,安全,穩定
缺點:對Windows支持不友好
安裝
安裝成功后設定

檢測
oracle 自帶用戶
超級管理員

普通管理員

Oracle的資料型別
1、數值型別
NUMBER:可以表示整數,也可以表示小數
NUMBER(P,S):表示有效位數為P位,小數位數為S位
NUMBER(P):表示一個P位整數
2、字符型別
VARCHAR2:可變長度的字串(裝不下,可自動擴展)
CHAR:表示指定長度的字串
LONG:表示一個可變的字串,任何字串變數都可以賦值給它(純資料開發用到)
NCHAR和NVARCHAR2:根據字符集確定
3、日期型別
DATE:包含年月日時分秒
TIMESTAMP:時間戳,包含年月日和時分秒毫秒
4、布爾型別
BOOLEAN:TRUE,FALSE,NULL
5、檔案型別(不建議資料庫內上傳檔案)
BLOB:二進制資料,可以是圖片、音頻、視頻...
PLSQL Developer
字體調整:工具->首選項
表空間 tablespace:存盤在本地計算機硬碟上
1、創建一個新的用戶
檔案->新建->Command Window
create user lv identified by orcl123;
2、為已創建的用戶授權
授予最大的權限(授權必須要用sys賬戶)
grant dba to lv;
3、創建一個表空間
create tablespace lv datafile 'E:\lv.dbf'size 200m
autoextend on next 10m maxsize unlimited;
datafile:表空間的資料檔案存放路徑
size:設定初始大小為200M
autoextend:on/off 表示啟動/停止自動擴展空間
next 10M:表空間滿了,自動擴展10M
maxsize unlimited:無限制擴展
4、為當前用戶指定表空間
alter user lv default tablespace lv;
5、修改當前字符集為簡體中文
alter session set nls_language = 'SIMPLIFIED CHINESE';
6、創建表
create table person(
name varchar2(10),
gender char(2),
age number(3),
birthday date,
sal number(7,2)
);
7、查看表結構
desc person
8、插入資料(默認不會自動提交事物)
insert into person values('張三','男',20,'7-6月-1990',5000);
9、提交事物
commit;
10、匯入檔案
@檔案路徑 檔案名
11、查詢資料
select name from person where birthday = '7-6月-1990';
// to_char 日期函式(查詢時盡量使用)
select name from person where to_char(birthday,'yyyy-mm-dd') = '1990-06-07';
與mysql比較
mysql 是以資料庫為單位的
oracle 是以用戶未單位的
oracl對字符大小寫敏感
主鍵策略
mysql主鍵是int型別,自動遞增
Oracle資料庫沒有主鍵自動遞增(沒有這個功能)
序列:是oracle提供的用于產生一系列唯一數字的資料庫物件,主要用于提供主鍵值,一般在插入時使用
創建序列
create sequence seq_person start with 100 increment by 1;
插入資料
insert into person(id,name,gender,age,sal)
values(
SEQ_PERSON.NEXTVAL,'王五','女',18,2000
);
偽列與偽表:
偽表:dual,用于計算或進行函式的測驗(大多數用于PL/SQL編程)
select 1 + 2 from dual;
select sysdate,to_char(sysdate,'yyyy-mm-dd HH24:mm:ss')from dual;
偽列:
ROWID:是一種資料型別,唯一標識一條記錄物理位置的一個id,一般用不到,絕對不會重復,
ROWNUM:查詢結果自增編號
select person.*,rownum from person
分頁查詢
Oracle分頁查詢(子回圈,嵌套查詢):
select *from person where rownum <= 3;
select t2.* from
(select t1.*,rownum as rn from employees t1 where 1=1 and rownum <= 當前頁*每頁顯示的記錄數)t2
where t2.rn > (當前頁-1)*每頁顯示的記錄數;
Mysql分頁查詢:
select * from person limit ((當前頁-1)*每頁顯示的記錄數 + 1),每頁顯示的記錄數;
select *from person limit 1,3;
主鍵裂縫(主鍵永遠不會重復)解決方法
oracal rownumber
jstl標簽庫(c:foreach)
jquery 遍歷for回圈
Oracle JDBC
public class JDBCOracleTest {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
//com.mysql.jdbc.Driver
Class.forName("oracle.jdbc.driver.OracleDriver");
//jdbc:mysql://localhost:3306/資料庫名
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","lv","orcl123");
if(conn != null) {
System.out.println("oracle連接成功...");
}
String sql = "insert into person(id,name,gender,age,birthday,sal)"
+ "values(seq_person.nextval,'趙六','女',25,'24/10月/2000',3000)";
stmt = conn.createStatement();
stmt.executeUpdate(sql);
System.out.println("資料插入成功...");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/194576.html
標籤:python
上一篇:域名可以系結埠嗎?
下一篇:【資料結構——樹與二叉樹】
