1. 程式人生 > >Oracle學習之路,佛系更新

Oracle學習之路,佛系更新

utf 數位 efault 小數 into 顯示轉換 oracle學習 管理 刪除列

一、卸載安裝(來自百度經驗)

完全卸載:

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中,所有的空值運算之後都為空

Nvlcomm,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 ornot

排序關鍵字:order by asc 升序 為默認排序可以省略 desc 降序

九、函數

單行函數:只對一行數據影響的函數叫單行函數

單行函數:字符、數值、日期、轉換、通用

字符函數:lower 將字符轉換為小寫;upper 將字符轉換為大寫

instr(列,str1) 查詢字符 str1在列中的字符

--concat 連接 將兩個字符連接 類似於||

select concat(ename,job) from emp

--length 返回字符串的長度

select lengthename) from emp

數值函數:

--dual 這個表沒有具體的數據,只是在查詢的時候,我們查詢的格式為 select from 表名,當不需要用到表而用到查詢結構的時候用dual占位

Turnc() 數字截斷

round()四舍五入

mod() 求余

日期函數: sysdate 分為日期和時間

Months_between 獲得兩者之間的月份數

--獲得1987/4/191981/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代表日 hhmiss

--插入一條數據到數據庫表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,返回值)

Oracle學習之路,佛系更新