MySQL基礎(2)

葉nil發表於2022-04-23

MySQL基礎(2)

MySQL伺服器支援SQL,因此,如何通過SQL告知MySQL伺服器如何完成各種資料管理操作,就是重中之重。要想和伺服器做好交流,則必須熟練掌握它。當使用某個程式(如mysql客戶端),本質就是把SQL語句傳送到伺服器執行的工具。如果使用某種帶有MySQL介面的程式語言來編寫程式,那麼這些介面就通過呼叫SQL語句來與伺服器進行交流。

識別符號語法和命名規則

  1. 合法識別符號:不加引號的識別符號可以由大小寫形式的字母a-z、數字0-9、美元符號、下劃線,以及範圍在U+0080到U+FFFF之間的Unicode擴充套件字元構成。識別符號的第一個字元可以識別符號所允許的任何一種字元。不加引號的識別符號不允許全部由數字字元構成,因為那樣會使它難以與數字區分開。

  2. 識別符號長度:大部分識別符號的最大長度是64個字元。別名的最大長度是256個字元

  3. 識別符號限定符:根據具體的上下文,識別符號可能需要加以限定,來明確它所引用的是什麼內容。比如資料庫,可以直接指定名字;一些表,則根據情況,看是否要加入屬於資料庫的名字

大小寫規則

SQL語句中的大小寫規則因語句各個組成元素的不同而有所差異,同時還取決於你正引用的內容和MySQL伺服器主機所執行的作業系統。

  1. SQL關鍵字和函式名:SQL關鍵字和函式名不區分大小寫,可以為任意的大小寫組合。

  2. 資料庫名、表名和檢視名:MySQL使用了伺服器主機上的底層檔案系統所包含的目錄和檔案來表示資料庫和表。比如,windows系統的檔名不區分大小寫,因此執行在windows上面的MySQL伺服器也不區分大小寫。執行在Linux主機i上的MySQL伺服器,通常需要區分庫名和表名的大小寫。

  3. 儲存程式的名字:儲存函式、儲存過程和事件的名字都不區分大小寫。觸發器的名字區分大小寫,這一點與標準的SQL的行為有所不同

  4. 列名和索引名:在MySQL中,列名和索引名都不區分大小寫

  5. 別名的名字:預設情況下,表的別名要區分大小寫。

  6. 字串值:字串值是否區分大小寫,具體取決於它是二進位制還是非二進位制,並且對於非二進位制,還取決於字符集的排序規則。

資料庫的選擇、建立、刪除和更改

MySQL提供了幾條資料庫級的語句:USE用於選定一個預設資料庫;CREATE DATABASE用於建立資料庫;DROP DATABASE用於刪除資料庫;ALTER DATABASE用於更改資料庫的全部屬性。

建立資料庫的方法是,使用CREATE DATABASE語句

CREATE DATABASE db_name;

上述語句的先決條件是這個資料庫是不能已經存在的,並且必須要擁有CREATE許可權,CREATE DATABASE語句有幾個可選子句,完整的語法如下:

CREATE DATABASE [IF NOT EXISTS] db_name 
[CHARACTER SET charset] [COLLATE collation];

加上IF NOT EXISTS子句,當建立一個已經存在的資料庫時,不會報錯,如下

CREATE DATABASE IF NOT EXISTS db_name;

在預設情況下,伺服器的字符集和排序規則將成為新建資料庫的預設字符集和排序規則,使用完整的語句建立如下

CREATE DATABASE IF NOT EXISTS db_name CHARACTER set utf8 COLLATE utf8_icelandic_ci;

刪除資料庫,如果你有DROP許可權,那麼你就能執行刪除資料庫

DROP DATABASE db_name;

更改資料庫

ALTER DATABASE [IF NOT EXISTS] db_name 
[CHARACTER SET charset] [COLLATE collation];

其和建立資料庫是差不多的,只是CREATE換成了ALTER;

總結

本次只是介紹了一些關於資料庫基礎的一些東西,一門語言的使用和這些基礎的概念也是密不可分的。