Oracle資料庫操作---入門(一)

来源:https://www.cnblogs.com/SpaceKiller/archive/2019/03/21/10569203.html
-Advertisement-
Play Games

由於工作原因,近期可能會開始多複習一些資料庫相關的知識了,想深入瞭解的,也可以一起複習.學習~ 前期先鞏固一下基礎操作,後期會一點點的加深向運維方向深入。開篇主要介紹一些資料庫理論知識,不感興趣的可以向後翻閱;如果你是開發人員可以簡單看看基礎就夠了。廢話不多說,開始我們的學習吧! 資料庫版本Orac ...


        由於工作原因,近期可能會開始多複習一些資料庫相關的知識了,想深入瞭解的,也可以一起複習.學習~

        前期先鞏固一下基礎操作,後期會一點點的加深向運維方向深入。開篇主要介紹一些資料庫理論知識,不感興趣的可以向後翻閱;如果你是開發人員可以簡單看看基礎就夠了。廢話不多說,開始我們的學習吧!

資料庫版本Oracle 11g

Oracle 11g提供了多種資料庫管理工具,SQL*PLUS、OEM(企業管理器)、DCA(資料庫配置助手),本次複習對資料庫操作使用的是SQL*PLUS,其實用什麼無所謂,主要是學會使用就好了,繼續吧~

要使用好Oracle,我覺得應該先瞭解一下它:

一》 開篇--Oracle介紹

Oracle官網鏈接:https://www.oracle.com/index.html

①Oracle是著名的Oracle(甲骨文)公司的資料庫產品,Oracle屬於關係型資料庫的一種,

常見的關係型資料庫還包括MySQL、SQL Server、DB2;

非關係型資料庫:NoSQL、MangoDB、Memcache、Redis等等

②那麼什麼是關係型資料庫呢?就是建立在關係模型基礎上的資料庫。簡單理解就是將現實中各個實體(事物)及其之間的各種聯繫,通過數學概念和方法進行處理,以關係模型進行展現。

③資料庫的E-R模型,說到模型就要提到關係型資料庫設計了,設計之初首先要建立邏輯模型。

關係型資料庫的邏輯模型可以通過實體(事物)和實體關係組成的圖形來表示,也就是常用的E-R圖,E-R圖表示的邏輯模型就是E-R模型。標準的E-R模型主要由三部分組成:實體、屬性和聯繫。而這三部分也正是我們在項目開發中,資料庫設計階段需要深入研究和合理設計數據表的重要三部分。

想要朝著項目經理方向發展的小伙伴,對於項目中資料庫的設計還是需要深一步的瞭解的,這方面還是要通過實踐去多加鍛煉的。建議:自己模擬一些場景進行設計練習

 二》設計範式

關係型資料庫的設計範式有第一範式、第二範式、……第六範式、BCNF範式等等,通常的資料庫滿足前三種範式就足夠了。任何關係型資料庫都應該滿足第一範式,不滿足的資料庫,則不是關係型資料庫。在關係型資料庫中,一般稱一行數據為一個元組,而列表示的是屬性,第一範式是第二、第三範式的基礎;;

第一範式:資料庫表的每一列都是不可分割的原子數據項,也就是說,實體中的某個屬性有多個值時,必須拆分為不同的屬性;

                  比如:班級:電腦系3班,這種就需要再進行數據拆分;

第二範式:要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性

                 比如:員工工資表,以員工編號、崗位為複合主鍵,屬性還有姓名、年齡、學歷、基本工資、績效工資、獎金;

                         這種情況下,員工編號決定的是姓名、年齡和學歷,而基本工資是由崗位決定的,不符合第二範式的要求。

                一般設計表時,可以設計成三張表:員工管理表、崗位工資表、員工工資表,這樣就可以了;

第三範式:任何非主屬性不依賴於其它非主屬性(在第二範式基礎上消除傳遞依賴)

                傳遞依賴就是如果存在關鍵欄位A決定非關鍵欄位B,而非關鍵欄位B決定非關鍵欄位C,則稱非關鍵欄位C傳遞依賴於關鍵欄位A。

              比如:員工編號→員工姓名、年齡、部門編號、部門經理;

                    這種情況下,員工編號決定部門編號,而部門編號決定部門經理;不符合第三範式

                   處理方式就是拆分表格:員工信息表和部門信息表;

        一般我們使用的大部分都只是滿足前三種範式,後幾種有感興趣的可以自行查閱,這裡不再細說;我們進行資料庫設計時,都希望能夠消除數據冗餘、更新異常、插入異常和刪除異常,那就需要我們按照“規範化”的原則去存儲數據。

三》資料庫基本操作

