zoukankan      html  css  js  c++  java
  • MySQL(9):数据表的约束(列的属性)

    1.首先我们看一下这个图:

    1、NULL| not NULL是否为空

         规定一个字段的值是否为NULL

    2、Default value 字段默认值属性

    常见的是一个字段不能为空,而且存在默认值

    create table php2(
    a int not null default 10,
    b int not null default 21
    );

    insert into php2(a) values(a); //a 默认是10
    insert into php2(b) values(b);//b默认是21

    3、primary key |unique key(关键字)

    主索引 | 唯一索引

    可以唯一标识,某条记录的字段或者是字段的集合,就是主键

    主键可以是真实实体的属性

    但是常用的好的解决方案

    利用一个与实体信息不相关的属性,作为唯一标识记录(如下图)、

    设置主键的语法:primary key 完成

    两种方案:

    (1).字段上设置:

    create table teacher(
    t_id int primary key,   //这里主键的类型为 int ,也就是说主键可以为也可以为
    t_name varchar(5),
    class_name varchar(6),
    days tinyint unsigned
    );

    t_id 设置为主键之后,默认不能为null,

    主键就是搜索的时候用到的关键字

    (2).在定义完了字段之后,可以定义为:

    create table teacher1(
    t_id int,
    t_name varchar(5),
    class_name varchar(6),
    days tinyint unsigned,
    primary key(t_id)
    );

    下面可以清楚地看到t_id 为 no null

    也可以同时设置多个字段构成唯一主键(每个表:主键是唯一的),如下:

    create table teacher2(
    t_id int,
    t_name varchar(5),
    class_name varchar(6),
    days tinyint unsigned,
    primary key(t_id,class_name)// t_id 和 class_name 两个字段
    );

    4.自动增长

    目的:为每条记录提供一个唯一的标示

    每次插入记录时,将某个字段的值自动增加1;

    使用auto_increment 标识

    需要整型,还需要有索引…………

    create table teacher3(
    t_id int primary key auto_increment,
    t_name varchar(5),
    class_name varchar(6),
    days tinyint unsigned
    );

    添加两条语句:

    insert into teacher3 values(null, 'hebao', '0228', 34);

    insert into teacher3 values(null, 'bufan, '0223', 45);

    如下图:发现这个t_id 是唯一的自动增长的

    alter table teacher3 auto_inscrement 10;

    insert into teacher3 values (null, 'fei', '0115', 32);

    如果这时候我们再次:

    alter table teacher3 auto_increment 5;
    insert into teacher3 values(null, 'fly','0115', 98);

    出现的结果是:你会发现新增加的 是以 11 为id索引的

    当然主键也可以在初始化

    insert into teacher3 values(5, 'flrt','0123', 56);
    这个插入的元素是在'bufan'后面的

    1

    2

    5

    .

    .

    .

    只要键值唯一不冲突,也是可以修改的,如下:

    update  teacher3  set t_id=21  where  t_name='赵A' ;

  • 相关阅读:
    测试思想-流程规范 关于预发布环境的一些看法
    Jenkins 开启用户注册机制及用户权限设置
    Jenkins 利用Dashboard View插件管理任务视图
    Loadrunner 脚本开发-从文件读取数据并参数化
    SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介
    测试思想-流程规范 SVN代码管理与版本控制
    Python 关于Python函数参数传递方式的一点探索
    接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]
    Python 解决Python安装包时提示Unable to find vcvarsall.bat的问题
    lintcode :链表插入排序
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4663287.html
Copyright © 2011-2022 走看看