回覆列表
  • 1 # yongxin100

    Sql是結構化查詢語言的縮寫,這門語言與資料庫是息息相關的,所以你要先了解一些基本的資料庫知識,並且在你電腦上安裝個數據庫的實驗環境,比如微軟的access或開源的mysql都是不錯的選擇。在做好這兩個事情之後,可以開始學習、實踐sql了,sql作為一門語言,那就要了解語言的要素,搞清楚裡面關鍵字和語法結構,最基礎的是把增(Insert)、刪(Delete )、查(Select )、改(Update)幾個用熟悉,接著再去搞連結(Join)等高階內容。相信你一定可以的,有問題可以私信問我,加油!!

  • 2 # 嚮往丶生活

    1.什麼是sql

    結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的程式語言,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關係資料庫系統。

    2. 資料檢視與資料模型

    資料抽象共有三個層次:物理層、邏輯層和檢視層。在邏輯層使用的資料模型包括兩類:一類是概念資料模型,主要用於資料庫設計,它能被一般的使用者理解,與人的思維表達方式比較接近。這樣的模型有實體-聯絡模型(ERM);另一類是邏輯資料模型,按計算機系統的觀點對資料建模,使得資料更適合用計算機加以表示。

    3.資料庫語言

    根據功能不同,可以將資料庫系統提供的語言分成三種類型:1)資料定義語言(DDL),用於定義資料庫模式;2)資料操縱語言(DML),用於對資料庫進行查詢和更新;3)資料控制語言(DCL),用於對資料進行許可權管理。

    4.資料庫模式

    根據資料的不同抽象層次,資料庫有三級模式:物理模式(內模式)在物理層描述資料庫中全體儲存結構和存取方法,而邏輯模式(概念模式)則在邏輯層描述資料庫中全體資料的邏輯結構和特徵。在檢視層也可分為若干模式,稱為子模式(外模式),它描述了資料庫使用者能夠看見和使用的區域性資料的邏輯結構和特徵。通常一個數據庫只有一個物理模式和一個邏輯模式,但是子模式有若干個。

    5. E-R圖

    E-R圖由以下元素構成:1)矩形,代表實體型;2)橢圓,代表屬性;3)菱形,代表聯絡;4)線段,將屬性和實體性相連,或將實體型和聯絡相連。

    6.關係模型

    關係模型由關係資料結構、關係操作集合和關係完整性約束三部分構成。在關係模型中,現實世界實體以及實體間的聯絡均用關係來表示。關係模型允許定義三類完整性約束:實體完整性、參照完整性和使用者定義完整性。其中實體完整性和參照完整性是關係模型必須滿足的完整性約束條件。實體完整性規則是:關係的主碼不能取空值。參照完整性規則是:外碼必須是另一個表中主碼的有效值,或者是“空值”。

    7.連線運算

    連線運算是從兩個關係的乘運算結果中選取屬性間滿足一定條件的元組,構成新的關係。連線運算有兩種:等值連線和自然連線。自然連線要求兩個關係中進行比較的分量必須是相同的屬性組,並且在結果中把重複的屬性列去掉。

    8.SQL基本語法

    資料庫建立、表的建立、對錶的增刪查改等。

    9.檢視

    檢視能夠簡化使用者的操作

    檢視是使用者能以多種角度看待同一資料

    檢視對重構資料庫提供了一定程度的邏輯獨立性

    檢視能夠對機密資料提供安全保護

    10.事務

    事務是一系列的資料庫操作,是資料庫應用程式的基本單元,是反映現實世界需要以完整單位提交的一項工作。事務是使用者定義的一個數據庫操作序列。

    事務的四個特徵:原子性、一致性、隔離性和永續性。

    11. 觸發器

    一個觸發器用來定義一個條件以及在該條件為真時需要執行的動作。通常,觸發器的條件以斷言的形式定義。動作以過程的形式定義。

    12.索引

    幫助MySQL高效獲取資料的資料結構。提取句子主幹,就可以得到索引的本質:索引是資料結構。

    基本的sql學習基礎如上

    進階學習

    (1)sql執行順序。當sql邏輯複雜後,sql的執行順序就會非常重要。

    sql執行順序 - qanholas

    (2)SQL ROW_NUMBER() OVER函式。用作分組排序,比如各個省份稅收排名前20的企業。

    SQL ROW_NUMBER() OVER函式的基本用法用法

    (3)case when then else end。用作條件判斷,比如將10、11、12、13……19、20歲的人群新生成一個欄位‘年齡段’取值為10-20歲;聚合函式分別計算,如sum(case when 性別=‘男’ then 收入 end) as 收入_男,sum(case when 性別=‘n女’ then 收入 end) as 收入_女

    SQL中的case when then else end用法

    (4)select時加標籤。例如select出某一特徵user_id時新建一個tag欄位作為使用者的標籤。

    select user_id,"白領" as tag

    (5)差集運算。例如取A集合中不包含在B集合的使用者,做差集。

  • 3 # 雁過無聲song

    個人認為自學SQL資料庫應該從以下幾個方面入手,快速、簡潔、實用。

    1、選擇一個合適的SQL資料庫系統,個人推薦Mysql資料庫。

    3、充分利用一些資料庫管理工具,透過圖型化操作管理介面,進一步掌握和熟練SQL資料庫的增刪改查等功能的深入操作,關鍵字的建立,如何檢索等方面的具體應用。

    5、透過長期的學習和積累,從一款SQL資料庫入門後,可以嘗試“上下延伸”,學習桌面、網路資料庫方面的操作和程式設計,繼而瞭解和學習大型網路資料庫的知識,網路叢集操作,分散儲存等。

    6、透過以上的方法,您很快就會入門SQL資料庫,其實自學SQL資料庫並不難。

  • 4 # 江湖小龍555

    鑑於你是sql資料庫小白,我有以下幾個建議:

    1、瞭解什麼是資料庫,表,列,資料型別,行和主鍵,什麼是SQL,最好動手實踐下,做做總結之類的,

    2、瞭解什麼是MYSQL,學會搭建MYsql環境,用MYSQL相關工具,並使用MYSQL(最好先學會一門程式語言,如python),

    4、學會使用檢視,儲存過程,遊標,觸發器,

    5、學會對資料庫的事務處理的管理,安全管理,資料庫的維護和效能改善,資料庫的全球化和本地化。

  • 5 # 強哥在修行

    1、在關係型資料庫年代,SQL可以學得非常深,當然也非常難學。學好了可以成為非常高薪的人才。

    2、現在傾向於No-SQL,去SQL化,我也不建議重度使用SQL的各個比較深的功能。我覺得學會基本的建庫建表建欄位,基本的增刪改查就行了,連檢視都可以不用學。儲存過程可以學學,但也不是必須的。Join就千萬不要再用了。舉個例子,兩個表都是不小的表,用join時動輒幾秒的計算量,會導致系統非常慢,我在這裡就吃過虧。其實可以單表操作,等結果出來後,再迴圈每條記錄查出對應join的記錄即可。其實想想,我們頁面上每次多是顯示10-20條記錄,這樣迴圈查詢的次數非常少,相對於join動輒百萬次的計算來說,幾十次就可以忽略不計。所以現在只要遇到sql執行的時間太久,我就把相應的地方改成沒有join的簡單語句(程式碼量比較大,一次改過來比較費勁,只能遇到再改)。

    3、關於訪問的SQL的程式碼,一旦沒有join,沒有複雜的東西,就會變得非常簡單。這時候我就會做一個基類,把相關的增刪改查工作直接做好,這樣其它類就基本不用寫什麼程式碼,全部繼承自基類即可。

    經過上面的處理,你就會發現SQL其實很簡單(當然不是真的簡單,而是複雜的東西不符合現在的趨勢)。而且這樣處理後,我們的應用就可以微服務化,相互之間的關聯減少,耦合降低。所以建議不要花太多時間在學SQL上,我們只需要用最基本的功能即可。

  • 中秋節和大豐收的關聯?
  • 古代練武的是不是真的有內力?