mysql必知必會--瞭解SQL

来源:https://www.cnblogs.com/ygjzs/archive/2020/01/21/12220721.html
-Advertisement-
Play Games

什麼是資料庫 資料庫這個術語的用法很多,但就本書而言,資料庫是一個以某種 有組織的方式存儲的數據集合。理解資料庫的一種最簡單的辦法是將其 想象為一個文件櫃。此文件櫃是一個存放數據的物理位置,不管數據是 什麼以及如何組織的 資料庫(database) 保存有組織的數據的容器(通常是一個文 件或一組文件 ...


什麼是資料庫

資料庫這個術語的用法很多,但就本書而言,資料庫是一個以某種
有組織的方式存儲的數據集合。理解資料庫的一種最簡單的辦法是將其
想象為一個文件櫃。此文件櫃是一個存放數據的物理位置,不管數據是
什麼以及如何組織的

資料庫(database) 保存有組織的數據的容器(通常是一個文
件或一組文件

人們通常用資料庫這個術語來代表他們使用
的資料庫軟體。這是不正確的,它是引起混淆的根源。確切
地說,資料庫軟體應稱為DBMS(資料庫管理系統)。資料庫
是通過DBMS創建和操縱的容器。資料庫可以是保存在硬設備
上的文件,但也可以不是。在很大程度上說,資料庫究竟是
文件還是別的什麼東西並不重要,因為你並不直接訪問數據
庫;你使用的是DBMS,它替你訪問資料庫

表(table) 某種特定類型數據的結構化清單。

這裡關鍵的一點在於,存儲在表中的數據是一種類型的數據或一個
清單。決不應該將顧客的清單與訂單的清單存儲在同一個資料庫表中。這
樣做將使以後的檢索和訪問很困難。應該創建兩個表,每個清單一個表。
資料庫中的每個表都有一個名字,用來標識自己。此名字是唯一的,
這表示資料庫中沒有其他表具有相同的名字

表名 表名的唯一性取決於多個因素,如資料庫名和表名等的
結合。這表示,雖然在相同資料庫中不能兩次使用相同的表名,
但在不同的資料庫中卻可以使用相同的表名。

模式(schema) 關於資料庫和表的佈局及特性的信息

是模式還是資料庫? 有時,模式用作資料庫的同義詞。遺憾
的是,模式的含義通常在上下文中並不是很清晰。本書中,模
式指的是上面給出的定義

列和數據類型

列(column) 表中的一個欄位。所有表都是由一個或多個列組
成的

解列的最好辦法是將資料庫表想象為一個網格。網格中每一列存
儲著一條特定的信息。例如,在顧客表中,一個列存儲著顧客編號,另
一個列存儲著顧客名,而地址、城市、州以及郵政編碼全都存儲在各自
的列中。

正確地將數據分解為多個列極為重要。例如,城市、
州、郵政編碼應該總是獨立的列。通過把它分解開,才有可能
利用特定的列對數據進行排序和過濾(如,找出特定州或特定
城市的所有顧客)。如果城市和州組合在一個列中,則按州進
行排序或過濾會很困難

資料庫中每個列都有相應的數據類型。數據類型定義列可以存儲的
數據種類。例如,如果列中存儲的為數字(或許是訂單中的物品數),則
相應的數據類型應該為數值類型。如果列中存儲的是日期、文本、註釋、
金額等,則應該用恰當的數據類型規定出來

數據類型(datatype) 所容許的數據的類型。每個表列都有相
應的數據類型,它限制(或容許)該列中存儲的數據。

數據類型限制可存儲在列中的數據種類(例如,防止在數值欄位中
錄入字元值)。數據類型還幫助正確地排序數據,併在優化磁碟使用方面
起重要的作用。因此,在創建表時必須對數據類型給予特別的關註

表中的數據是按行存儲的,所保存的每個記錄存儲在自己的行內。
如果將表想象為網格,網格中垂直的列為表列,水平行為表行

行(row) 表中的一個記錄

是記錄還是行? 你可能聽到用戶在提到行(row)時稱其為
資料庫記錄(record)。在很大程度上,這兩個術語是可以互相
替代的,但從技術上說,行才是正確的術語。

主鍵

表中每一行都應該有可以唯一標識自己的一列(或一組列)。一個顧
客表可以使用顧客編號列,而訂單表可以使用訂單ID,雇員表可以使用
雇員ID或雇員社會保險號。
主鍵(primary key)一一列(或一組列),其值能夠唯一區分表
中每個行。

唯一標識表中每行的這個列(或這組列)稱為主鍵。主鍵用來表示
一個特定的行。沒有主鍵,更新或刪除表中特定行很困難,因為沒有安
全的方法保證只涉及相關的行

應該總是定義主鍵 雖然並不總是都需要主鍵,但大多數數據
庫設計人員都應保證他們創建的每個表具有一個主鍵,以便於
以後的數據操縱和管理。

表中的任何列都可以作為主鍵,只要它滿足以下條件:

  • 任意兩行都不具有相同的主鍵值;
  • 每個行都必須具有一個主鍵值(主鍵列不允許NULL值)

主鍵值規則 這裡列出的規則是MySQL本身強制實施的

主鍵通常定義在表的一列上,但這並不是必需的,也可以一起使用
多個列作為主鍵。在使用多列作為主鍵時,上述條件必須應用到構成主
鍵的所有列,所有列值的組合必須是唯一的(但單個列的值可以不唯一)

主鍵的最好習慣 除MySQL強制實施的規則外,應該堅持的
幾個普遍認可的最好習慣為:

  • 不更新主鍵列中的值;
  • 不重用主鍵列的值;
  • 不在主鍵列中使用可能會更改的值。(例如,如果使用一個
    名字作為主鍵以標識某個供應商,當該供應商合併和更改其
    名字時,必須更改這個主鍵。)

什麼是SQL

SQL(發音為字母S-Q-L或sequel)是結構化查詢語言(Structured Query
Language)的縮寫。SQL是一種專門用來與資料庫通信的語言。

與其他語言(如,英語以及Java和Visual Basic這樣的程式設計語言)
不一樣,SQL由很少的詞構成,這是有意而為的。設計SQL的目的是很好
地完成一項任務,即提供一種從資料庫中讀寫數據的簡單有效的方法。
SQL有如下的優點。

  • SQL不是某個特定資料庫供應商專有的語言。幾乎所有重要的
    DBMS都支持SQL,所以,學習此語言使你幾乎能與所有資料庫
    打交道。
  • SQL簡單易學。它的語句全都是由描述性很強的英語單片語成,
    而且這些單詞的數目不多。
  • SQL儘管看上去很簡單,但它實際上是一種強有力的語言,靈活
    使用其語言元素,可以進行非常複雜和高級的資料庫操作。

DBMS專用的SQL SQL不是一種專利語言,而且存在一個標
準委員會,他們試圖定義可供所有DBMS使用的SQL語法,但
事實上任意兩個DBMS實現的SQL都不完全相同。本書講授的
SQL是專門針對MySQL的,雖然書中所講授的多數語法也適
用於其他DBMS,但不要認為這些SQL語法是完全可移植的

這一章介紹了什麼是SQL以及它為什麼很有用。因為SQL是用來與數
據庫打交道的,所以,我們也複習了一些基本的資料庫術語


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

-Advertisement-
Play Games
更多相關文章
  • LIKE 操作符 前面介紹的所有操作符都是針對已知值進行過濾的。不管是匹配一 個還是多個值,測試大於還是小於已知值,或者檢查某個範圍的值,共 同點是過濾中使用的值都是已知的。但是,這種過濾方法並不是任何時 候都好用。例如,怎樣搜索產品名中包含文本anvil的所有產品?用簡單 的比較操作符肯定不行,必 ...
  • 如何組合 WHERE 子句以建立功能更強的更高級的搜索條件?如何使用 NOT 和 IN 操作符? 組合 WHERE 子句 第6章中介紹的所有 WHERE 子句在過濾數據時使用的都是單一的條 件。為了進行更強的過濾控制,MySQL允許給出多個 WHERE 子句。這些子 句可以兩種方式使用:以 AND ...
  • 使用 WHERE 子句 資料庫表一般包含大量的數據,很少需要檢索表中所有行。通常只 會根據特定操作或報告的需要提取表數據的子集。只檢索所需數據需要 指定搜索條件(search criteria),搜索條件也稱為過濾條件(filter condition)。 在 SELECT 語句中,數據根據 WHE ...
  • 排序數據 其實,檢索出的數據並不是以純粹的隨機順序顯示的。如果不排 序,數據一般將以它在底層表中出現的順序顯示。這可以是數據最初 添加到表中的順序。但是,如果數據後來進行過更新或刪除,則此順 序將會受到MySQL重用回收存儲空間的影響。因此,如果不明確控 制的話,不能(也不應該)依賴該排序順序。關係 ...
  • SELECT 語句 SQL語句是由簡單的英語單詞構成的。這些單詞稱 為關鍵字,每個SQL語句都是由一個或多個關鍵字構成的。大概,最經常 使用的SQL語句就是 SELECT 語句了。它的用途是從一個或多個表中檢索 信息。 為了使用 SELECT 檢索表數據,必須至少給出兩條信息——想選擇什 麽,以及從 ...
  • 連接 在具有可供使用的MySQL DBMS和客戶機軟體之後,有必要簡要討 論一下如何連接到資料庫。 MySQL與所有客戶機 — 伺服器DBMS一樣,要求在能執行命令之前登 錄到DBMS。登錄名可以與網路登錄名不相同(假定你使用網路)。MySQL 在內部保存自己的用戶列表,並且把每個用戶與各種許可權關聯 ...
  • yarn-site.xml 配置介紹yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocation-mb說明:單個容器可申請的最小與最大記憶體,應用在運行申請記憶體時不能超過最大值,小於最小值則分配最小值,從這個角度看,最小值 ...
  • 什麼是MySQL MySQL已經存在很久了,它在世界範圍內得到了廣泛的安裝和使用。 為什麼有那麼多的公司和開發人員使用MySQL?以下列出其原因。 成本——MySQL是開放源代碼的,一般可以免費使用(甚至可以 免費修改)。 性能——MySQL執行很快(非常快)。 可信賴——某些非常重要和聲望很高的公 ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...