SQL語言的組成部分mysql
常見分類:sql
DDL:數據定義語言
DCL:數據控制語言,如受權
DML:數據操做語言
其它分類:數據庫
完整性定義語言:
DDL的一部分功能約束
約束:包括主鍵,外鍵,惟一鍵,條件,非空,事務等各種約束
視圖定義:即虛表,就是存儲下來的SELECT語句
事務控制
嵌入式SQL和動態SQL
數據字典:系統編目(system catalog)bash
做用:保存數據庫服務器上的元數據服務器
保存元數據的數據庫有:session
information_schema
mysql
performance_schema
元數據包括:spa
關係名稱
關係的各字段名稱
各字段的數據類型和長度
約束
關係上的視圖名稱及視圖的定義
受權用戶名稱
用戶的受權和賬戶信息
統計類的數據
關係字段的個數
關係中的行數
關係的存儲方法
SQL語言的數據類型及屬性修飾符3d
字符型1:char,varchar,text等code
# 對應可用屬性修飾符: NOT NULL:非空約束 NULL:容許爲空 DEFAULT ‘string’:默認值,不適用於text類型 CHARACTER SET ‘字符集’:設定字符集 查看當前MySQL字符集:show variables like ‘%char%’; 查看可以使用字符集:show character set; COLLATION:設定字符集的排序規則 查看可用排序規則:show collation;
字符型2:binary,varbinary,blob等orm
# 對應可用屬性修飾符
NOT NULL,NULL
DEFAULT:不適用於blob類型
整型
# 對應可用屬性修飾符:
AUTO_INCREMENT:自動增加(前提:非空、惟一,支持索引,非負值)
UNSIGNED:無符號
NOT NULL,NULL
DEFAULT
浮點型
# 對應可用屬性修飾符:
NOT NULL,NULL
DEFAULT
UNSIGNED
日期時間型
# 對應可用屬性修飾符:
NOT NULL,NULL
DEFAULT
內置類型
# ENUM和SET的區別
ENUM:枚舉,通常存儲字串,只能取其中一個使用
SET:集合,通常存儲單個字符,可組合各字符造成字串使用
# 對應可用屬性修飾符:
NOT NULL,NULL
DEFAULT
MySQL中的服務器變量
支持修改的服務器變量
# 通常分類
動態變量:可在MySQL運行時修改
靜態變量:在配置文件中修改其值,其重啓後方能生效
# 從其生效範圍來分類
全局變量:服務器級別,修改以後僅對新創建的會話有效
會話變量:會話級別,僅對當前會話有效;會話創建時,從全局繼承各變量
查看服務器變量
# 通常分類
動態變量:可在MySQL運行時修改
靜態變量:在配置文件中修改其值,其重啓後方能生效
# 從其生效範圍來分類
全局變量:服務器級別,修改以後僅對新創建的會話有效
會話變量:會話級別,僅對當前會話有效;會話創建時,從全局繼承各變量
修改服務器變量
# 前提:默認僅管理員有權限修改全局變量 set {global|session} Variable_Name=’Value’; # 注:不管是全局仍是會話級別的動態變量修改,在重啓mysqld後都會失效;若想永久生效,可定義在配置文件中的相應段中[mysqld]
MySQL中的數據操做
數據庫操做
表操做
建立表
刪除表
修改表結構
數據操做
包括插入(Insert)、替換(Replace)、更新(Update)、刪除(Delete)操做
MySQL的視圖
本質:視圖就是存儲下來的select語句
建立視圖
create view View_Name as select_clause # 如 create view stu as select Name,Age,ClassID from students;
顯示視圖的建立屬性
show create view stu;
使用:受權用戶權限時,只指定視圖,則用戶只能查看到視圖內的內容,而不能查看所有數據了