## 數據庫
數據庫組件用于完成數據庫、表、記錄的管理。
登錄 [GITHUB](https://github.com/houdunwang/schema) 查看源代碼
[TOC]
## 安裝組件
使用 composer 命令進行安裝或下載源代碼使用。
```
composer require houdunwang/database
```
> HDPHP 框架已經內置此組件,不需要安裝
## 索引管理
#### 添加表主鍵
~~~
Schema::addPrimary('表名','字段');
~~~
#### 獲取表主鍵
```
Schema::getPrimaryKey('user');
```
#### 添加索引
~~~
Schema::addIndex('表名','字段');
~~~
#### 刪除索引
~~~
Schema::dropIndex('表名','字段');
~~~
#### 添加唯一索引
~~~
Schema::addUnique('表名','字段');
~~~
#### 添加組合索引
~~~
Schema::addIndex('article',['aid','cid']);
~~~
## 表信息
#### 獲取表字段信息
獲取user表的所有字段
```
Schema::getFields('user');
```
#### 獲取數據庫大小
獲得當前數據庫大小即所有表碎片、數據、索引之和
```
Schema::getDataBaseSize('hdphp')
```
#### 獲取表大小
獲得 news 表大小,包含表碎片、數據、索引之和
```
Schema::getTableSize('news');
```
#### 獲所有表信息
獲得當前數據庫的所有表信息 , 數據大小包括碎片、數據、索引
```
Schema::getAllTableInfo('hdphp')
```
#### 檢測表是否存在
```
Schema::tableExists('comment');
```
#### 測表字段是否存在
```
Schema::fieldExists('title','news');
#檢測 news 表是否存在 title 字段
```
## 表維護
#### 修復表
```
Schema::repair('user');
```
#### 優化表
```
Schema::optimize('user');
```
#### 鎖表
```
Schema::lock('ticket_record,ticket,member');
//多個表用半角逗號分隔
Schema::lock('user as u,member as m');
//鎖定具有設置表前綴的表,多用在多表關聯操作時
```
#### 解鎖表
```
Schema::unlock();
```
#### 清空表
```
Schema::truncate('user');
```
#### 刪除表
```
Schema::drop('news');
```
#### 刪除字段
```
Schema::dropField('news','aid');
//刪除news表中的aid字段
```
#### 執行多條SQL語句
```
$sql = <<<EOF
CREATE TABLE `hd_core_attachment` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL COMMENT '會員id',
`filename` varchar(300) NOT NULL COMMENT '文件名',
`path` varchar(300) NOT NULL COMMENT '相對路徑',
`type` varchar(10) NOT NULL DEFAULT '' COMMENT '類型',
`createtime` int(10) NOT NULL COMMENT '上傳時間',
`size` mediumint(9) NOT NULL COMMENT '文件大小',
`user_type` tinyint(1) DEFAULT NULL COMMENT '1 管理員 0 會員',
PRIMARY KEY (`id`),
KEY `uid` (`uid`)
) ENGINE=MyISAM AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COMMENT='附件';
CREATE TABLE `hd_rule` (
`rid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`siteid` int(10) unsigned NOT NULL COMMENT '站點編號',
`name` varchar(45) DEFAULT NULL COMMENT '規則名稱',
`module` varchar(45) DEFAULT NULL COMMENT '模塊名稱',
`rank` tinyint(3) unsigned DEFAULT NULL COMMENT '排序',
`status` tinyint(1) unsigned DEFAULT NULL COMMENT '是否禁用',
PRIMARY KEY (`rid`),
KEY `fk_hd_rule_hd_site1_idx` (`siteid`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='回復規則';
EOF;
Schema::sql($sql);
```
- 文檔已經遷移到后盾人
- 介紹
- 框架特性
- 開發規范
- 許可協議
- 作者向軍
- 安裝框架
- 更新框架
- 基礎
- 入口文件
- 應用配置
- 優雅鏈接
- 目錄結構
- 系統常量
- 自動加載
- 應用密鑰
- 系統函數
- CSRF保護
- 依賴注入
- 跨域訪問
- 配置
- 配置文件
- 基本功能
- 擴展配置
- c 函數
- 控制器
- 定義聲明
- 基本使用
- 相關函數
- 響應消息
- 路由
- 基礎知識
- 基礎路由
- 路由參數
- 參數檢測
- 依賴注入
- 控制器
- 分組路由
- RESTful
- 別名路由
- 數據
- 配置相關
- 核心操作
- 查詢構造器
- 日志記錄
- 分頁處理
- 事務處理
- 函數相關
- 數據庫
- 數據遷移
- 數據填充
- 模型
- 定義模型
- 模型動作
- 模型驗證
- 自動完成
- 自動過濾
- 字段保護
- 數據填充
- 多表關聯
- 分頁處理
- 倉庫
- 數據倉庫
- 查詢規則
- 視圖
- 基礎知識
- 模板配置
- 模板文件
- 分配數據
- 系統標簽
- 擴展標簽
- 緩存模板
- 模板繼承
- 視圖函數
- widget
- vue組件
- 中間件
- 中間件
- 緩存
- 基本操作
- 文件緩存
- 數據表緩存
- 服務
- 服務容器
- 定制服務
- 相關函數
- 請求
- 基本使用
- 請求擴展
- 測試
- 基礎知識
- 基本使用
- HTTP測試
- 調試
- 調試模式
- 日志管理
- 組件
- 多語言
- 響應處理
- Cookie
- Session
- 驗證碼
- XML
- 自動驗證
- 文件處理
- 壓縮解壓
- RBAC
- 數組增強
- 分頁管理
- 圖像處理
- 生成靜態
- 加密解密
- 字符串
- 數據集合
- 工具服務
- 目錄操作
- 郵件發送
- CURL
- QQ登錄
- 數據備份
- 購物車
- 日志處理
- 命令組件
- 二維碼
- 后盾云
- 日期處理
- 阿里
- 支付寶
- 阿里云直播
- 阿里云短信
- 阿里云郵件
- 阿里云OSS
- SOCKET
- 啟動與關閉
- 前端
- 微信