数据库建表语句

一个简单的表.

还有建表语句.


还有表结构


unsigned 无符号(正数)

zerofill 前导零填充

auto_increment  自增

default 默认值

not null  非空

PRIMARY KEY 主键 (非null并不重复)

unique 唯一性  (可以为null但不重复)

ENGINE=MyISAM   表类型(innoDB)

CHARSET=utf8    字符集(utf8)

\h  -- 快捷帮助

\c  -- 取消命令输入

\s  -- 查看当前数据库的状态

\q  -- 退出mysql命令行


mysql的数据类型分类

整型

tinyint   微整型

有符号:   -128 ~ 127

无符号:     0 ~ 255

主要用于:年龄数据,常常用于表示一个布尔值!

smallint 小整形

有符号: -32768 ~ 32767

无符号: 0 ~  65535

很少使用

mediumint 中整型

有符号:-8 388 608,8 388 607

无符号:0 ~ 16 777 215

较少使用

int  整型

有符号:-2147483648 ~ 2147483647

无符号:0 ~ 4294967295

表示用户的数字id.最常用的类型.

bigint 大整形

有符号:-9233372036854775808 ~ 9223372036854775807

无符号:0,18 446 744 073 709 551 615

甚少使用,因为很少需要这么大的数值

##浮点型

float  单精度浮点型

使用4字节存储浮点型

double  双精度浮点型

使用8字节存储浮点型

decimal     字符串双精度浮点型

对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

金融数据存储推荐使用decimal类型,因为他的本质是字符串.

##布尔类型

在MYSQL中没有真正的布尔类型,如果表示布尔类型需要使用tinyint来进行表示

0表示false   1表示true

##字符串类型

varchar  变长字符串

范围:0 ~ 255

char     定长字符串

范围:0 ~ 255

定长字符和变长字符的优缺点:

定长字符:浪费物理存储空间,读取效率高

变长字符:节省物理存储空间,读取效率低.

使用方式:

如果可以确定数据的最大长度.推荐使用定长字符串,效率更高.

如果没有办法确定数据的最大长度,推荐使用变长字符存储

----

tinytext   微文本类型

范围:0 ~ 255字节

text    文本类型

范围:0-65535字节

mediumtext  中文本类型

范围: 0-16 777 215字节

longtext  长文本类型

范围:0-4 294 967 295字节

---

tinyblob   微二进制文本类型

范围:0 ~ 255字节

blob    二进制文本类型

范围:0-65535字节

mediumblob  中二进制文本类型

范围: 0-16 777 215字节

longblob  长二进制文本类型

范围:0-4 294 967 295字节

blob类型和text类型的区别

text 区分字符大小写,用于存储文本数据

blob  不区分字符大小写,用于存储文件数据

----

binary   定长二进制数据

varbinary  变长二进制数据

binary和varbinary的特征":

binary和varbinary用于存储二进制字符,blob用于存储二进制文件

binary存储时采用定长字符存储,占用空间,读取效率高

varbinary存储时采用变长字符存储,节省空间,读取效率低

-----

char   用于存储正常的字符

binary  用于存储二进制的字符

text  用于存储正常的文本字符

blob  用于存储二进制文件的字符

----

##时间和日期类型

date  日期格式数据

范围:1000-01-01/9999-12-31

格式:YYYY-MM-DD

time  时间格式数据

范围:'-838:59:59'/'838:59:59'

格式: HH:MM:SS

year  年格式数据

范围:1901/2155

格式:YYYY

datetime 日期时间格式数据

范围:1000-01-01 00:00:00/9999-12-31 23:59:59

格式:YYYY-MM-DD HH:MM:SS

timestamp 时间戳格式

范围:1970-01-01 00:00:00/2037 年某时

格式:YYYYMMDD HHMMSS

----

##枚举类型

enum  枚举类型

格式: enum(值1,值2...);

必须从给定的数值中选取1个插入数据库,否则报错

##集合类型

set  集合类型

格式: set(值1,值2...)

必须从给定的值中选取N个值插入数据库,否则而报错,N>=1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,384评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,864评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,929评论 18 399
  • 分离,能够让人觉悟。执勤途中,看到妈妈上班,祖父抱着的小女孩大哭不舍要找妈妈,自己想起了小时候每次离开外婆家,...
    老懒猫阅读 1,228评论 0 0
  • 情人节晚上,朋友找我来吐槽: 这个节日,简直就是折磨人!感情本来在一个角落里安分守己,我对它安之若素。这时候偏偏跳...
    怒放的叶子阅读 4,705评论 3 7