# MySQL建库、表相关的操作
## 指定字符集建库
```
mysql> create database app default charset utf8; # 指定字符集建库
Query OK, 1 row affected (0.00 sec)
```
```
mysql> show create database app\G #查看建库语句以及库的字符集
*************************** 1. row ***************************
Database: app
Create Database: CREATE DATABASE `app` /*!40100 DEFAULT CHARACTER SET utf8 */
1 row in set (0.00 sec)
```
> 注意:MySQL5.1和MySQL5.5环境的默认建表语句中的引擎是不同的。如果希望控制表的引擎,就要在建表语句中显示的指定引擎建表
> MySQL5.1以及之前默认引擎为MyISM
> MySQL5.5.5以后默认引擎为InnoDB
MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。
## MySQL表的字段类型
### 整型
| 列类型 | 字节 | 最小值 | 最大值 |
| -- | -- | -- | -- |
| **tinyint** | **1** | **-128 ** | **127** |
| | | **0** | **255** |
| smallint | 2 | -32768 | 32767 |
| | | 0 | 65535 |
| mediumint | 3 | -8388608 | 8388607 |
| | | 0 | 16777215 |
| **int** | **4** | -2147483648 | 2147483647 |
| | | 0 | 4294967295 |
| bigint | 8 | -9223372036854775808 | 9223372036854775807 |
| | | 0 | 18446744073709551615 |
### 日期时间类型
| 列类型 | 字节 | "零"值 |
| -- | -- | -- |
| date | 3 | '0000-00-00' |
| datetime | 8 | '0000-00-00 00:00:00' |
| timestamp | 4 | 00000000000000 |
| time | 3 | '00:00:00' |
| year | 1 | 0000 |
### 字符串类型
| 值 | char(4) | 存储需求 | varchar(4) | 存储需求 |
| -- | -- | -- | -- | -- |
| '' | ' ' | 4 | '' | 1 |
| 'ab' | 'ab ' | 4 | 'ab ' | 3 |
| 'abcd' | 'abcd' | 4 | 'abcd' | 5 |
| 'abcdefgh' | 'abcd' | 4 | 'abcd' | 5 |
## 典型建表语句
```
CREATE TABLE `app_member` (
`uid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`nickname` char(16) NOT NULL DEFAULT '' COMMENT '昵称',
`sex` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '性别',
`birthday` date NOT NULL DEFAULT '0000-00-00' COMMENT '生日',
`qq` char(10) NOT NULL DEFAULT '' COMMENT 'qq号',
`score` mediumint(8) NOT NULL DEFAULT '0' COMMENT '用户积分',
`login` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '登录次数',
`reg_ip` bigint(20) NOT NULL DEFAULT '0' COMMENT '注册IP',
`reg_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '注册时间',
`last_login_ip` bigint(20) NOT NULL DEFAULT '0' COMMENT '最后登录IP',
`last_login_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最后登录时间',
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '会员状态',
PRIMARY KEY (`uid`),
UNIQUE KEY `nickname` (`nickname`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='会员表'
```
### 查看表结构
```
mysql> desc app_member;` 或者 `mysql> show columns from app_member;
````
### 查看建表语句
```
mysql> show create table app_member\G
```
> 注意: \G 为指定显示数据格式
- 写在前面
- MySQL的使用
- MySQL多表同时删除方案
- MySQL跨表、多表更新SQL语句总结
- MySQL存储引擎
- 安装
- 常规方式编译安装MySQL
- 采用cmake方式编译安装MySQL
- 使用rpm包安装MySQL
- 使用yum方式安装MySQL
- 采用二进制方式免编译安装MySQL
- 多实例的安装
- 什么是多实例
- 多实例的作用、问题以及应用场景
- 多实例安装01【推荐】
- 多实例官方安装方案02
- 启动、用户和权限管理
- 单实例MySQL的启动和关闭的方法
- 设置及修改MySQL root用户密码
- 找回丢失的MySQL root用户密码
- 创建MySQL用户及用户权限管理
- 基础命令的操作
- MySQL库和表相关操作
- MySQL中的索引操作
- MySQL常用命令
- MySQL的错误代码
- MySQL复习秘籍
- 备份与恢复
- 备份
- 恢复
- mysqlbinlog命令
- 服务日志
- 主从复制
- 主从复制部署配置问题汇总
- 主从复制读写分离
- 灾难恢复
- 配置phpmyadmin连接多实例MySQL
- 其他相关
- Sphinx实验
- 中文分词技术
- MySQL语句大全
- 用户创建、权限、删除
- 数据库与表显示、创建、删除
- 表复制及备份还原
- 数据库表中数据操作
- 修改表的列与表名
- 修改表中的数据
- 查询表
- 日志
- 批量修改Mysql表引擎为InnoDB的方法
- 数据库抽象层 PDO
- PDO对象常用方法
- PDO 事务处理
- PDO 与 MySQLi 二者效率简单比较
- 大小写敏感性 lower_case_table_names
- CentOS7安装MySQL5.7密码查看与修改