Mysql數據庫理論基礎之三 --- 數據類型及SQL結構化查詢語句使用

一、簡介

由MySQL AB公司開發,是最流行的開放源碼SQL數據庫管理系統,主要特點:

  • 1、是一種數據庫管理系統

  • 2、是一種關聯數據庫管理系統

  • 3、是一種開放源碼軟件,且有大量可用的共享MySQL軟件

  • 4、MySQL數據庫服務器具有快速、可靠和易於使用的特點

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


  • InnoDB存儲引擎將InnoDB表保存在一個表空間內,該表空間可由數個文件創建。這樣,表的大小就能超過單獨文件的最大容量。表空間可包括原始磁盤分區,從而使得很大的表成爲可能。表空間的最大容量爲64TB。


二、MySQL 存儲引擎,也稱表類型

2.1. MySQL 存儲引擎,也被稱爲表類型:

 MyISAM表:無事務處理功能,支持表鎖

     .frm:表結構定義文件

     .MYD:表數據文件

     .MYI:表索引文件

 InnoDB表:支持事務處理功能,支持行鎖

     .frm:表結構定義文件

     .ibd:表空間(包含數據和索引文件)


2.2. MySQL常用的查詢命令:

    SHOW ENGINES;        #查看數據庫支持的引擎及狀態。

    SHOW TABLE STATUS LIKE 'user' \G  #查看錶user的屬性信息,\G豎排顯示

    mysqld --help --verbose     #查看mysql支持的各種相關指令

     SHOW CHARACTER SET;       #顯示所有支持的字符集

     SHOW COLLATION ;       #顯示各個字符集下的排序規則


2.3. 程序語言連接數據的方式:

    動態SQL:通過函數或方法與數據庫服務建立連接,

    嵌入式SQL:


2.4. MySQL工具:

 客戶端工具:

   mysql(登錄工具),   mysqladmin(管理工具),

   mysqldump(備份工具),   mysqlimport,mysqlcheck 

 服務器端工具:

    mysqld(啓動進程),   mysqld_safe(安全線程),

    mysqld_multi(支持多實例)


2.5. MySQL配置文件:my.cnf

 配置文件啓動順序爲,/etc/my.cnf  -->/etc/mysql/my.cnf  -->$MYSQL_HOME/my.cnf

   --> --default-extra-file=/path/to/somefile  -->~/.my.cnf


2.6. MySQL啓動失敗的原因大致有:

    1、此前mysql服務未關閉  killall mysqld

    2、數據初始化失敗

    3、數據目錄位置錯誤    

    4、數據目錄權限問題


2.7. DBA的工作內容:

    開發DBA:數據庫設計,SQL語句,存儲過程,存儲函數,觸發器

    管理DBA:安裝,升級,備份,恢復,用戶管理,權限管理,監控,性能分析,基準測試


2.8. MySQL數據類型:

  數值型: 

      精確數值型:   int(整數型)     decimal(十進制型)

      近似數值型: float(單精度浮點型) double(雙精度浮點型)  real(實數型)

  字符型:

     定長字符型:CHAR(NUM)BINARY(區分大小寫)  最長不超過255個字符

     變長字符型:VARCHAR(NUM)VARBINARY(區分大小寫)  最長不超過65535

     ENUM枚舉型:ENUM('A','BB','CC','DD')用戶只能在列舉中選擇一個

     SET枚舉字符串型

  日期時間型:

     date日期, time時間,  datetime日期時間, timestamp時間戳,  year


2.9. 數據類型需具備以下幾點:

    1、存入的值類型

    2、佔據的存儲空間

    3、是變長還是定長

    4、如何比較及排序

    5、是否能夠索引


AUTO_INCREMENT 自動增長類型,需滿足幾點:必須爲整型,非空,元符號,主鍵或唯一鍵

 eg:CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,Name CHAR(20))

  創建一個test表,包含2個字段ID和Name,ID字段的修飾符必須是INT(整型),UNSIGNED(無符號的)


  AUTO_INCREMENT(自動增長),NOT NULL(非空的),PRIMARY KEY(主鍵)。

  Name字段類型爲CHAR(20)(定長字符型長度爲20).

 mysql> SELECT LAST_INSERT_ID();


2.10. MySQL服務器變量:

   按作用域,分兩類:

   全局變量

        SHOW GLOBAL VARIABLES LIKE ' ';    查看全局變量

    會話變量

        SHOW [SESSION] VARIABLES LIKE ' ';   查看會話變量

   按生效時間,分兩類:

       可動態調整的變量:可即時修改

       靜態變量:

            寫在配置文件中,通過參數傳遞給mysqld

     動態調整參數的生效方式:

       全局變量:對當前會話無效,只對新建立會話有效;

       會話變量:即時生效,但只對當前會話有效;


   服務器變量:@@變量名

        顯示:SELECT

        設定:SET GLOBAL|SESSION 變量名='value'


mysql> SET GLOBAL sql_mode='strict_all_tables';  #設定sql_mode的值爲strict_all_tables

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @@global.sql_mode;  #查看sql_mode的全局變量

+-------------------+

| @@global.sql_mode |

+-------------------+

| STRICT_ALL_TABLES |

+-------------------+

1 row in set (0.00 sec)

mysql> SELECT @@sql_mode;  #查看sql_mode的會話變量

+------------+

| @@sql_mode |

+------------+

|            |

+------------+

1 row in set (0.00 sec)

  

---end---


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