SQL雜文和常見問題整理

Q:數據庫啓動失敗,提示找不到pid文件
A:1、之前的數據庫服務未釋放,導致3306端口處於佔用狀態
2、數據庫初始化失敗
3、數據目錄位置錯誤
4、數據目錄權限問題

SQL模型:
ANSI QUOTES
IGNORS_SPACE
STRICT_ALL_TABLES
STRICT_TRANS_TABLES
RADITIONAL

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上處理,因此在處理速度上面就慢。

關係運算:
投影:只輸出指定的字段
選擇:只輸出符合條件的行
自然鏈接:具有相同名字的所有屬性值上取值相同的行
笛卡爾積:

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,   

表管理器:負責創建、讀取或修改表定義文件;維護表描述高速緩存;管理表鎖。
表結構定義文件。
表修改模塊:表創建、刪除、重命名、移除、更新或插入之類的操作
表維護模塊:;檢查、修改、備份、恢復、優化(碎片整理)及解析;

文件中記錄組織:
堆文件組織:一條記錄可以放在文件中的任何地方。
順序文件組織:根據”搜索碼“值順序存放;
散列文件組織:

表結構定義文件;表數據文件
表空間:table space

數據字典:Data Dictionary;mysql初始化,即mysql的數據字典

        關係的元數據:
                        關係的名字
                        字段的名字
                        字段的類型和長度
                        視圖
                        約束

                        用戶名字、授權、密碼

緩衝區管理器:
緩存置換策略:

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