MySQL库和表相关操作

优质
小牛编辑
132浏览
2023-12-01

指定字符集建库

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表的字段类型

整型

列类型字节最小值最大值
tinyint1**-128 **127


0255
smallint2-3276832767


065535
mediumint3-83886088388607


016777215
int4-21474836482147483647


04294967295
bigint8-92233720368547758089223372036854775807


018446744073709551615

日期时间类型

列类型字节"零"值
date3'0000-00-00'
datetime8'0000-00-00 00:00:00'
timestamp400000000000000
time3'00:00:00'
year10000

字符串类型

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 为指定显示数据格式