Q:數據庫啓動失敗,提示找不到pid文件
A:一、以前的數據庫服務未釋放,致使3306端口處於佔用狀態
二、數據庫初始化失敗
三、數據目錄位置錯誤
四、數據目錄權限問題mysql
SQL模型:
ANSI QUOTES
IGNORS_SPACE
STRICT_ALL_TABLES
STRICT_TRANS_TABLES
RADITIONALsql
MYSQL服務器變量:
做用域:分爲兩類
全局變量
SHOW GLOBAL VARIABLES
會話變量
SHOW [SESSION] VARIABLES數據庫
DDL:數據操做語言
INSERT
DELETE
SELECT
UPDATE
DML:數據定義語言
CREATE
DROP
ALTER
DCL:數據控制語言
GRANT
REVOKE緩存
RDB對象:
庫、表、索引、視圖、用戶、存儲過程、存儲函數、觸發器、事件調度器。服務器
約束: 域約束:數據類型約束 外鍵約束:引用完整性約束 主鍵約束:某字段能惟一標識此字段所屬的實體,而且不容許爲空一張表中能夠有多個 檢查性約束:age:int
關係型數據庫:
表示層:表
邏輯層:存儲引擎
物理層:數據文件多線程
數據存儲和查詢 存儲管理器: 權限機完整性管理 事務管理器 文件管理器 緩衝區管理器 查詢管理器: DML解釋器 DDL解釋器 DCL解釋器 查詢執行引擎 mysql是單進程多線程的系統;不會給多個進程啓動多個進程! 線程複用 mysql不支持對稱多處理器(smp),意思是不能在一個sql處理分攤到多個cpu上處理,所以在處理速度上面就慢。
關係運算:
投影:只輸出指定的字段
選擇:只輸出符合條件的行
天然連接:具備相同名字的全部屬性值上取值相同的行
笛卡爾積:ide
SQL查詢語句:
sequel ---> SQL
SQL-86
SQL-89
SLQ-92
SQL-99
SQL-08函數
SQL語言的組成部分:
DDL:
DML:
完整性定義語言:DDL的一部分功能
視圖定義:
事務控制:
嵌入式SQL和動態SQL:
受權:DCL優化
使用程序設計語言如何RDBMS交互: 嵌入式SQL:與動態SQL相似,但其語言必須程序編譯時徹底肯定下來; ODBC;針對的程序爲 C 動態SQL:程序設計語言使用函數(mysql_conect())或者方法與RDBMS服務器創建鏈接,並進行交互;經過創建鏈接向SQL服務器發送查詢語句,並將結果保存至變量中然後進行處理。 JDBC;針對的程序爲 JAVA MYSQL支持插件式存儲引擎 mysql 5.5.8的以前的存儲引擎是MyISAM,不支持事務。特別適合查詢比較多可是修改比較少的場景。 mysql 5.5.8版本以後的存儲引擎是InnoDB, 表管理器:負責建立、讀取或修改表定義文件;維護表描述高速緩存;管理表鎖。 表結構定義文件。 表修改模塊:表建立、刪除、重命名、移除、更新或插入之類的操做 表維護模塊:;檢查、修改、備份、恢復、優化(碎片整理)及解析;
文件中記錄組織:
堆文件組織:一條記錄能夠放在文件中的任何地方。
順序文件組織:根據」搜索碼「值順序存放;
散列文件組織:spa
表結構定義文件;表數據文件
表空間:table space
數據字典:Data Dictionary;mysql初始化,即mysql的數據字典
關係的元數據: 關係的名字 字段的名字 字段的類型和長度 視圖 約束 用戶名字、受權、密碼
緩衝區管理器:緩存置換策略: