標籤:mysql資料類型 sql 結構化 查詢語句
MySQL 儲存引擎,也被稱為表類型:
MyISAM表:無交易處理功能,支援表鎖
.frm:表結構定義檔案
.MYD:表資料檔案
.MYI:表索引檔案
InnoDB表:支援交易處理功能,支援行鎖
.frm:表結構定義檔案
.ibd:資料表空間(包含資料和索引檔案)
MySQL常用的查詢命令:
SHOW ENGINES; #查看資料庫支援的引擎及狀態。
SHOW TABLE STATUS LIKE ‘user‘ \G #查看錶user的屬性資訊,\G豎排顯示
mysqld --help --verbose #查看mysql支援的各種相關指令
SHOW CHARACTER SET; #顯示所有支援的字元集
SHOW COLLATION ; #顯示各個字元集下的定序
程式語言串連資料的方式:
動態SQL:通過函數或方法與資料庫服務建立串連,
嵌入式SQL:
MySQL工具:
用戶端工具:mysql(登入工具),mysqladmin(管理工具),mysqldump(備份工具),mysqlimport,mysqlcheck
伺服器端工具:mysqld(啟動進程),mysqld_safe(安全線程),mysqld_multi(支援多執行個體)
MySQL設定檔:my.cnf
設定檔啟動順序為,/etc/my.cnf -->/etc/mysql/my.cnf -->$MYSQL_HOME/my.cnf -->
--default-extra-file=/path/to/somefile -->~/.my.cnf
MySQL啟動失敗的原因大致有:
1、此前mysql服務未關閉
2、資料初始化失敗
3、資料目錄位置錯誤
4、資料目錄許可權問題
DBA的工作內容:
開發DBA:資料庫設計,SQL語句,預存程序,儲存函數,觸發器
管理DBA:安裝,升級,備份,恢複,使用者管理,許可權管理,監控,效能分析,基準測試
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年
資料類型需具備以下幾點:
1、存入的實值型別
2、佔據的儲存空間
3、是變長還是定長
4、如何比較及排序
5、是否能夠索引
AUTO_INCREMENT 自動成長類型,需滿足幾點:必須為整型,非空,元符號,主鍵或唯一鍵
Usage: 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();
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)
本文出自 “學linux曆程” 部落格,請務必保留此出處http://woyaoxuelinux.blog.51cto.com/5663865/1918247
Linux命令:MySQL系列之三--mysql資料類型及SQL結構化查詢語句使用