1. 程式人生 > >MySQL 5.1參考手冊學習筆記 第1章:一般資訊

MySQL 5.1參考手冊學習筆記 第1章:一般資訊

1.2. 本手冊採用的慣例

·這類風格的文字用於SQL語句,資料庫、表和列名稱,C和Perl程式碼,以及環境變數。例如: 要想重新載入授權表,請使用FLUSH PRIVILEGES語句。

這類風格的文字用於指明鍵入的數如資訊。

·這類風格的文字用於指明可執行程式和指令碼的名稱,例如mysql(MySQL命令列客戶端程式)和mysqld(MySQL伺服器執行程式)。

·這類風格的文字用於變數輸入,應使用你選擇的值替換它。

·檔名和目錄名採取下述方式: “全程my.cnf位於目錄/etc下

·字元序列採取下述方式: “要想使用萬用字元,請使用字元%”。

·這類風格的文字用於強調。

·這類風格的文字用於表頭,並用於傳遞強調資訊。

當出現準備在特定程式中執行的命令時,該程式將由位於命令前的提示符指明。例如,shell>指明命令將從註冊外殼程式中執行,mysql>指明命令將從mysql客戶端程式中執行

shell> type a shell command here(在此輸入shell命令)
mysql> type a mysql statement here(在此輸入mysql語句)

shell”是命令解釋程式。在Unix平臺上,它通常是程式,如shcshbash。在Windows平臺下,等效程式為command.com

cmd.exe,通常執行在控制檯視窗中。

輸入示例中顯示的命令或語句時,不要輸入示例中給出的提示符。

資料庫、表和;列名必須代入語句中。為了指明該代入是必要的,在本手冊中使用了db_nametbl_namecol_name。例如,你將見到如下所示的語句:

mysql> SELECT col_name FROM db_name.tbl_name;

這意味著,如果你輸入了類似的語句,應提供你的資料庫、表和列名,如下例所示:

mysql> SELECT author_name FROM biblio_db.author_list;

SQL關鍵字不區分大小寫,因此即可為大寫也可為小寫。在本手冊中採用大寫。

在語法介紹中,方括號(“[”和“]”)用於指明可選字或子句。例如,在下面的語句中,IF EXISTS是可選的:

DROP TABLE [IF EXISTS] tbl_name

當某一語法成分由多個可選項組成時,可選項應用豎線“|”分開。當可能選擇一組選擇中的某一成員時,可選項將列在方括號(“[”和“]”)中。

TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)

當必須選擇一組選擇中的某一成員時,可選項將列在大括號(“{”和“}”)中。

{DESCRIBE | DESC} tbl_name [col_name | wild]

省略號()表明省略了語句的某一選擇,通常是為了提供複雜語法的簡短表述。例如,INSERT ... SELECT是後跟SLECT語句的INSERT語句的簡短形式。

省略號還能指明語句的前部分語法元素可重複。在下面的示例中,可給定多個reset_option值,第1個值後每一個可由逗號分開:

RESET reset_option [,reset_option] ...

對於用來設定shell變數的命令,採用Bourne shell語法給出。例如,用於設定環境變數的序列和執行命令的序列,與下述Bourne shell語法給出的類似:

shell> VARNAME=value some_command
shell> setenv VARNAME value
shell> some_command
MySQL是一種關聯資料庫管理系統。
  • MySQL軟體是一種開放原始碼軟體。

    “開放原始碼”意味著任何人都能使用和改變軟體。任何人都能從Internet下載MySQL軟體,而無需支付任何費用。如果願意,你可以研究原始碼並進行恰當的更改,以滿足你自己的需求。MySQL軟體採用了GPL(GNU通用公共許可證),http://www.mysql.com/company/legal/licensing/)。

  • MySQL資料庫伺服器具有快速、可靠和易於使用的特點。

    如果它正是你所尋找的,不妨一試。MySQL伺服器還有一套實用的特性集合,這些特性是通過與我們使用者的密切合作而開發的。在我們的基準測試主頁上,給出了MySQL伺服器和其他資料庫管理器的比較結果。請參見7.1.4 “MySQL基準套件”

    MySQL伺服器最初是為處理大型資料庫而開發的,與已有的解決方案相比,它的速度更快,多年以來,它已成功用於眾多要求很高的生產環境。儘管MySQL始終在不斷髮展,但目前MySQL伺服器已能提供豐富和有用的功能。它具有良好的連通性、速度和安全性,這使的MySQL十分適合於訪問Internet上的資料庫。

  • MySQL伺服器工作在客戶端/伺服器模式下,或嵌入式系統中。

