## 數據庫操作
數據庫組件用于完成數據庫、表、記錄的管理。
登錄 [GITHUB](https://github.com/this7/sql) 查看源代碼
- [表信息](#_10)
- [獲取表字段信息](#_11)
- [獲取數據庫大小](#_12)
- [獲取表大小](#_13)
- [獲所有表信息](#_14)
- [檢測表是否存在](#_15)
- [測表字段是否存在](#_16)
- [表維護](#_17)
- [修復表](#_18)
- [優化表](#_19)
- [鎖表](#_20)
- [解鎖表](#_21)
- [清空表](#_22)
- [刪除表](#_23)
- [刪除字段](#_24)
- [執行多條SQL語句](#SQL_25)
## 表信息
#### 獲取表字段信息
獲取user表的所有字段
```
sql::getTableFieldLists('user');
//獲取user表的所有字段
```
#### 獲取數據庫大小
獲得當前數據庫大小即所有表碎片、數據、索引之和
```
sql::getDataBaseSize();
```
#### 獲取表大小
獲得 news 表大小,包含表碎片、數據、索引之和
```
sql::getTableSize('news');
```
#### 獲所有表信息
獲得當前數據庫的所有表信息 , 數據大小包括碎片、數據、索引
```
sql::getAllTableInfo('test')
```
#### 檢測表是否存在
```
sql::tableExists('comment');
```
#### 測表字段是否存在
```
sql::fieldExists('title','news');
#檢測 news 表是否存在 title 字段
```
## 表維護
#### 修復表
```
sql::repair('user');
```
#### 優化表
```
sql::optimize('user');
```
#### 鎖表
```
sql::lock('ticket_record,ticket,member');
//多個表用半角逗號分隔
Schema::lock('user as u,member as m');
//鎖定具有設置表前綴的表,多用在多表關聯操作時
```
#### 解鎖表
```
sql::unlock();
```
#### 清空表
```
sql::truncate('user');
```
#### 刪除表
```
sql::drop('news');
```
#### 刪除字段
```
sql::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);
```