MySQL.常见表选项及约束

1.create table 选项

  1.指定列选项 default、comment

  2.指定表选项 engine、auto_increment、comment

2.create table 约束

  1.非空约束:not null

  2.唯一约束:unique

  3.主键约束: primary key

  4.外键:      foreign key

  5.检查enum、set:chect

一、create table 选项

 a. 定义列的时候,指定列选项

  1.default<literal>:定义列的默认值

   当插入一个新行到表中并且没有给该列明确赋值,如果定义了列的默认值,将自动得到默认值,如果没有,则为null

   也可以在insert和 update 语句中使用 default 关键字给默认值赋值,函数default(column)也得到一个列的默认值

  2.comment 用来给列添加注释,最多为255个字符,注释将会保存在数据字典中

  b.  在create table 语句中的表选项

   1.engine :指定表使用的储存引擎    #储存引擎:决定了表中的数据如何存储以及如何访问,还有事务如何处理

                      MySQL中允许对每个表使用不同的储存引擎,如果在create table 中没有使用储存引擎,则使用默认的储存引擎。

      MySQL > show engines     #查询所有支持的储存引擎

      (储存引擎是重点)

   2.auto_increment :决定当前表中插入第一行时,自增列得到的第一个值是多少

   3.comment:给表添加注释

二、create table 约束

  作用:可以为列定义约束(constraint)

  约束主要是防止非法数据进入表中,确保数据的正确性和一致性(统称数据完整性)

  约束也可以防止一个表被删除

注意:1.MySQL中约束保存在表中,可以通过表查询约束信息

   2.进行约束的时间:使用create table语句、使用alter table语句

常见的约束类型有5种:1.not null    非空约束,指定某列不能为空

            2.unique     唯一约束,指定某列和几列组合的数据不能重复

            3.primary key  主键约束,指定某列的数据不能重复、唯一

            4.foreign key   外键,指定该列记录属于主表中的一条记录,参照另一条数据

            5.check      检查,指定一个表达式,用于检查指定数据

    注意:1.not null 约束只能在列级别定义,作用在多个列上约束只能定义在表级别,例如复合主键约束

       2.列级别上不能定义外键约束,并且不能给约束起名字,有MySQL自动命名(not null除外)

·        3.表级别上定义的约束可以给约束起名字(check除外)

  1.not null    非空约束

   作用:确保当前列的值不能为空

     注意:非空约束只能出现在表对象的列上

  2.

猜你喜欢

转载自www.cnblogs.com/jacky912/p/10320970.html