Oralce操作類型中一共分為DDL(數據定義語言)、DML(數據操縱語言)、TCL(事務控制語言)、DQL(數據查詢語言)、DCL(數據控制語言)

① DDL給我的個人感覺是有全局眼光的領導層語言;為啥這樣形容呢?它主要用於建立、修改、刪除資料庫對象,面向的對象不是條條的數據,而是整個資料庫或者數據表。在資料庫中刪表刪庫的操作是屬於DDL的,作為程式員的你值得好好關註,不為了去實施這些操作,但多瞭解一些總沒有壞處。

   Create: 創建表或其他對象結構 

   Alter:修改表或其它對象結構

   Drop:刪除表或者其他對象結構

   Truncate:刪除表數據,保留表結構

② DML追究完美做到極致的技術人員;用於改變數據表中的每條數據;他和事務是好兄弟,一般執行完後需要經過事務控制語句提交後才真正的將改變應用到資料庫中

         Insert :將數據插入到數據表中

         Update:更新數據表中已經存在的數據

    Delete:刪除數據表中的數據

③TCL 用於維護數據一致性的語句(事務後面會詳細談一下,這個是資料庫比較重要的部分)

        Commit:提交,確認已經進行的數據改變

        RollBack:回滾,取消已經進行的數據改變

        SavePoint:保存點,使當前的事務可以回退到指定的保存點,便於取消部分改變

④DQL 用於查詢數據   Select (開發最常用的)

⑤DCL 用於執行許可權的授予和收回操作  (DBA的日常工作,開發者用不到)

   GRANT:授予,用於給用戶或角色授予許可權

   Revoke:用於收回用戶或角色已有的許可權

        Create User 創建用戶

先到這裡吧!下一篇開始SQL語句的複習~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [20190321]smem的顯示缺陷.txt1.smem 加入-m參數顯示存在缺陷,map的信息不全:# smem -tk -m -U oracle -P "oraclepeis|ora_"Map PIDs AVGPSS PSS/u01/app/oracle/product/10.2.0/db_1 ...
  • (註:第一次寫,如有錯誤之處,希望指出,不勝感激,謝謝,不喜也勿噴) 一.MYSQL簡單描述 1.MYSQL是什麼? MYSQL是現在最流行的關係型資料庫管理系統之一; MYSQL是開源軟體; MYSQL是現在最流行的關係型資料庫管理系統之一; MYSQL是開源軟體; 關係型資料庫? 註:所謂關係型 ...
  • 最近加入一個Spark項目,作為臨時的開發人員協助進行開發工作。該項目中不存在測試的概念,開發人員按需求進行編碼工作後,直接向生產系統部署,再由需求的提出者在生產系統檢驗程式運行結果的正確性。在這種原始的工作方式下,產品經理和開發人員總是在生產系統驗證自己的需求、代碼。可以想見,各種直接交給用戶的錯 ...
  • 創建方式一: create [public] database link link名稱 connect to 對方資料庫用戶identified by 對方資料庫用戶密碼 using '對方資料庫ip:埠/服務名'; 創建方式二: create [public] database link lin ...
  • 正文 Oracle Data Pump(以下簡稱數據泵)是Oracle 10g開始提供的一種數據遷移工具,同時也被廣大DBA用來作為資料庫的邏輯備份工具和體量較小的數據遷移工具。與傳統的數據導出/導入工具,即 exp/imp 工具相比,數據泵更為高效和安全,數據泵主要包含以下三個部分: 1. 操作系 ...
  • 分區的概念 數據分區是一種物理資料庫的設計技術,它的目的是為了在特定的SQL操作中減少數據讀寫的總量以縮減響應時間。 分區並不是生成新的數據表,而是將表的數據均衡分攤到不同的硬碟,系統或是不同伺服器存儲介子中,實際上還是一張表。另外,分區可以做到將表的數據均衡到不同的地方,提高數據檢索的效率,降低數 ...
  • 因為這兩天在做將springboot 項目使用的資料庫MySQL轉換為Oracle資料庫,所以在網上查找相關資料後開始使用 Convert-Mysql-to-Oracle4.0做轉換; 但是在連接oracle資料庫時候始終報錯:Cannot load ocl.dll library(error co ...
  • 在項目運行的過程中,死鎖不可能完全避免,但要儘可能減少死鎖的出現, 產生死鎖的原因主要是: 1,系統資源不足。 2,進程運行推進的順序不合適。 3,資源分配不當等。 產生死鎖的四個必要條件:- 互斥條件:一個資源每次只能被一個進程使用,即在一段時間內某資源僅為一個進程所占有。此時若有其他進程請求該資 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...