SQL字段约束

  1. 主键  

         primary key ,约束表数据唯一性,一张表只可有一个主键,但可以有复合主键,主键字段本身不为空

 1.1增加主键

  •        创建表的时间字段属性加上primary key [not null] comment;

       name varchar(10) primary key comment;

  •          复合主键

                create table my_test{

number char(10) comment,

course char(10) comment,

score  tinyint unsigned default 60 comment,

primary key(number,course),

}character utf8;

  •   表创建完成,追加主键

alter table T add primary key(字段列表);(追加字段主键)

alter tabke T modify 字段名  类型 primary key comment;(修改字段为主键)

        1.2、主键约束,插入重复数据提示插入失败。

        1.3、更新&主键   没有更新主键,只可删除再增加

        alter table T drop primary key;

        1.4 、主键的分类 

          实际建表很少使用真实业务数据作为主键,大部分使用逻辑性的字段(如id)

         Id int primary key auto increment  comment .逻辑主键,自增长;-----逻辑主键 

        2、自增长

          auto increment 

          2.1、特点:a.任何一个字段要作为自增长必须前提是本身是一个索引(key--栏必填);

                              b.自增长字段必须为数字(整型);

                              c.一张表最多有一个自增长字段。

          2.2 、修改自增长

                   alter tabe T auto_increment=4;  错误,只可向上修改,不可向下修改

                   alter tabe T auto_increment=10;  

          2.3 、修改自增长步长

                   set  auto_increment_increment=5;修改步长为5,默认为1.

          2.4、 删除自增长

                   自增长为字段的一个属性,可用modify修改进行删除

                   alter table T   modify   字段 类型;(自增长去除)

     3、唯一键(unique key )——保证很多字段具有唯一性,本质与主键差不多,唯一键默认允许字段为空,可用多个为空。

        也可复合唯一键    unique key (xx,xx);

       3.1、更新/删除唯一键(先删除后新增)

        alter table T  drop index   索引名字;(唯一键默认使用字段名作为索引名字)

        例: alter table T drop index  xx;

      4、索引(index) 

        4.1、索引:根据某种算法,将 已有的数据,单独建立一个文件,文件能快速匹配数据,并且能够快速的找到对应表中的记录。   

        create table T(

        属性名  数据类型,

        属性名   数据类型,

       ......

        index    索引名  (属性名xx  【(长度)】 【ASC|DESC】)

        );

   例:设置关于deptno字段的索引

     create table T (

         deptno int ,

         dname  varchar(20),

          loc varchar(20),

         index index_deptno(deptno)

     );

  在已经存在的表上创建普通索引:

   create index 索引名    on 表名   (属性名 【(长度)】【ASC|DESC】)

  通过SQL语句ALTER TABLE创建普通索引

  Alter table table_name ADD index 索引名 (属性名 【(长度)】 【ASC|DESC】)

        4.2、意义:1、提升查询数据效率

                           2、约束数据 的有效性(唯一等)

        4.3 、增加索引的条件

                1、若某个字段需要作为查询条件经常使用

                2、某个字段需要进行数据的有效约束(主键、唯一键等)

        4.4、Mysql 提供多种索引

               1、主键索引(primary key)

               2、唯一索引(unique key)

               3、全文索引(fulltext key)——针对文章内部关键字查找   

               4、普通索引   (index)

     5、外键约束(foreign key)

      设置外键约束的两个表之间具有父子关系,即子表中某个字段的取值范围由父表觉定。

    语法:create table T(

                xx1   数据类型,

                xx2  数据类型,

               .... 

            constraint  外键约束名 foreign key(属性名1)

                    references  表名  (属性名2)

            ); 

    属性名1:为子表中设置外键的字段名;

    属性名2:为父表中设置主键约束的字段名。

注意:子表中属性名1与父表的属性名2数据类型必须一致!

你可能感兴趣的:(数据库)