go

go


第二单元(数据类型和约束)

<h2>数据类型和约束</h2> <blockquote> <p>学习目标</p> </blockquote> <ul> <li>能够知道数据类型和数据约束的作用</li> </ul> <hr /> <pre><code>大家都知道数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,比如:数据类型和约束</code></pre> <h2>1. 数据类型</h2> <pre><code>数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来,使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。</code></pre> <p>常用数据类型如下:</p> <ul> <li>整数:int,tinyint,bit,</li> <li>小数:decimal</li> <li>字符串:varchar,char</li> <li>日期时间: date, time, datetime</li> <li>枚举类型 enum 数据类型说明:</li> </ul> <pre><code> decimal表示浮点数,如 decimal(5, 2) 表示共存5位数,小数占 2 位. char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab ',3表示字符数 varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab',3表示字符数 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径. 字符串 text 表示存储大文本,当字符大于 4000 时推荐使用, 比如技术博客</code></pre> <h2>2. 数据约束</h2> <blockquote> <p>约束是指数据在数据类型限定的基础上额外增加的要求.</p> </blockquote> <h5>常见的约束如下:</h5> <ul> <li>主键 primary key: 物理上存储的顺序. MySQL 建议所有表的主键字段都叫 id, 类型为 int unsigned.</li> <li>自增 auto_increment 添加如数据时,让id值自动+1</li> <li>非空 not null: 此字段不允许填写空值.</li> <li>惟一 unique: 此字段的值不允许重复.</li> <li>默认 default: 当不填写字段对应的值会使用默认值,如果填写时以填写为准.</li> <li>外键 foreign key: 对关系字段进行约束, 当为关系字段填写值时, =会到关联的表中查询此值是否存在, 如果存在则填写成功, 如果不存在则填写失败并抛出异常.</li> </ul> <h2>3. 小结</h2> <blockquote> <p>常用的数据类型:</p> <ul> <li>整数:int,bit</li> <li>小数:decimal</li> <li>字符串:varchar,char</li> <li>日期时间: date, time, datetime</li> <li>枚举类型(enum)</li> </ul> <p>常见的约束:</p> </blockquote> <ul> <li>主键约束 primary key</li> <li>非空约束 not null</li> <li>惟一约束 unique</li> <li>默认约束 default</li> <li>外键约束 foreign key</li> </ul> <p>数据类型和约束保证了表中数据的准确性和完整性</p>

页面列表

ITEM_HTML