首页 > 其他分享 >建表约束

建表约束

时间:2023-04-20 09:11:19浏览次数:32  
标签:VARCHAR 删除 author 外键 约束 建表 adress 主键

NOT  NULL  非空

 

 

UNIQUE  唯一约束 ,意味这个值是不可以重复的,也是不可以为空的。。。

2种写法:

 

 

 

PRIMARY KEY       主键约束(主关键字),自带非空、唯一、索引

 

 

 

 

DEFAULT   默认值  给这个一个缺省值,比如默认填入的人的性别为男 

 如果为给设定了默认约束的列赋值,该列会自动填充默认值

 

 

FOREIGN KEY  外关键字

 

 

 

主键的内容:

使用主键应注意以下几点:

  • 每个表只能定义一个主键。
  • 主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在有相同主键值的两行数据。这是唯一性原则。
  • 一个字段名只能在联合主键字段表中出现一次。
  • 【联合主键】不能包含不必要的多余字段。当把联合主键的某一字段删除后,如果剩下的字段构成的主键仍然满足唯一性原则,那么这个联合主键是不正确的。这是最小化原则。

 

        AUTO_INCREMENT约束这个东西需要就是配合主键去使用,每新增一条记录,字段值自动加 1.........

 

外键的注意事项:

外键维护的表与表之间的关系,他规定了当前列的数据必须来源于一张其他表的某一列中的主键:

外键会产生的效果

1、删除表时,如果不删除引用外键的表,被引用的表不能直接删除

2、外键的值必须来源于引用的表的主键字段

 

references   和  foreign key  两个关键字

 

 

 为什么不能删除呢?

看一看我们的sql语句:

表1:authors

 表2:books

 从这里可以看出来,后面那张表即表2是有外键的,也就是引用了表1中的主键字段,作为表2的外键,所以如果直接删除表1是不允许的,所以会报错。

所以如果要删除表1authors,就要先把引用了表1的表2books删除,再删表1authors。。。。

如下:

 

 

修改表的操作有5个:

1.增加表的字段 

Alter TABLE author ADD(hobby VARCHAR(20),adress VARCHAR(20));

2.修改表的字段的类型


Alter table author MODIFY (hobby VARCHAR(100),adress VARCHAR(100));/////////这个是错误的修改方式

正确的如下:
Alter table author MODIFY hobby VARCHAR(100);
Alter table author MODIFY adress VARCHAR(100);

3.字段类型和名称一起修改

ALTER TABLE author CHANGE  adress adr VARCHAR(30);

4.删除字段

ALTER TABLE author DROP adr;

5.改表名

ALTER TABLE author RENAME authors;

 

标签:VARCHAR,删除,author,外键,约束,建表,adress,主键
From: https://www.cnblogs.com/FJCLJ/p/17331974.html

相关文章

  • koa2 中建表方法
    需求,在model层新建商品表一.在model目录下新建goods.model.jsconst{DataTypes}=require('sequelize')constseq=require('../db/seq')constGoods=seq.define('zd_goods',{goods_name:{type:DataTypes.STRING,allo......
  • 使用约束详解[转]
    使用约束1.使用primarykey约束 其值能唯一的标识表中的每一行。这样的一列或多列成为表的主键,通过它可强制表的实体完整性。 job_idintprimarykeyclustered emp_idempidconstraintpk_emp_idprimarykeynonclustered2.使用foreign......
  • SQL查看CHECK约束信息
           以下两个语句均基于系统表sysobjects、syscomments和系统视图sysconstraints,查询结果中包括表ID、表名、列ID、列名、CHECK约束ID、CHECK约束名、CHECK约束status值以及CHECK约束的内容,TCCView为Table-Column-CheckView,结果中均为列级CHECK约束,TCView为Table-Check......
  • 带约束条件的运筹规划问题求解(模拟退火算法实现)
    0.写在前面超级简单的模拟退火算法实现ε٩(๑>₃<)۶з搭配最简单的线性规划模型进行讲解!但是如果需要的话可以直接修改编程非线性问题哦(´つヮ⊂︎)1.模型描述及处理1.1线性规划模型\[max\,f(x)=10x_1+9x_2\]\(s.t.\)\[6x_1+5x_2\leq{60}\tag{1}\]\[10x_1+20x_2\leq{......
  • Swift NSLayoutConstraint 添加约束
      lazyvarcancelBtn:UIButton={letbutton=UIButton()button.translatesAutoresizingMaskIntoConstraints=false//这句一定要写button.setTitle(NSLocalizedString("cancel",comment:""),for:.normal)button.setTitleCo......
  • pg 如何生成创建表sql语句?
    oracle有dbms_metadata.get_ddl;sqlserver可以直接右键;mysql有showcreatetable但pg好像没有直接的方法,网上找到了几种自己创建函数的方法,收集一下。法一:支持生成包含:字段(支持数组类型字段)、约束、索引(支持唯一索引、全类型索引)在内的建表语句。CREATEORREPLACEFUNCTION"public......
  • oracle、达梦数据库、MySQL数据创建表与字段注释
    /**1.oracle注释*//*表本身注释*/commentontable表名is'注释信息';/*字段注释*/commentoncolumn表名.字段名is'注释信息';/*实例如下:*/commentontableUSERis'用户表';commentoncolumnUSER.IDis'主键ID';/**2.MySQL注释*//*表本身注释*/altertable表名co......
  • MATLAB:考虑安全约束及热备用的电力系统机组组合研究
    机组组合直流潮流优化调度MATLAB:考虑安全约束及热备用的电力系统机组组合研究仿真平台:MATLAB+CPLEX平台代码具有一定的深度和创新性,注释清晰主要内容:考虑潮流约束的机组组合问题,目前大部分的机组组合都是直接按照经济最优进行计算,实际上有些调度结果可能不满足网络约束,如可......
  • 参照考虑源荷两侧不确定性的含风电的低碳调度,引入模糊机会约束,程序包括储能、风光、火
    电力系统 低碳调度源荷不确定风电程序语言:matlab+yalmip(可适用cplex或者gurobi作为求解器)内容:参照考虑源荷两侧不确定性的含风电的低碳调度,引入模糊机会约束,程序包括储能、风光、火电机组及水电机组,解决了目标函数含有分类特征的约束问题、非线性约束目标的线性转化问题,且......
  • 能量和储备调度的分布鲁棒联合机会约束
    能量和储备调度的分布鲁棒联合机会约束测试环境:MATLAB关键词:分布式鲁棒优化,能量和储备调度,联合机会约束我们开发了一个两阶段的随机计划,为能源和储备调度的联合电力和天然气系统的高渗透的可再生能源。数据驱动的分布稳健的机会约束确保了没有减负荷和高概率的可再生泄漏。我......