zoukankan      html  css  js  c++  java
  • MySQL

    1 . 非空约束

    非空约束(Not Null constraint),指字段的值不能为空。对于使用了非空约束的字段如果用户在添加数据时,没有指定值,数据库系统会报错。
    语法规则:
    列名 数据类型 NOT
    NULL
    创建表的时候指定非空约束
    create table player(
        player_id int,
        player_name varchar(20) not null   
    );
    修改列时,指定非空约束
    alter table player modify player_name varchar(20)not null;
    修改列时,删除非空约束
    alter table player modify player_name varchar(20)not null;

    2 . 主键约束

    主键约束(Primary Key Constraint),要求主键列的数据唯一,并且不允许为空,主键能够唯一地标识表中的一条记录。一张表中最多有一个主键约束。
    主键分为单字段主键多字段联合主键
    · 单字段主键是由一个字段(列)组成
    1.在定义列的同时指定主键
    列名 数据类型 PRIMARY
    KEY;
    2.在列定义的后边指定主键
    [CONSTRAINT<约束名>]PRIMARY KEY(列名);
    创建表的时候指定主键约束1
    create table player(
        player_id int primary key
    );
    创建表的时候指定主键约束2
    create table player(
        player_id int,
        constraint pk_id primary key(player_id)
    );
    追加单字段主键
    ALTER TABLE player ADD PRIMARY KEY (player_id);

    2 . 1 主键约束(多字段联合主键 - 复合主键)

    多字段联合主键(或者叫复合主键)
     主键有多个字段(列)联合组成。
     PRIMARY KEY(字段1,字段2, ...字段n);
    创建表时指定联合主键
    create table player(
        club_id int,
        country_id CHAR(18),
        PRIMARY KEY(club_id,country_id)
    );
    创建表时未指定联合主键,后添加联合主键
    create table player(
        club_id int,
        country_id CHAR(18),
    );
    ALTER TABLE player MODIFY club_id INT PRIMARY KEY;
    ALTER TABLE player ADD PRIMARY KEY(club_id);
    ALTER TABLE player ADD CONSTRAINT PK_ID PRIMARY KEY(club_id);
    删除主键
    ALTER TABLE player DROP PRIMARY KEY;

    3 . 唯一约束

    唯一约束(Unique Constraint)要求该列唯一,允许为空,唯一约束可以确保一列或者几列不出现重复值
    语法规则:
    1.定义完列之后直接指定唯一约束:
    列名 数据类型 UNIQUE
    2.定义完所有列之后指定唯一约束:
    [CONSTRAINT<约束名>]PRIMARY KEY(列名)
    创建表时添加唯一约束
    create table player(
        club_id int PRIMARY KEY,
        country_id CHAR(18) UNIQUE NOT NULL
    );
    或者:
    create table player(
        club_id int PRIMARY KEY,
        country_id CHAR(18) NOT NULL
        CONSTRAINT uk_bname UNIQUE(country_id)
    );
    修改表时添加唯一约束
    ALTER TABLE player MODIFY club_id INT UNIQUE;
    ALTER TABLE player ADD UNIQUE(club_id);
    alter table player ADD CONSTRAINT uk_bname UNIQUE(club_id);
    删除唯一约束
    ALTER TABLE player DROP INDEX uk_bname
    ALTER TABLE player DROP KEY uk_bname

    4 . 默认约束

    默认约束(Default Constraint)指定某列的默认值。
    语法规则:
    列名 数据类型 DEFAULT 默认值
    创建表时添加默认约束
    create table player(
        club_id int PRIMARY KEY,
        country CHAR(18) DEFAULT '阿根廷'
    );
    修改表时添加默认约束
    ALTER TABLE player MODIFY country VARCHAR(10) DEFAULT '阿根廷';
    ALTER TABLE player ALTER COLUMN country SET DEFAULT '阿根廷';
    删除默认约束
    ALTER TABLE player MODIFY country VARCHAR(20);
    ALTER TABLE player ALTER COLUMN country DROP DEFAULT;

    5 . 外键约束

    外键:
    外键用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。
    外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。
    外键的作用是保持数据的一致性,完整性。
    语法格式:
    [CONSTRAINT <外键约束名>] FOREIGN KEY (列名)
    references <主表名>(主键)
    创建表时添加外键约束
    create table bookcategory(
        category_id int PRIMARY KEY,
        category VARCHAR(18),
        parent_id int
    );
    create table bookinfo(
        book_id int PRIMARY KEY,
        book_category_id int,
        CONSTRAINT fk_cid FOREIGN KEY(book_category_id) REFERENCES bookcategory(category_id)
    );
    修改表时添加外键约束
    alter table bookinfo add foreign key(book_category_id) references bookcategory(category_id);
    删除外键约束
    ALTER TABLE bookinfo DROP FOREIGN KEY fk_cid;
    查外键关联关系 (指定被引用表,查哪些表对其有外键引用)
    select * from information_schema.key_column_usage where referenced_table_name='club';

    6 . 自增列

    建表时为某列增加auto_increment属性
    create table player(
        id int auto_increment,
        name varchar(20)
    );
    不存在primary key字段,新增一个自增字段,如果存在主键,则需先删除主键
    注意:auto_increment字段不能有默认值
    alter table test add column idgo int primary key auto_increment first;
    表不存在主键,给一个字段添加自增属性,需同时设为主键
    alter table test modify id int primary key auto_increment;
    删除列的自增属性,即修改列时删除定义主键即自增属性命令,自增属性会删除,而主键约束保留
    alter table test modify id int primary key auto_increment;

    7 . 注释列

    建表时为某列增加备注属性
    create table player(
        id int auto_increment comment '这里是列备注信息',
        name varchar(20)
    )comment '表注释';
    给已有列添加备注属性,注意:列名有两次
    alter table test change column name name text not null comment '列备注信息';
    修改表注释
    alter
    table test1 comment '修改后的表的注释';
    修改列注释
    alter table test1 modify column id int comment '修改后的字段注释';
    查看每列的备注
    select column_name,column_comment from INFORMATION_SCHEMA.columns where table_name='my_table';
    或
    show full columns from my_table;
  • 相关阅读:
    (十一)Activitivi5之流程控制网关:连线
    (十)Activitivi5之启动流程/完成任务的时候设置流程变量
    (九)Activitivi5之使用 RuntimeService 设置和获取流程变量
    (八)Activiti之流程变量和局部流程变量
    (七)Activiti之历史活动查询和历史任务查询和流程状态查询
    (六)Activiti之实现学生请假流程
    (五)Activiti之查看最新版本的流程定义
    (五)Activiti之获取流程定义图片和流程定义删除
    (四)Activiti之流程定义部署之ZIP方式和流程定义查询
    java程序中执行HiveQL
  • 原文地址:https://www.cnblogs.com/hsinfo/p/13643221.html
Copyright © 2011-2022 走看看