MySQL資料庫軟體是一種客戶端/伺服器系統,由支援不同後端的1個多執行緒SQL伺服器,數種不同的客戶端程式和庫,眾多管理工具和廣泛的應用程式設計介面API組成。

我們還能以嵌入式多執行緒庫的形式提供MySQL伺服器,你可以將其連結到你的應用程式,從而獲得更小、更快、和更易管理的產品。

MySQL名稱的起源不明。10多年來,我們的基本目錄以及大量庫和工具均採用了字首“my”。不過,共同創辦人Monty Widenius的女兒名字也叫“My”。時至今日,MySQL名稱的起源仍是一個迷,即使對我們也一樣。

1.4.2. MySQL的的主要特性

下面介紹了MySQL資料庫軟體的一些重要特性。關於當前特性和即將提供特性的更多資訊,,請參見1.6節,“MySQL發展大事記” 。

·內部構件和可移植性

o使用C和C++編寫

o用眾多不同的編譯器進行了測試

o使用GNU Automake、Autoconf和Libtool進行移植。

o提供了用於C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API。請參見第25章:API和庫

o採用核心執行緒的完全多執行緒 如果有多個CPU,它能方便地使用這些CPU。

o提供了事務性和非事務性儲存引擎。

o使用了極快的“B樹”磁碟表(MyISAM)和索引壓縮。

o新增另一個儲存引擎相對簡單。如果打算為內部資料庫新增一個SQL介面,該特性十分有用。

o極快的基於執行緒的記憶體分配系統。

o通過使用優化的“單掃描多連線”,能實現極快的連線。

o儲存器中的雜湊表用作臨時表。

oSQL函式是使用高度優化的類庫實現的,執行很快。通常,在完成查詢初始化後,不存在儲存器分配。

o伺服器可作為單獨程式執行在客戶端/伺服器聯網環境下。它也可作為庫提供,可嵌入(連結)到獨立的應用程式中。這類應用程式可單獨使用,也能在網路環境下使用。

  • 列型別

    • 眾多列型別: 帶符號/無符號整數,1、2、3、4、8位元組長,FLOATDOUBLECHARVARCHARTEXTBLOBDATETIMEDATETIMETIMESTAMPYEARSETENUM,以及OpenGIS空間型別。請參見第11章:列型別

    • 定長和可變長度記錄。

  • 語句和函式

    • 在SELECT和查詢的WHERE子句中,提供完整的操作符和函式支援。例如:

      mysql> SELECT CONCAT(first_name, ' ', last_name)
          -> FROM citizen
          -> WHERE income/dependents > 10000 AND age > 30;
      
    • 對SQL GROUP BYORDER BY子句的全面支援。支援聚合函式(COUNT()COUNT(DISTINCT ...)AVG()STD()SUM()MAX()MIN()GROUP_CONCAT())。

    • 支援LEFT OUTER JOINRIGHT OUTER JOIN,採用標準的SQL和ODBC語法。

    • 按照標準SQL的要求,支援表別名和列別名。

    • DELETE、INSERTREPLACE和UPDATE返回更改(影響)的行數。連線到伺服器時,可通過設定標誌返回匹配的行數。

    • MySQL的SHOW命令可用於檢索關於資料庫、資料庫引擎、表和索引的資訊。EXPLAIN命令可用於確定優化器處理查詢的方式。

    • 函式名與表名或列名不衝突。例如,ABS是有效的列名。唯一的限制在於,呼叫函式時,函式名和隨後的符號“(”之間不得有空格。請參見9.6 “MySQL中保留字的處理”

    • 可以將不同資料庫的表混合在相同的查詢中(就像MySQL 3.22中那樣)。

  • 安全

    • 十分靈活和安全的許可權和密碼系統,允許基於主機的驗證。連線到伺服器時,所有的密碼傳輸均採用加密形式,從而保證了密碼安全。

  • 可伸縮性和限制

    • 處理大型資料庫: 我們使用了MySQL伺服器和含5千萬條記錄的資料庫。我們還聽說,有些使用者將MySQL用於含60000個表和約50億行的資料庫。

    • 每個表可支援高達64條索引(在MySQL 4.1.2之前為32條)。每條索引可由1~16個列或列元素組成。最大索引寬度為1000位元組(在MySQL 4.1.2之前為500)。索引可使用具備CHARVARCHARBLOBTEXT列型別的列字首。

  • 連線性

    • 在任何平臺上,客戶端可使用TCP/IP協議連線到MySQL伺服器。在Windows系統的NT系列中(NT、2000、XP或2003),客戶端可使用命名管道進行連線。在Unix系統中,客戶端可使用Unix域套接字檔案建立連線。

    • 在MySQL 4.1和更高的版本中,如果是以“--shared-memory”選項開始,Windows伺服器還支援共享記憶體連線。客戶端可使用“--protocol=memory”選項,通過共享記憶體建立連線。

    • Connector/ODBC (MyODBC)介面為使用ODBC(開放式資料庫連線性)連線的客戶端程式提供了MySQL支援。例如,可以使用MS Access連線到你的MySQL伺服器。客戶端可執行在Windows或Unix平臺上。提供了MyODBC源。支援所有的ODBC 2.5函式,以及眾多其他函式。請參見第26章:聯結器

    • Connector/J介面為使用JDBC連線的Java客戶端程式提供了MySQL支援。客戶端可執行在Windows或Unix平臺上。提供了Connector/J原始碼。請參見第26章:聯結器

  • 本地化

    • 對數種不同字符集的全面支援,包括latin1 (cp1252)、german

      相關推薦

      MySQL 5.1參考手冊學習筆記 1一般資訊

      1.2. 本手冊採用的慣例 ·這類風格的文字用於SQL語句,資料庫、表和列名稱,C和Perl程式碼,以及環境變數。例如: 要想重新載入授權表,請使用FLUSH PRIVILEGES語句。 這類風格的文字用於指明鍵入的數如資訊

      《Spring實戰》學習筆記-使用Spring Web Flow

      第四版的第八章內容與第三版基本一致。 本章內容: 建立會話式web應用程式 定義流程狀態和行為 保護web流程 網際網路的一個奇特之處就在於它很容易讓人迷失。有如此多的內容可以檢視和閱讀,而超連結是其強大魔力的核心所在。 有時候,web應用程式需要控

      《Spring實戰》學習筆記-構建Spring web應用

      之前一直在看《Spring實戰》第三版,看到第五章時發現很多東西已經過時被廢棄了,於是現在開始讀《Spring實戰》第四版了,章節安排與之前不同了,裡面應用的應該是最新的技術。 本章中,將會接觸到Spring MVC基礎,以及如何編寫控制器來處理web請求,如何通明地繫

      吳恩達機器學習學習筆記多變數線性迴歸

      1.Multiple features多特徵 現在我們有多個特徵了,比如還是預測房子價格X不僅僅是面積大小還有臥室數量,樓層數量以及房子的年齡 表達形式的記法: n=4即有4個特徵(總面積 臥室數量 樓層數 房子年齡) m=47即有47個樣本(47個房子)

      C++ Primer學習筆記- 標準庫型別之四

      四、標準庫bitset型別 標準庫中bitset型別用來處理二進位制位的有序集,bitset型別簡化了位集的處理,使用bitset時需要包含標頭檔案#include<bitset>     bitset物件的定義和初始化 bitset也是類模板,不過bits

      《JAVA程式設計思想》學習筆記---十三字串

      1,不可變String String物件時不可變的,每一個看起來會修改String的方法,實際上都是建立了一個全新的String物件,而最初的String物件絲毫未動! package com.str; public class Immutable {

      機器學習筆記 1機器學習中的資料

      資料在機器學習中起著重要的作用。 在談論資料時,理解和使用正確的術語非常重要。 你如何看待資料?想想電子表格吧,有列、行和單元格。 從統計視角而言,機器學習的任務是在假設函式( f )的上下文中構建資料。這些假設函式由機器學習演算法通過學習建立。給定一些輸入變數( Input ),該函式回答

      java程式設計思想學習筆記——1 物件導論

      1.1 抽象過程 面向物件思想的實質:程式可以通過新增新型別的物件使自身適用於某個特定問題。 面向物件思想的五個基本特徵: 1)萬物皆物件 2)程式是物件的集合 3)每個物件都有自己的由其他物件所構成的儲存 4)每個物件都有其型別 5)某一特定型別的所有物件都可以接收同樣的訊息 物件具有行為、

      Hadoop權威指南-大資料的儲存與分析四版——學習筆記——2——1

      MapReduce 適合處理半結構化的資料 MapReduce任務階段 Map階段+Reduce階段 Key-Value作為輸入輸出 實現兩個函式:map(),reduce() Map階段 輸入的Key:文字中的偏移量 輸入的value:文字 輸出的k-v給reduce處

      爬蟲學習筆記1

      人說最好的學習是教學,我深以為然。為了理清學習這本書《Python3爬蟲網路爬蟲開發實戰》的一些概念,開始寫本系列。這個系列的博文將 提煉書中重點核心理念 記錄我在學習這本書時遇到的非技術性問題及其解決方案 給出我個人的觀點和建議 有些內容我暫時不會寫到——

      爬蟲學習筆記4.解析庫的使用.1 使用XPath

      XPath:全稱XML Path Language(XML路徑語言),一門用於XML 文件中查詢資訊的語言。XPath 用於在 XML 文件中通過元素和屬性進行導航。XPath同樣可以用於HTML的搜尋。 XPath 路徑表示式:XPath 使用路徑表示式來選取

      C primer plus 學習筆記 1

      第1章    初識C語言 這章主要介紹了一些C語言的歷史,還有編寫程式的過程。 主要內容: C的歷史和特性 編寫程式的步驟 編譯器和連結器的一些知識 C標準 1.1    C語言的起源 1972,貝爾實驗室 1.2    選擇C語言的理由 高效性,可移植性,可直接訪問

      Android學習筆記1之掌握日誌工具

      備註:參考《第一行程式碼》 一、Android中的日誌工具類是Log(android.util.Log),這個類共提供了5種方法來供我們列印日誌。 1.Log.v()。用於列印那些最為瑣碎的、意義最小的日誌資訊。對用的級別是verbose,是Android日誌裡

      RTthread學習筆記————1 嵌入式作業系統

      什麼是作業系統  作業系統是指管理和控制計算機硬體與軟體資源的計算機程式,是直接執行在計算機上的最基 本的系統軟體,任何其他軟體都必須在作業系統的支援下才能執行,按應用領域來劃分,可分為桌 面作業系統、伺服器作業系統、移動作業系統、和嵌入式作業系統幾類。  嵌

      金字塔原理學習筆記1篇-表達的邏輯(二)

      金字塔內部的結構 文章中的思想應組成單一思想統領下的金字塔結構,如下圖所示: 圖1 這樣的文章總是自金字塔的頂端開始,自上而下地沿著各個分支將作者的思想逐一呈現。 但大多數人在準備坐下來開始寫

      Python 學習筆記-24講MySQL 資料庫儲存過程

      1. ANACONDA(一個開源的Python發行版本) Anaconda指的是一個開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項。 Conda是一個開源的包、環境管理器,可以用於在同一個機器上安裝不同版本的軟體包及其依賴,並能夠

      ENC28J60學習筆記——1部分

      0.相關資料相關資料中包括其他精彩博文和程式碼倉庫    【ENC28J60學習筆記——索引】 【第1部分】【第2部分】【第3部分】【第4部分】1前言    嵌入式乙太網開發,可以分為兩個部分,一個是乙太網收發晶片的使用,一個是嵌入式乙太網協議棧的實現。乙太網收發晶片的使用要

      Go學習筆記-1

      Go 學習筆記 第一章 型別 1.1 變數 Go 語言變數名由字母、數字、下劃線組成,其中首個字母不能為數字。 Go 是靜態型別語⾔,不能在運⾏期改變變數型別。 使⽤關鍵字 var 定義變數,⾃動初始化為零值。如果提供初始化值,可省略變數型別,

      神經網路與機器學習3版學習筆記-1 Rosenblatt感知器

      神經網路與機器學習第3版學習筆記       -初學者的筆記,記錄花時間思考的各種疑惑 第一章 Rosenblatt感知器 1、第32頁 1.1 為什麼如果第n次迭代時的內積存在符號錯誤,第n+1次迭代內積的符號就會正確?     已知 $

      &lt;&lt;Python基礎教程&gt;&gt;學習筆記 | 12 | 圖形用戶界面

      lena text 平臺 post ack 由於 contents exp 一個 Python支持的工具包非常多。但沒有一個被覺得標準的工具包。用戶選擇的自由度大些.本章主要介紹最成熟的跨平臺工具包wxPython.官方文檔: http://wxpython.org/