## 数据库操作
数据库组件用于完成数据库、表、记录的管理。
登录 [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);
```