31、mysql數據類型

SQL語言組成部分:

DDL: 數據定義語言(DATABASE、TABLE、VIEW)

DML: 數據操作語言(SELECT、INSERT、REPLACE、UPDATE、DELETE)

完整性定義語言:DDL的一部分功能

主鍵、外鍵、惟一鍵、條件、非空、事務

視圖定義:虛表,存儲下來的SELECT語句

事務控制:

嵌入式SQL和動態SQL:

DCL:授權


數據類型的功用:

1、存儲的值類型;

2、佔據的存儲空間;

3、定長,變長;

4、如何被索引及排序;

5、是否能夠被索引;


數據字典:系統編目(system catalog)

保存數據庫服務器上的元數據


元數據:

關係的名字

每個關係的各字段的名字

各字段的數據類型和長度

約束

每個關係上的視圖的名字及視圖的定義


授權用戶的名字

用戶的授權和帳戶信息


統計類的數據:

每個關係字段的個數;

每個關係中行數;

每個關係的存儲方法;


保存元數據的數據庫:

information_schema

mysql

performance_shcema


數據類型:

字符型

數值型

精確數值型

近似數值型

單精度浮點型

雙精度浮點型

日期時間型

日期型

時間型

日期時間型

時間戳

布爾型

內建類型

ENUM, SET


字符型:

CHAR

VARCHAR

TINYTEXT

TEXT

MEDIUMTEXT

LONGTEXT


BINARY

VARBINARY

TINYBLOB

BLOB

MEDIUMBLOB

LONGBLOB


ENUM

SET


數值型:

TINYINT

SMALLINT

MEDIUMINT

INT

BIGINT

DECIMAL

FLOAT

DOUBAL


BIT


日期時間型:

DATE

TIME

DATETIME

TIMESTAMP

YEAR


CHAR、VARCHAR和TEXT幾種字符型常用的屬性修飾符:

NOT NULL 非空約束

NULL 允許爲空

DEFAULT 'string' 默認值,不適用於TEXT類型

CHARACTER SET '字符集' 設置默認字符集

COLLATION '規則' 排序規則


查看當前的字符集

SHOW VARIABLES LIKE '%char%';

查看可用的字符集

SHOW CHARACTER SET;

設置字符集

SET character_set_filesystem = utf8;

查看可用的排序規則

SHOW COLLATION;


BINARY、VARBINARY和BLOB幾種字符型常用的屬性修飾符:

NOT NULL      非空約束

NULL            允許爲空

DEFAULT 不適用於BLOB


整型的常用屬性修飾符:

AUTO_INCREMENT 自動增長(前提:非空,且惟一;支持索引,非負值;)

UNSIGNED 無符號

NULL

NOT NULL

DEFAULT 


浮點型常用修飾符:

NOT NULL

NULL

DEFAULT

UNSIGNED


日期時間型的修飾符:

NOT NULL

NULL

DEFAULT


ENUM和SET的修飾符:

NOT NULL

NULL

DEFAULT ''


MySQL SQL_MODE: SQL模式

TRADITIONAL, STRICT_TRANS_TABLES, or STRICT_ALL_TABLES



設定服務器變量的值:(僅用於支持動態的變量)

支持修改的服務器變量:

動態變量:可以MySQL運行時修改

靜態變量:於配置文件中修改其值,並重啓後方能生效;


服務器變量從其生效範圍來講,有兩類:

全局變量:服務器級別,修改之後僅對新建立的會話有效;

會話變量:會話級別,僅對當前會話有效;

會話建立時,從全局繼承各變量;


查看服務器變量:

mysql> SHOW [{GLOBAL|SESSION}] VARIABLES [LIKE ''];

mysql> SELECT @@{GLOBAL|SESSION}.VARILABLE_NAME;

mysql> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='SOME_VARIABLE_NAME';

mysql> SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='SOME_VARIABLE_NAME';


修改變量

前提:默認僅管理員有權限修改全局變量

mysql> SET {GLOBAL|SESSION} VARIABLE_NAME='VALUE'; 


注意:無論是全局還是會話級別的動態變量修改,在重啓mysqld後都會失效;想永久有效,可定義在配置文件中的相應段中[mysqld];



MySQL中字符大小寫:

1、SQL關鍵字及函數名不區分字符大小寫;

2、數據庫、表及視圖名稱的大小區分與否取決於低層OS及FS

3、存儲過程、存儲函數及事件調度器的名字不區分大小寫,但觸發器區分;

4、表別名區分大不寫;

5、對字段中的數據,如果字段類型爲Binary類型,則區分大小寫;非Binary不區分大小寫;


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