關於學習Oracle資料庫的總結(1)

關於學習Oracle資料庫的總結(1)

1 人贊了文章

關於Oracle資料庫:

ORACLE資料庫系統是美國ORACLE公司(甲骨文)提供的以分散式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S體系結構的資料庫之一。一般用於大型企業,具有數據安全性強和穩定性強的特點。

基礎知識總結:

1、創建表空間:

create tablespace Jss -- Jss是表空間的名字datafile F:dataspacejss.dbf -- 表空間文件的路徑size 20M -- 表空間文件的初始大小autoextend on; -- 自動擴展,如果容量不夠的話,則自動加

2、刪除表空間

drop tablespace jss including contents and datafiles; -- jss是表空間的名字

注意:千萬不能手動的去到路徑下刪除「***.dbf」文件,否則會導致orcl無法正常啟動。

解決思路:刪除文件了里相關的dmp關聯。

3、創建和刪除用戶

create user lin -- 用戶名identified by 1234 -- 密碼default tablespace jss -- 對應的表空間temporary tablespace temp ; -- 臨時表空間drop user jss; --刪除用戶

4、用戶的加鎖和解鎖

alter user jss account lock; -- 給用戶加鎖alter user jss account unlock; -- 給用戶解鎖

在安裝完Oracle資料庫的時候,scott等用戶是默認被加鎖的,需要以sysdba用戶登錄,為其他用戶解鎖。

5、賦予和回收用戶許可權

-- 連接許可權grant connect to jss;-- 如果 jss 有連接許可權,可以指定給 admin 賬戶grant connect to jss with admin option;-- 如果想要放大許可權的話,可以指定 DBA 許可權給它grant dba to jss with admin option;-- 收回許可權revoke connect from jss; -- 回收連接許可權revoke dba from jss; -- 回收dba許可權

註:dba許可權是Oracle的最大許可權,這個許可權可以做所有的操作。

6、創建和刪除表

create table tb_user ( -- tb_user 是表名 name varchar(50), -- name,age,sex是這個表的欄位,一個欄位代表一列 age int, sex char(4));-- 刪除有兩種方式:drop 和 truncate-- drop:刪除表,把整個表都給幹掉,找不回來drop table tb_user; -- tb_user 是表名-- truncate:截斷表,只會把表中的數據清空,表還會在truncate table tb_user;

註:使用「truncatetable tb_user;」表格里的數據被清空,存儲空間被釋放。

運行後會自動提交,包括之前其它未提交的會話,因而一旦清空無法回退。

只有表格的創建者或者其他擁有刪除任意表格許可權的用戶(如DBA)才能清空表格。

7、對錶的修改操作

-- 給表增加多兩列:address、phonealter table tb_user add(address varchar(100), phone varchar(50));-- 刪掉多餘的列alter table tb_user drop(phone);-- 修改列的長度alter table tb_user modify(address varchar(80));-- 修改表名rename tb_user to tb_person;

8、在表中插入數據

-- 給 tb_user 表插入數據-- 如果只是指定部分值的話,必須要指定對應的列名insert into tb_user(name, age, sex)values (Jss, 18, );-- 當沒有指定部分值的話,默認是全部的值,也就是說在values()中要傳入表中全部列名對應的數據insert into tb_uservalues (Jss, 18, );

注意:-如果我們在當前用戶下提交數據的時候,只能當前用戶訪問的到。其他用戶如果也想訪問的話,需要我們進行「提交」,也就是寫語句「commit」,然後運行提交。如果沒有提交,數據相當於是在緩存中,並沒有保存到物理文件中。

9、更新數據

update tb_user -- 更改表tb_userset age = 20 -- 把年齡改成20where name = Jss; --篩選name為『jss』的行--總的意思是:在表tb_user中篩選name為『jss』的行,然後把年齡改成20update tb_userset name = 小翠花, sex = -- 也可以同時修改兩列where name = 翠花;-- and 同時滿足兩個條件-- or 只要滿足其中一個條件即可update tb_userset age = 20where sex = and name = 春花; --篩選name為『春花』並且sex為『男』的行update tb_userset age = 20where sex = or name = 春花; --篩選name為『春花』或者sex為『男』的行-- 刪除 Jss 數據delete from tb_user where name = Jss;

注意:delete只刪除一行數據,也需要「commit」命令。alter 是用來修改表的結構,如果要修改表中的數據,需要使用 update 。

10、簡單的查詢語句

-- like 模糊查詢-- %值%:包含指定的值-- %值:以指定值結尾的-- 值%:以指定值開頭的-- _值:第二是指定的字元select * from scott.emp where ename like %A%;select * from scott.emp where ename like %H;select * from scott.emp where ename like A%;select * from scott.emp where ename like _A%;-- 不包含值,包含2000到3000的數值,不包括2000和3000select * from scott.emp where sal > 2000 and sal < 3000;-- 包含值,包含2000到3000的數值,包括2000和3000select * from scott.emp where sal between 2000 and 3000;-- or,篩選deptno等於10或者20或者30的行select * from scott.emp where deptno = 20 or deptno = 30 or deptno = 10;-- in 相當於一堆 or ,只要有括弧中的值的行就被選中select * from scott.emp where deptno in(20, 30, 10);-- 排序:order by-- asc 升序,默認可以不寫-- desc 降序-- 工資少到多 升序select * from scott.emp order by sal asc;-- 工資多到少 降序select * from scott.emp order by sal desc;

推薦閱讀:

【87資料庫】獨家:SteamVR月度報告(2017年2月)
研究人員發布表觀基因組資料庫MethBank 3.0
.三大檢索工具及相關資料庫介紹
資料庫查詢引擎的進化之路
用Python定時查詢MySQL資料庫並存儲到Excel中

TAG:Oracle資料庫 | SQL | 資料庫 |