詳解SQL與PL/SQL

2021-02-20 煉數成金前沿推薦

課程介紹:

本課程前身是《劍破冰山之Oracle開發》。在結合前兩期教學的體驗與學員反饋,並保持前兩期SQL部分精講的基礎上,對PL/SQL部分做了大幅調整,總體修訂幅度達到30%!本期重新梳理了PL/SQL講解體系,並將開發中使用最頻繁的知識點予以講解,使學員在完成學習之後,對資料庫開發能更加得心應手!      長久以來,資料庫開發常常被人忽視,Oracle都處於「重管理,輕開發」的境地,很多人認為有性能問題請DBA去調優一下不就行了?久而久之,大多數人認為Oracle開發就是select 、insert之類的DML語句最多再有點集合操作外加觸發器、函數之類的存儲過程,但這就好像冰山一樣,粗略的一看,只是看到冰山露出水面的尖角而已。而我們知道,冰山在水面下的部分,遠比其水面上的部分要巨大得多。

我們所熟悉的ISO-9000告訴我們,質量是生產出來的,不是檢測出來的,同樣,高質量的SQL應該是開發寫出來的,而不應總是通過DBA去調優出來。更何況能優化的SQL實際上是有限的。如果我們能做到預防為主,開發時就寫出高質量的SQL,那後續請DBA調優的成本不就可以省去不少了麼?如此一來,作為資料庫開發者的你,價值自然而然就體現出來了。

不要擔心這個職位的前景,目前在一些大公司及跨國企業裡,資料庫開發已經是一個專職崗位了,而在其他公司裡,無論是普通程式設計師還是DBA,擁有這些開發知識的你將比別人有更多的競爭力。

那如何學好Oracle開發呢?這就像是想要探究水面下的冰山,其中之一的方法就是分而治之,夯實基礎後再深入研究。本課程將從基礎開始,覆蓋Oracle開發中大多數內容並重點講述其中共性的內容,是為準備進入Oracle開發領域的同學量身定製的一份服務。在本課程學習完畢後,你將掌握用SQL或PL/SQL處理問題的基本能力,為下一步更深入的學習Oracle開發打下良好的基礎。同時,如果你開發用的語言主要是如Java、PHP等,學習完本課程不僅能提高你的SQL水平,還將會大大拓寬你的思路,讓你在處理問題時又更多一種有效的處理手段。

   

內容大綱:

本課程整體難度為初中級,部分內容較高級也實用,課程基於Oracle 11.2進行講解,課程內容如下:

第1課          資料庫開發概述

第2課          SQL入門

第3課          最常用的SELECT

第4課          SQL之普通函數篇

第5課          SQL之分析函數篇

第6課          正則表達式

第7課          SQL之統計

第8課          SQL之層次查詢(樹狀查詢)

第9課          PL/SQL入門

第10課        函數和過程

第11課        嵌套子程序和包

第12課        觸發器

第13課        靜態SQL與動態SQL

第14課        記錄與集合

第15課        批量處理

第16課        錯誤處理

第17課        Oracle開發中bug的識別與處理技巧

第18課        精彩案例

授課時間:

課程持續時間大約為20周。課程將於2016年9月9日開始。

授課對象:

你只需要具備任意一門開發語言的編程基礎便可參與本課程的學習。如果能具備較好的數學素質就更好了。

學員需在本地預裝好Oracle 11g資料庫,版本最好為11.2.0.1或以上。

收穫預期:

具備中級Oracle開發能力,可以勝任資料庫開發相關崗位

授課講師:

懷曉明先生(網名lastwinner),是具有多年資料庫開發與項目管理經驗的資料庫專家。此大師興趣廣泛,視野廣闊,目前專注於移動網際網路領域內低成本高成效的系統架構設計實施與團隊管理。他知識面廣博,是一個細心敏銳的TroubleShooter,善於輔以搜索去處理解決各類問題,包括陌生領域的問題。曾獲得第一屆ITPUB最佳建議獎,在多個大型IT企業多年的工作歷練中,積累了豐富的系統架構設計經驗,擅長資料庫和Web的設計、開發,精於故障診斷與處理,具有豐富的省部級電子政務行業工作經驗及項目管理經驗。合著作品有《劍破冰山——ORACLE開發藝術》、 《Oracle DBA手記2》。

