数据库(二)

 

前言

本篇博客学习数据库的详细建表语句,数据库数据类型以及约束条件。

详细建表语句

在介绍建表语句之前需要了解一下存储引擎。

存储引擎

MySQL 支持的存储引擎有以下几种:

以后我们使用的就只有 InnoDB 引擎,可以看到默认情况下存储引擎就是 InnoDB,建立一个表的时候,可以看看在文件夹里发生了什么。

mysql> create table t1(id int, name char);

建表成功后在文件夹里多了两个文件:

  • t1.frm
  • t1.ibd

frm是 frame 的缩写是表示该表的数据结构,而 ibd 表示 InnoDB data 表示存储的是 InnoDB 引擎的数据。

存储引擎就相当于一个用来存取数据的软件。

指定以某种存储引擎建表

create table t2(id int name char)engine=memory; 

建表语句

创建表的完整语法,中括号里面的表示可选参数。

create table 表名( 字段1 数据类型[(宽度) 约束条件], 字段2 数据类型[(宽度) 约束条件], 字段3 数据类型[(宽度) 约束条件]);

最后一个字段后面不能加逗号,否则会报错。

类型:使用限制字段必须以什么样的数据类型传值

约束条件:约束条件是在类型之外添加一种额外的限制。

注意

  1. 在同一张表中,字段名不能相同;
  2. 宽度和约束条件可选,字段名和类型是必须的;
  3. 最后一个字段后不加逗号。

数据类型

整型:int、tinyint、bigint等

整型默认是有符号的,可以通过约束条件改变(unsigned);

mysql> create table t3(x tinyint unsigned);

可选参数里面的宽度只有整型表示的是显示宽度,其他的都表示存储限制。

mysql> create table t4(x int(8) unsigned zerofill);

显示时不够八位的使用0填充,如果超过八位正常显示。

如果不指定限制宽度会有默认值:

mysql> create table t5(id int unsigned);

如果是有符号的整型,则会比无符号的多一位,因为要显示正负号。

mysql> create table t6(id int);

强调:对于整型来说,数据类型后的宽度并不是存储限制,而是显示限制。所以在创建表示,如果字段采用的是整型类型,完全无需指定显示宽度,默认的显示宽度,足够显示完整当初存放的数据。

浮点型:float、double、decimal等

float 4字节

double 8字节

decimal 不固定

mysql> create table t7(num float(m,d));

m 表示总长度 d 表示小数部分长度

长度表示的是字符长度而不是数据存储范围。

各个类型的最大长度

float (255,30)

double (255,30)

decimal (65,30)

区别

float 与 double 的精度不同,都是不准确的小数,decimal 准确的小数不会丢失精度

具体使用哪种类型得需要使用场景判断

float 满足大部分使用场景,decimal 适合银行系统,科学研究。

括号中 m 和 d 的值,可以限制数据存储范围,与整型不同

重点:记住 m 和 d 的含义。

字符型

常用两种

​ char 定长字符串

​ varchar 可变长度字符串

注意:字符串中,长度指定的是数据的字符长度,与字节没有关系,在创建时 varchar 必须指定,char 有默认值。

<
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信