oracle:sql
一款關係型(二維表)數據庫,能夠用來存儲海量數據。在大數據量併發檢索的狀況下,性能要高於其餘的同類數據庫產品。通常運行環境是Linux和Unix操做系統上!數據庫
目前最流行的商業數據庫,主流版本9i(Internet) 10/11g(grid) 12c(Cloud)微信
數據庫用戶:網絡
Sys:超級管理員 (不容許用normal方式登陸,只能用Sysdba和sysoper身份登陸)併發
System:普通管理員(只能用normal登陸,不能用Sysdba和sysoper身份登陸)oracle
Scott:普通用戶app
超級管理員和普通管理員均可以創建用戶和對用戶進行受權操做數據庫設計
鏈接數據庫:ide
SQL*Plus方式鏈接 工具
sqlplus ssss/ssss@orce1(多個數據庫的方式)
sqlplus ssss/ssss(單個數據庫的方式)
PL/SQL Developer方式鏈接
EM(Enterprise )
動軟代碼生成器
將本身PC上的Oracle服務公佈到局域網。
1:找Oracle安裝目錄----->配置和移植工具------>Net Manager工具,點開的是本地---->監聽程序---->將localhost改爲本機IP:如(192.168.16.6)。而後點擊保存網絡配置。
有個小的隱式規則:自動將IP轉成本機的計算機名稱,保存到app/Happy(用戶名)/product/11.2.0/dbhome_1/NETWORK/ADMIN/listener.ora文件的對應的節點處。
下次你打開Net Manager的時候,你會發現Oracle會讀取對應的配置文件,讀出來的是計算機名稱。
2.從新配置監聽
解析:找Oracle安裝目錄----->配置和移植工具------>Net Configuration Assistent---->從新配置監聽
3.關閉本機的防火牆或添加入站規則!
數據庫操做:
01.查詢某個用戶下全部的表
這裏SCOTT必須是大寫!
Rowid:在內存中構建一列不會斷裂的自增值。
Oracle數據庫忘記密碼解決方案:
1.
2.alter user system identified by 新密碼;
解鎖用戶
alter user scott account unlock;
3.切換用戶
SQL>conn scott/新密碼
角色和權限:
Oracle包括兩大類權限(Privileges),一種是系統權限,另一種是對象權限。
CONNECT角色: --是授予最終用戶的典型權利,最基本的
CREATE SESSION --創建會話
RESOURCE角色: --是授予開發人員的
CREATE CLUSTER --創建聚簇
CREATE PROCEDURE --創建過程
CREATE SEQUENCE --創建序列
CREATE TABLE --建表
CREATE TRIGGER --創建觸發器
CREATE TYPE --創建類型
CREATE OPERATOR --建立操做者
CREATE INDEXTYPE --建立索引類型
CREATE TABLE --建立表
經常使用數據類型:
Oracle CHAR,VARCHAR,VARCHAR2類型的區別與使用
區別:
1.CHAR的長度是固定的,而VARCHAR2的長度是能夠變化的, 好比,存儲字符串「abc",對於CHAR
(20),表示你存儲的字符將佔20個字節(包括17個空字符),而一樣的VARCHAR2
(20)則只佔用3個字節的長度,20只是最大值,當你存儲的字符小於20時,按實際長度存儲。
2.CHAR的效率比VARCHAR2的效率稍高。
3.目前VARCHAR是VARCHAR2的同義詞。工業標準的VARCHAR類型能夠存儲空字符串,可是oracle不這樣作,儘管它保留以
後這樣作的權利。Oracle本身開發了一個數據類型VARCHAR2,這個類型不是一個標準的VARCHAR,它將在數據庫中varchar列能夠存儲
空字符串的特性改成存儲NULL值。若是你想有向後兼容的能力,Oracle建議使用VARCHAR2而不是VARCHAR。
什麼時候該用CHAR,什麼時候該用varchar2?
CHAR與VARCHAR2是一對矛盾的統一體,二者是互補的關係.
VARCHAR2比CHAR節省空間,在效率上比CHAR會稍微差一些,即要想得到效率,就必須犧牲必定的空間,這也就是咱們在數據庫設計上常說的‘以空間換效率’。
VARCHAR2雖然比CHAR節省空間,可是若是一個VARCHAR2列常常被修改,並且每次被修改的數據的長度不一樣,這會引發‘行遷移’
(Row
Migration)現象,而這形成多餘的I/O,是數據庫設計和調整中要盡力避免的,在這種狀況下用CHAR代替VARCHAR2會更好一些。
SQL-99標準中有五種對數據庫的操做
DDL(Data Definition Language)數據定義語言:create database/table/view/sequence
DML(Data Manipulation Language):數據操做語言:insert/update/delete
TCL:(Transaction Control Language):事務控制語言:begin Transction Save point commit rollback
DQL(Data Query Language):數據查詢語言:select
DCL(Data Contrl Language):數據控制語言:grant(受權) /revoke(取消、收回權限)
SQLPlus下常見命令操做:
*清屏
*註釋
*查看當前用戶
*當前用戶下的表
解析: 在10g中bin開頭表示已經刪除的放在回收站的表,oracle在刪除表時並無完全的刪除,而是把表放入回收站!purge recyclebin清空回收站便可。
用來刪除指定的表
SQL> PURGE TABLE TABLE_NAME
*查看錶結構
*設置行和列的格式
*dual說明
*|| 鏈接
*表名爲關鍵字問題
若是在ORACLE的SQL中包含關鍵字,可能會提示錯誤
例如:
select * from user where number=10;
因爲number是關鍵字,執行SQL的時候會報錯
所以能夠修改成
select * from user where "number"=10;便可(這裏是雙引號,不是兩個單引號)
*模糊查詢中,查詢內容爲通配符」_和%」,如何書寫查詢語句
Like ‘%\_%’ escape=’\’
*關於where的優化問題
解析:where 條件1 and 條件2 解析的時候從右至左解析
*關於使用order by 多列排序問題
解析:order by 列1,列2 desc ,那麼desc只做用域第二列
*關於null值排序的問題
添加列
ALTER TABLE teacher
ADD (hiredate DATE,--入職日期
sal NUMBER(7,2),wechat VARCHAR2(20)); --薪水 、微信
修改列
ALTER TABLE teacher MODIFY (tname VARCHAR2(30));
刪除列
ALTER TABLE teacher DROP COLUMN wechat; --刪除wechat列