《詳解SQL與PL/SQL》由ITPUB版主懷曉明老師親授!通過課程學習可以掌握用SQL或PL/SQL處理問題的基本能力,為下一步更深入的學習Oracle開發打下良好的基礎。點擊下方二維碼查看課程詳情


相關焦點

  • PL/SQL是啥?
    程序結構模板declare  /* 聲明區(可選):定義類型和變量、聲明變量、聲明函數、遊標 */  begin  /* 執行區(必須的):執行pl/sql語句或者sql語句 */  exception  /* 異常處理區
  • PL/SQL developer工具的使用之談
    Version 9.0.5.1648可以看到sql window快捷關閉無效,建議還是不要用這麼老的版本Version 11.0.3.1770tablespace那不能索引view sql那索引不顯示錶空間,並且多了nologging,但實際索引是logging的
  • 【趙強老師】什麼是PL/SQL?
    PL/SQL(Procedure Language/SQL)是oracle在標準的sql語言上的擴展。ql/sql不僅允許嵌入sql語言,還可以定義變量和常量,允許私用條件語句和循環語句,允許使用例外處理各種錯誤,這使得它的功能變得更加強大。PL/SQL開發工具主要有:SQL*PLUS開發工具。
  • 如何解決PL/SQL中文亂碼問題
    打開PL/SQL執行sql語句,中文顯示亂碼??? 如何解決上述問題,辦法如下: 1)輸入sql語句select userenv('language') from dual 按下F8執行語句,查看資料庫字符集; 2)輸入sql語句select * from V$NLS_PARAMETERS查看本地字符集;
  • Mybatis的sql組裝詳解
    上一篇分析了SqlSession執行sql的過程,其中並沒有分析sql是從哪裡來的,今天就來仔細分析下。Sql來源從上一篇的最後一步執行sql那裡倒推sql的來源,源碼主要過程如下圖:可以看到最後是通過BoundSql直接獲取的sql,然後往前倒推最後發現是通過MappedStatement的getBoundSql方法返回的。
  • SQL注入攻擊詳解
    還有通過sql語句注入來獲取隱私信息,所以sql注入需要引起程式設計師們的注意。 6、預防Sql注入的方法下面我針對JSP,說一下應對方法: (1)(簡單又有效的方法)PreparedStatement 採用預編譯語句集,它內置了處理SQL注入的能力,只要使用它的setXXX方法傳值即可。
  • MyBatis 動態 SQL 詳解(以後寫 SQL 爽多了)
    先來看看第一個動態SQL標籤——if,通過if標籤,我們能夠根據我們傳遞的參數進行動態查詢,比如:根據id查詢員工信息,若是攜帶了哪個參數sql的條件就要帶上這個參數對應的欄位的值。==> Parameters: %c%(String), jack@qq.com(String)因為id為null,所以後面的and被直接拼在了where的後面,此時sql語法就會出錯,為此我們需要使用另一個標籤——where,它能夠完美地解決這一問題。
  • Mybatis中SqlSource解析流程詳解
    前面幾篇文章都在詳細分析mapper的加載過程,但是始終沒有看到sql的解析過程,今天來詳細分析下。解析sql的位置前面分析到不管是通過註解還是通過xml方式生成mapper,最終都是調用MapperBuilderAssistant類的addMappedStatement方法,這個方法接受的其中一個SqlSource參數,SqlSource類中就是XML文件或者註解方法中映射語句的實現
  • SQL 注入攻防入門詳解
    這幾天把sql注入的相關知識整理了下,希望大家多多提意見。(對於sql注入的攻防,我只用過簡單拼接字符串的注入及參數化查詢,可以說沒什麼好經驗,為避免後知後覺的犯下大錯,專門查看大量前輩們的心得,這方面的資料頗多,將其精簡出自己覺得重要的,就成了該文)下面的程序方案是採用 ASP.NET + MSSQL,其他技術在設置上會有少許不同。
  • MySQL sql_mode 說明(及處理一起 sql_mode 引發的問題)
    先 set global sql_mode='' ,讓他們用著先(文後會給解決問題根本的辦法),同時打開general_log看是哪一個用戶有類似設置 sql_mode 命令:12341134456 Query   SET autocommit=11134456 Query   Set sql_mode
  • 手撕SQL | 必知必會5道SQL面試題
    愛數據曉輝 | 作者愛數據學院8月SQL月考題 | 來源附本次sql>表列名含義如下:name:國家名稱continent :該國家屬於哪個洲area:⾯積population:⼈⼝gdp:國內⽣產總值請用sql
  • 巧用SQL:Oracle中實現split相關方法總結
    尚世波從事資料庫方面工作多年,專注於pl/sql開發、資料庫設計、優化方面的研究,喜歡挑戰編輯寄語
  • Sql盲注學習筆記1
    payload='id=0 or if((select ascii(substr(({substr_sql} limit {limit_offset},1),{substr_offset},1))={ascii_num}),1,0)'column_content=''column_contents=[]#通過字典的形式關聯起來 列表中第一個元素表示對應的表的列數
  • SparkSQL操作insert overwrite table到hive慢
    INSERT OVERWRITE TABLE app.table_name PARTITION (dt) | SELECT | id, | name, | class, | dt | FROM tempMonth """.stripMargin sparkSession.sql
  • 適用於初學者和分析師的SQL –使用Python入門SQL
    \ sql_db \ Demo_table.db')cur = conn。遊標()#在資料庫中創建表CUR。\ sql_db \ FOOD.db')cur = conn。遊標()#將數據幀加載到資料庫中df_train。to_sql(「 train」,conn)df_meal。to_sql('meal',conn)df_center。to_sql('centers',conn)現在,資料庫中每個數據框都有三個表。
  • 美團開源 SQL 優化工具 SQLAdvisor,與內部版本保持一致
    上述實現時,涉及的函數為:mysql_sql_parse_join(TABLE_LIST join_table) mysql_sql_parse_join(Item join_condition) ,主要流程圖如下:
  • MyBatis dynamic SQL 1.1.4 發布,生成動態 SQL 的框架
    此版本包含兩項增強功能: 支持在計數、刪除、選擇和更新語句之間共享 where 子句 改進 Kotlin DSL - 刪除了一些引起歧義的擴展方法,並添加了自定義構建器以及一項 bug 修復: 修復了以下錯誤:在子查詢中首先使用限制/偏移/獲取會導致參數名稱衝突完整更新內容可查看:https://github.com/mybatis/mybatis-dynamic-sql
  • 如何用 SQL 的方式打開 Pandas?
    # 導入相關庫import numpy as npimport pandas as pdfrom pandasql import sqldf, load_meat, load_births基礎pandasql 中的主要函數是 sqldf,它接收兩個參數:一個SQL 查詢語句;一組會話/環境變量(locals() 或 globals
  • SQL 中的(+)用法
    今天在代碼review的時候,發現sql中很多 (+)的寫法,看得頭暈,記錄下。對於sql邏輯比較複雜的場景不推薦是有 (+),容易自己暈掉。Oracle sql 中 (+)號可以理解為補充的意思,即哪個表有加號,這個表就是匹配表。
  • sql server 帶列名導出至excel
    =@path+@fnameinsert into #tb exec master..xp_fileexist @sql --資料庫創建語句set @sql=@path+@fnameif exists(select 1 from #tb where a=1)set @constr=』DRIVER={Microsoft Excel Driver