數據庫mySQL

數據庫database

數據庫服務器database server   可以操作數據庫並提供相關服務的軟件。

主要介紹學習到的MySQL的內容。

它是C/S模式(客戶端/服務器),客戶端與服務器通過網絡連接交互數據,當然客戶端與服務器也可以在通一臺電腦上。數據庫的啓動和停止可以在“控制面板|管理工具|服務”裏控制。

安裝的話沒有什麼特別的,安裝過程中需要設置root用戶的密碼,安裝完成後,可進行服務器的配置,1)通過修改配置文件my.ini,使其在Windows下區分大小寫,因爲默認是不區分的;2)防火牆配置,MySQL是以TCP提供服務,端口號默認是3306,要想用客戶端從另一臺電腦上連接它,需配置防火牆,使之開放3306端口,爲簡單起見,可直接禁用防火牆。

安裝好數據庫後,我們可以使用一個客戶端來連接它,從而進行相關的操作。SQLyog就是一個客戶端,供用戶使用來進行數據庫操作。它可以連接到mysql主機、http管道、ssh隧道以及ssl加密,是一款功能強大的數據庫管理工具。

連接好數據庫後,可以在SQLyog客戶端進行相關的操作。可以在客戶端直接進行操作,也可以通過SQL語句。

首先對數據庫的基礎知識進行介紹。

一個庫中,可以存放多個表,表中可以有多個列,每個列的數據類型主要有以下幾種:

1)整數,tinyint(一個字節,-128-127,,smallint(2字節),mediumint(3字節),int(4字節),bigint(8字節)

2)小數,float,double

3)字符串 char(定長字符串,較短長度,查詢快,有可能浪費空間),varchar(可變字符串,中等長度,節省空間,按輸入實際長度保存)

4)長文本  text(存儲超長文本)

5)時間   date(年月日),time(時分秒),datetime(年月日時分秒),timeistamp(整數值)

6)二進制數據 blob(大塊數據)

編輯表的格式,新建表時,要設定其每一列的屬性(類型、索引、自增、默認值),統稱爲schema。

1)列名,有兩種常用的:1.小寫,單詞之間加下劃線,log_text;  2.第二單詞首字母大寫,logText。不能使用SQL的關鍵詞作爲列名字,如int、text、type、limit、group等。

2)列的屬性:非空,空值NULL;自增;主鍵(primary key),用於唯一的標識一條記錄,MySQL可自動檢測是否重複,性質:該字段不允許重複,且不允許爲空值NULL;

  索引,用該字段的值單獨存儲,並且是排序後存儲,好處是用於加快排序和查找,壞處是建立和更新索引需要時間,而且索引本身多佔了一些存儲空間。索引又分爲唯一索引(該索引的字段不允許重複)和普通索引(允許重複),主鍵也是一種唯一索引。當數據庫讀多寫少,可添加索引,當寫操作頻繁時,要慎重加索引。

然後是SQL語句的相關介紹。

SQL(structured query language,結構化查詢語言),用於跟SQL服務器對話。SQLyog是將SQL腳本傳給服務器,讓服務器執行,然後服務器將結果傳給SQLyog,SQLyog將結果呈現給用戶。另外SQLyog雖然可視化操作,內部還是SQL語句,可以通過歷史記錄窗口查看。菜單:“工具|歷史記錄”。

下面是SQL語法介紹。

1)使用/*  */ 添加註釋。

2)每個SQL語句末尾要加分號,中間可以換行。

3)關鍵詞建議大寫,有的服務器可能並不區分大小寫。

4)創建數據庫 CREATE DATABASE `example`;刪除數據庫 DROP DATABASE `example`(反引號,不是單引號)。

5)創建表 CREATE TABLE `simple`(`id`int(11) NOT NULL,`name`char(32)DEFAULT NULL,PRIMARY KEY('id'));刪除表 DROP TABLE 'simple'。

6)使用SQLyog可以:a.將數據庫的內容導出(備份),數據庫-右鍵“備份”;b.導入數據(恢復),可以將代碼複製到查詢編輯器運行,也可以數據庫-右鍵“導入”。

7)對數據庫進行相關的操作:

      a,指定要操作的數據庫  USE <數據庫名>。

      b.添加記錄  INSERT INTO<表名><列名>VALUES<數據(列值)>;列名、數據有多個時用括號括起來,表名列名用的反引號,而數據用的單引號;可以一次INSERT多行數據,每行以括號括起來,中間以逗號隔開;空值以NULL指定;數字類型可以不加引號,但字符串類型和日期時間類型都要加引號。

      c.查詢記錄  SELECT<列>FROM<表> ; 用*表示所有列,SELECT*FROM`student`;AS:列的別名,SELECT `id` AS `學號` FROM `student`;

         查詢條件WHERE  SELECT<列>FROM<表>WHERE<條件>,WHERE id=201511,WHERE條件表達式:數值比較,大於,等於,小於,不等於<>,大於或等於>=, 小於或等於<=;日期比較,只要加單引號 WHERE birthday <'19940-1-1';字符串比較:大小比較,按ASII碼比較,字符串比較,LIKE通配符比較%,例                             如查找所有以’shao‘開頭的,WHERE 'name' LIKE 'shao%',MySQL還支持用正則表達式REGEXP來匹配字符串;空值比較:判斷是否爲NULL,是空值,WHERE 'birthday' IS(NOT) NULL;WHERE邏輯運算符 AND:並且,OR:或者,NOT:非

          查詢記錄:排序與分頁   ORDER BY對結果排序,ASC升序,DESC降序,ORDER BY<列名>ASC   SELECT* FROM  'student' ORDER BY 'birthday' ASC

          LIMIT(MySQL特有的關鍵字) 分頁顯示 LIMIT start,n;此外MYSQL還內置了好多函數,例如COUNT('id')進行計數,DAYOFWEEK()函數用於求一個日期對應是星期幾。

          查詢記錄:聯合查詢    WHERE 

                                             內聯(交集) 關鍵字....FROM ....INTER JOIN ....ON.....(ON指定了聯接條件)

                                              外聯 (缺項補NULL)   左外聯:LEFT OUTER JOIN      右外聯:RIGHT OUTER JOIN                                               全外聯:FULL OUTER JOIN  (MySQL不支持),都可簡寫去掉 outer

        d修改記錄  UPDATE<表> SET<列1>=<值1>,<列2>=<值2>WHERE<條件>;

        e刪除記錄  DELETE FROM<表>WHERE<條件>。

另外,MySQL提供了API(應用程序接口),程序員調用庫裏的函數就能與數據庫交互。

                            

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章