MySQL數據類型及sql模型 存儲引擎,也被稱爲表類型: MyISAM表: 無事務,表鎖 .frm: 表結構定義文件 .MYD: 表數據 .MYI: 索引 InnoDB表:事務,行鎖 .frm: 表結構 .ibd: 表空間(數據和索引) 所有表共享一個表空間文件; 建議:每表一個獨立的表空間文件;(修改配置文件在[mysqld]項下加入innodb_file_per_table = 1) MySQL: 在默認的mysql數據庫中默認的存儲引擎爲MyISAM 其他新建的數據庫的存儲引擎取決於默認的存儲引擎設定值 SHOW ENGINES SHOW TABLE STATUS [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr] 程序語言連接數據的方式: 動態SQL:通過函數或方法與數據庫服務建立連接, 嵌入式SQL: 客戶端組件:mysql、mysqladmin、mysqldump、mysqlimport、mysqlcheck 服務器組件:mysqld, mysqld_safe, mysqld_multi my.cnf /etc/my.cnf --> /etc/mysql/my.cnf --> $MYSQL_HOME/my.cnf --> --default-extra-file=/path/to/somefile --> ~/.my.cnf [mysqld] [mysqld_safe] [client] host = [mysql] 絕大數配置選項都能在命令行下直接指定 # mysqld --help --verbose 在指定datadir = /mydata/data後,在指定的目錄下有名爲hostname.err: 錯誤日誌 MySQL啓動失敗的原因: 1、此前服務未關閉; 2、數據初始化失敗; 3、數據目錄位置錯誤; 4、數據目錄權限問題; DBA: 開發DBA:數據庫設計、SQL語句、存儲過程、存儲函數、觸發器 管理DBA:安裝、升級、備份、恢復、用戶管理、權限管理、監控、性能分析、基準測試 數據類型: 數值型 精確數值 int decimal 近似數值 float double real 字符型 定長:CHAR(#)、BINARY 變長:VARCHAR(#)、VARBINARY text, blob ENUM, SET 日期時間型 date, time, datetime, timestamp 數據類型: 1、存入的值類型; 2、佔據的存儲空間; 3、定長還變長; 4、如何比較及排序; 5、是否能夠索引; 數據類型總結: 整型: 類型 字節 最小值 最大值 TINYINT 1 有符號-128,無符號0 有符號127,無符號255 SMALLINT 2 有符號-32768,無符號0 有符號32767,無符號65535 MEDIUMINT 3 有符號-8388608,無符號0 有符號8388607,無符號1677215 INT和INTEGER 4 有符號-2147483648,無符號0 有符號2147483647,無符號4294967295 BIGINT 8 有符號-9223372036854775808,無符號0 有符號9223372036854775807,無符號18446744073709551615 浮點型: 類型 字節 最小值 最大值 FLOAT 4 DOUBLE 8 說明:當需要精確到小數點後10位以上,使用DOUBLE類型 定點數: 類型 字節 最小值 最大值 DEC(M,D)和DECIMAL(M,D) M+2 說明:有效取值範圍由M和D確定,浮點型存儲的是近似值,定點數型存儲的是字符串 位類型: 類型 字節 最小值 最大值 BIT(M) 1-8 BIT(1) BIT(64) 說明:字節數是M,取值範圍爲1-8 日期時間型: 類型 字節 最小值 最大值 DATE 4 1000-01-01 9999-12-31 DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59 TIMESTAMP 4 19700101080001 2038年某個時刻 TIME 3 -835:59:59 838:59:59 YEAR 1 1901 2155 字符串類型: CHAR系列: 類型 字節 描述 CHAR(M) M M爲0-255的整數 VARCHAR(M) M M爲0-65535的整數 說明:VARCHAR長度可變 TEXT類型: 類型 字節 描述 TINYTEXT 0-255 值的長度爲+2個字節 TEXT 0-65535 值的長度爲+2個字節 MEDIUMTEXT 0-167772150 值的長度爲+3個字節 LOANGTEXT 0-4294967295 值的長度爲+4個字節 說明:用於存儲大量字符串 BINARY系列: 類型 字節 描述 BINARY(M) M 允許長度爲0-M VARBINARY(M) M 允許長度爲0-M 說明:存儲二進制數據,VARBINARY長度可變 BLOB系列: 類型 字節 TINYBLOB 0-255 BLOB 0-2^16 MEDIUBLOB 0-2^24 LOANGBLOB 0-2^32 說明:存儲大量的二進制數據 mysql> SHOW CHARACTER SET; 查看當前服務器支持的所有字符集 mysql> SHOW COLLATION; 查看當前服務器支持的所有排序規則 修飾符: AUTO_INCREMENT 自動增長(對於整型)默認從一開始,步長爲一。不能爲空 AUTO_INCREMENT 整型 非空 無符號(只能爲正數)UNSIGNED 主鍵或惟一鍵 mysql> SELECT LAST_INSERT_ID();顯示上一次自動增長數值 SQL模型 常用: ANSI QUOTES -—A double quote (") is now treated as an identifier quote (`). Strings can only be quoted with a single quote (’) IGNORE_SPACE—-This sql_mode allows a space between a built-in function and the open parenthesis STRICT_ALL_TABLES—-When this sql_mode is not set, invalid data values are allowed, usually converted to valid data by using zero values or truncating the value. When this sql_mode is set, invalid data values are rejected, and an error is thrown. STRICT_TRANS_TABLES -- invalid data values in a transactional table are rejected, and an error is thrown TRADITIONAL—-Syntax and behavior closely match traditional expectations 查詢sql模型: mysql>show global variables like 'sql_mode'; MySQL服務器變量 按作用域,分爲兩類: 全局變量 SHOW GLOBAL VARIABLES 會話變量 SHOW [SESSION] VARIABLES 按生效時間,分爲兩類: 動態:可即時修改 靜態: 寫在配置文件中 通過參數傳遞給mysqld(或mysqld_safe)進程 動態調整參數的生效方式: 全局:對當前會話無效,只對新建立會話有效; 會話:即時生效,但只對當前會話有效; 服務器變量:@@變量名 顯示:SELECT @@global.sql_mode 設定:SET GLOBAL|SESSION 變量名='value'
MySQL數據類型及sql模型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.