SQL語言的組成部分mysql
常見分類:sql
DDL:數據定義語言 DCL:數據控制語言,如受權 DML:數據操做語言
其它分類:數據庫
完整性定義語言: DDL的一部分功能約束 約束:包括主鍵,外鍵,惟一鍵,條件,非空,事務等各種約束 視圖定義:即虛表,就是存儲下來的SELECT語句 事務控制 嵌入式SQL和動態SQL
數據字典:系統編目(system catalog)bash
做用:保存數據庫服務器上的元數據服務器
保存元數據的數據庫有:session
information_schema mysql performance_schema
元數據包括:架構
關係名稱 關係的各字段名稱 各字段的數據類型和長度 約束 關係上的視圖名稱及視圖的定義 受權用戶名稱 用戶的受權和賬戶信息 統計類的數據 關係字段的個數 關係中的行數 關係的存儲方法
SQL語言的數據類型及屬性修飾符ide
字符型1:char,varchar,text等工具
# 對應可用屬性修飾符: NOT NULL:非空約束 NULL:容許爲空 DEFAULT ‘string’:默認值,不適用於text類型 CHARACTER SET ‘字符集’:設定字符集 查看當前MySQL字符集:show variables like ‘%char%’; 查看可以使用字符集:show character set; COLLATION:設定字符集的排序規則 查看可用排序規則:show collation;
字符型2:binary,varbinary,blob等
spa
# 對應可用屬性修飾符 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運行時修改 靜態變量:在配置文件中修改其值,其重啓後方能生效 # 從其生效範圍來分類 全局變量:服務器級別,修改以後僅對新創建的會話有效 會話變量:會話級別,僅對當前會話有效;會話創建時,從全局繼承各變量
查看服務器變量
法1:show [global|session] variables [like ‘’]; # 注:默認是session變量 法2:select @@{global|session}.Variable_Name; # 如select @@global.sql_mode; 法3:select * from information_schema.global_variables where variable_name=’Some_Variable_Name’;
修改服務器變量
# 前提:默認僅管理員有權限修改全局變量 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;
使用:受權用戶權限時,只指定視圖,則用戶只能查看到視圖內的內容,而不能查看所有數據了
注:MySQL中的Select 操做比較複雜,也是很重要的部分,因此下一篇單獨講解