一、卸載安裝(來自百度經驗) 完全卸載: 1. 停止相關服務 2. 運行Universal Installer,卸載產品 3. 清理註冊表 4. 重啟電腦,刪除目錄(Oracle文件夾和app文件夾) 安裝: 1. 運行setup.exe 2.取消勾選“接收安全更新”選項 3. 選擇創建和配置資料庫 ...
一、卸載安裝(來自百度經驗)
完全卸載:
1. 停止相關服務
2. 運行Universal Installer,卸載產品
3. 清理註冊表
4. 重啟電腦,刪除目錄(Oracle文件夾和app文件夾)
安裝:
1. 運行setup.exe
2.取消勾選“接收安全更新”選項
3. 選擇創建和配置資料庫
4. 桌面類
5. 企業版
6. 使用utf-8字元集
7. 口令管理,將Scott解鎖,設置密碼tiger
打開sql plus用設置好的賬戶登錄測試一下
二、配置
1. 確保服務(service和listener)開啟
2. 打開Net Manager配置listener和Oracle主目錄
3. 打開net configuration assistant配置監聽程式和本地網路服務名配置
三、配置PLSQL
1. tools-->preferences Oracle Home:Oracle主目錄
2. 查看主目錄/network/admin/下是否有tnsnames.ora文件和listener.ora
問題彙總:TNS無法解析制定的連接符標識https://www.cnblogs.com/justlove/p/8252779.html
可以試著把主機名改為本電腦名
四、SQL資料庫用戶操作語句
新建用戶:create user [username] identified by [password]
分配表空間:alter user [username] default tablespace users temporary tablespace temp profile default
新建用戶同時分配表空間:create user zhangsan identified by 123456 default tablespace users temporary tablespace temp profile default
賦予許可權:grant connect to zhangsan; grant resource to zhangsan; 給查詢許可權:grant select on emp to zhangsan;
一次賦予多種許可權用逗號隔開,如: grant connect,resource to zhangsan
刪除用戶:drop user zhangsan
去除許可權:revoke connect from zhangsan
修改用戶密碼:alter user zhangsan identified by newpassword
鎖定用戶:alter user zhangsan account lock
五、Oracle中的數據類型
number(10)表示數字類型,長度為10
number(5,2)表示總長度為5,小數位占其中的2位
char(10)字元型,最多放2000個字元
varchar()或者varchar2()可變長度字元,最多放4000個字元
date日期類型,系統預設日期格式:2-3月-2019
timestamp日期精確到毫秒
blob大數據,存儲二進位數據,最大4G
六、SQL表操作語句
創建表:
create table student(
sid number(10),
sname varchar(20),
cid number(10),
......
)
修改表:
追加列:alter table student add(sex varchar(5))
修改列:alter table student modify(sname varchar(15))
刪除列:alter table student drop column sex
修改列名:alter table student rename column sex to gender
修改表名:rename student to students
刪除表:drop table student
約束 分為列級約束和表級約束
種類:主鍵primary key、唯一unique、非空not null、外鍵foreign key references、檢查check
添加列級約束:
create table student(
sid number(10) primary key,
sname varchar(20) not null,
cid number(10) references class,
......
)
添加表級約束:
create table student(
sid number(10) ,
sname varchar(20) ,
cid number(10) ,
......
constraint student_sid_pk primary key(sid),
constraint student_cid_fk foreign key(cid) references class(cid),
......
)
或者alter table add constraint ...
七、數據處理
Crete table 表名
As
Select * from 表名
創建一個表,並將查詢出來的數據插入到新的表中
去掉數據複製表結構
Create table 表名
As
Select * from 表名
Where 添加一個沒有結果的條件 empno=null
八、查詢語句
||連接查詢結果
在sql中,所有的空值運算之後都為空
Nvl(comm,0)空值處理
Nvl處理空值 第一個參數為列,第二參數表示為如果列中的值為空,用0來代替
去掉重覆 關鍵字:distinct
在sql語句中,字元、日期都必須用單引號引起來
數值的比較,字元串的比較,日期的比較,between…and….(在兩者之間,包含兩個邊界),like(_,%)(模糊查詢,關鍵字查詢),in(匹配查詢)
Is null表示空 is not null 表示非空
Between。。and。。格式: select * from 表明 where 列明 between XX and XX
比較符:> < >= <= !=或<> = sql中的賦值符號: := 賦值符號
邏輯運算符: and 與 or或 not非
排序關鍵字:order by asc 升序 為預設排序可以省略 desc 降序
九、函數
單行函數:只對一行數據影響的函數叫單行函數
單行函數:字元、數值、日期、轉換、通用
字元函數:lower 將字元轉換為小寫;upper 將字元轉換為大寫
instr(列,str1) 查詢字元 str1在列中的字元
--concat 連接 將兩個字元連接 類似於||
select concat(ename,job) from emp
--length 返回字元串的長度
select length(ename) from emp
數值函數:
--dual 這個表沒有具體的數據,只是在查詢的時候,我們查詢的格式為 select 列 from 表名,當不需要用到表而用到查詢結構的時候用dual占位
Turnc() 數字截斷
round()四捨五入
mod() 求餘
日期函數: sysdate 分為日期和時間
Months_between 獲得兩者之間的月份數
--獲得1987/4/19到1981/2/20這個日期間的月份差
select months_between('19-4月-1987','19-4月-1981') from dual
add_months 向指定的日期中添加若幹月份
last_day 獲得本月的最後一天
round (日期,年/月/日) 日期同樣有四捨五入
trunc 日期的截斷
轉換函數: 分為兩種形式:隱式轉換 顯示轉換
隱式轉換:自動類型轉換
顯示轉換:對數據用方法進行轉換
To_char 轉換為字元
To_number 轉換為數字
To_date 轉換為日期
To_char(date\number,’字元格式’)
將日期轉換為字元串 to_char(sysdate,’yyyy-mm-dd’);
將數字轉換為字元串 to_char(sal,’00000.00或者9999.99’);
格式中的9的位數,一定要大於等於要轉換的數字的位數
如果是貨幣可以在前面加上$或者L(本地貨幣)為字元串
To_date(‘字元’,‘日期格式’)
yyyy 代表年 mm代表月 dd代表日 hh時 mi分 ss秒
--插入一條數據到資料庫表emp 將日期轉換為指定格式
insert into emp values(7856,'lisi','SALESMAN',7698,to_date('1982-12-12','yyyy-mm-dd'),6000,200,10)
To_number(‘字元’,’數字格式’)
--將¥1234.55轉換為數字
select to_number('¥1234.55','L999999999.000') from dual
如果字元含有貨幣符號,那麼格式中也必須有貨幣符號
通用函數:
Nvl(參數1,參數2)處理空值
Nvl2(參數1,參數2,參數3) 參數1列中的數據,如果不為空執行參數2,如果為空執行參數3
Case 參數 when 列值 then 返回數據
[when 列值2 then 返回數據2
。。。。。]
Else 返回數據
End [別名]
通過每一列查出的值作為參數匹配when後面的值,入果匹配上了則返回then後面的值,如果都沒匹配上 則返回else中的值,整個函數只是一列
Decode(參數,列值1,返回值1,列值2,返回值2,列值3,返回值3,返回值)