# 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密碼查看與修改