mysql教程之学会设计表

小编:啊南 166阅读 2020.11.21

这节课教大家学会设计mysql表。

//表定义

CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(32) NOT NULL DEFAULT '' COMMENT '标题',
  `catid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '分类',
  PRIMARY KEY (`id`),
  KEY `catid` (`catid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试';

一、存储引擎

InnoDB 优先考虑

更安全 支持事务和行级锁 处理大数据的时候更有优势

MyISAM

支持表级锁 对于读多写少的小型网站更合适

二、列类型

1.数值类型

整型 TINYINT 、SMALLINT 、MEDIUMINT、INT、BIGINT

定点 DECIMAL(5,2) 高精度

符点 FLOAT(7,4)

数值类型 unsigned 无符号>0

2、日期和时间类型

DATETIME '1983-09-05 13:28:00' 到9999

TIMESTAMP '1983-09-05 13:28:00' 1970或晚于2037

DATE '1983-09-05'

3、string类型

CHAR 长度可以为从0到255的任何值

VARCHAR 0到65,535

TEXT 2的16次方

MEDIUMTEXT 2的24

三、表定义sql

CREATE DATABASE  if not exists test_php default charset=utf8mb4;
drop database test_php;
CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(32) NOT NULL DEFAULT '' COMMENT '标题',
  `catid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '分类',
  PRIMARY KEY (`id`),
  KEY `catid` (`catid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='测试';
alter table 
  add column `catid` smallint unsigned NOT NULL DEFAULT '0' COMMENT '分类';
  modify column `catid` int unsigned NOT NULL DEFAULT '0' COMMENT '分类';
  change `catid` `catid2` int unsigned NOT NULL DEFAULT '0' COMMENT '分类';

  add index catid_id(catid,id)
  drop index catid;
drop table;
关联标签: