## 数据库
数据库组件用于完成数据库、表、记录的管理。
登录 [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
- 启动与关闭
- 前端
- 微信