精华内容
下载资源
问答
  • SQL 约束有哪几种并解释含义?
    千次阅读
    2020-01-13 21:02:12

     SQL约束(Constraints)主要用于规定表中的数据规则,如果存在违反约束的数据行为,行为被约束终止。约束可以在创建表时规定(通过CREATE TABLE语句),或者在表创建之后规定(通过ALTER TABLE语句)。

    在SQL中,有如下约束:

    • NOT NULL -指示某列不能存储NULL值
    • UNIQUE-保证某列的每行必须具有唯一的值
    • PRIMARY KEY-NOT NULL和UNIQUE的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速的找出表中的一个特定的记录
    • FOREIGN KRY-保证一个表中的数据匹配另一个表中的值的参照完整性。
    • CHECK-保证列中的值符合指定的条件
    • DEFAULT-规定没有给列赋值时的默认值。

     在默认的情况下,表的列接受 NULL 值。但是,NOT NULL 约束强制列不接受 NULL 值 ,并且强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

     其次,UNIQUE 约束唯一标识数据库表中的每条记录。它和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证,并且PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束,但是我们要注意的是,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

    举例在表创建之后规定约束:

    #一共有五种约束:这里以学生表stuinfo为例
    #1、添加主键约束
    alter table stuinfo add costraint pk_stuno primary key (stuno)
    #2、唯一约束
    alter table stuinfo add constraint uq_stuid unique (stuid)
    #3、添加默认约束
    alter table stuinfo add constraint df_address default ('地址不详') for address
    #4、添加检查约束
    alter table stuinfo add constraint ck_age check (age between 15 and 40) 
    #这时年龄在15到40之间
    #5、添加外键约束
    alter table stumarks add constraint fk_stuno foreign key (stuno) references stuinfo (stuno)
    #这是一个成绩表(stumarks)引用学生信息表中的列-学号
    
    更多相关内容
  • oracle数据库的5种约束类型

    千次阅读 2021-05-06 03:24:02
    非空约束F主键约束:用来唯一标示表中的一个列,一个表中的主键约束只能一个,但是可以在一个主键约束中包含多个列,也称为联合约束。外键约束:用来约束两个表中列之间的关系。唯一约束:用来唯一标示表中的列。...

    oracle 数据库 数据表的5个约束类型:

    1.主键约束

    2.外键约束

    3.唯一约束

    4.检查约束

    5.非空约束

    F

    主键约束:用来唯一标示表中的一个列,一个表中的主键约束只能有一个,但是可以在一个主键约束中包含多个列,也称为联合约束。

    外键约束:用来约束两个表中列之间的关系。

    唯一约束:用来唯一标示表中的列。与主键约束不同的是,在一个数据表中可以有多个唯一约束。

    检查约束:用来约束表中列的输入值得范围,比如在输入性别时,要求数据库中只能输入男或者女,就可以使用检查约束来约束该列。

    非空约束:约束该列一定要输入值。

    ---------------------------------------------------------------------------------------

    创建一个带检查约束的表:

    使用PL/SQL语句创建检查约束的语法如下所示:

    CONSTRAINT constraint_name CHECK(condition)

    [语法说明:]

    CONSTRAINT:关键词

    constraint_name:约束名称

    condition:约束条件

    列如:创建BOOKINFO表时,给图书价格加上一个检查约束,要求图书价格在10元到100元之间。

    CREATE TABLE BOOKINFO

    (

    BOOKID INT,

    BOOKNAME CAHR,

    PUBLISH VARCHAR2(20),

    PUBDATE VARCHAR2(20),

    PRICE DECIMAL,

    AUTHOR CHAR,

    STORE VARCHAR2(1),

    READER INT,

    REMARKS VARCHAR2(50),

    CONSTRAINT CK_PRICE CHECK(PRICE>=10 AND PRICE

    );

    ---------------------------------------------------------------------------------------

    创建一个带非空约束的表:

    举例:在创建BOOKINFO表时,给图书名称加上一个非空约束。

    CREATE TABLE BOOKINFO

    (

    BOOKID INT NOT NULL,

    BOOKNAME CHAR NOT NULL,

    PUBLISH VARCHAR2(20),

    PUBDATE VARCHAR2(20),

    PRICE DECIMAL,

    AUTHOR CHAR,

    STORE VARCHAR2(1),

    READER INT,

    REMAERKS VARCHAR2(50)

    );

    ----------------------------------------------------------------------------------------

    创建一个带唯一约束的表

    语法格式:

    CONSTRAINT constraint_name UNIQUE(column_name)

    【语法说明】

    UNIQUE:唯一约束的关键词

    column_name:唯一约束的名称。

    举例:创建BOOKINFO表时,为图书名称(BOOKNAME)列添加唯一约束

    create table bookinfo

    (

    bookid int,

    bookname char,

    publish varchar2(20),

    pubdate varchar2(20),

    price decimal,

    author char,

    store varchar2(1),

    reader int,

    remarks varchar2(50),

    CONSTRAINT UN_BOOKNAME UNIQUE (bookname)

    );

    ------------------------------------------------------------------------------------------

    创建一个带外键约束的表

    语法格式:

    CONSTRAINT constraint_name FOREIGN KEY (column_name)

    REFERENCE table_name (column_name)

    ON DELETE CASCADE

    [语法说明:]

    CONSTRAINT:创建约束的关键字

    FOREIGN KEY:外键约束的关键字

    Foreign

    REFERENCE:引用外表的关键词

    Referen

    table_name:需要引用的外表,column_name表示该表的列。

    举例:

    create table publishinfo

    (

    publishid varchar(20) primary key,

    publishname varchar(30)

    );

    create table bookinfo

    (

    bookid int,

    bookname char,

    publish varchar2(20),

    pubdate varchar2(20),

    price decimal,

    author char,

    store int,

    reader int,

    remarks varchar2(50),

    constraint fk_publish foreign key(publish) references publishinfo(publishid) on delete cascade

    );

    创建BOOKINFO表,该表带有外键约束,约束名称为'FK_PUBLISH'。相关列为publish,该外键和PUBLISHINFO表中的publishid列相关联。

    展开全文
  • mysql中常见的几种约束有哪些

    千次阅读 2021-02-03 02:13:05
    mysql中常见的几种约束有:1、主键;2、默认值;3、唯一;4、外键;5、非空。约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。约束是一种限制,它通过对表的行或列的数据做出...

    mysql中常见的几种约束有:1、主键;2、默认值;3、唯一;4、外键;5、非空。约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。

    3e4a9947d5dc511a46cc4bef24af0030.png

    约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。

    (推荐教程:mysql教程)

    MYSQL中常用的几种约束:

    1、主键

    主键(PRIMARY KEY)是用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。主键要求这一行的数据不能有重复且不能为空。

    还有一种特殊的主键——复合主键。主键不仅可以是表中的一列,也可以由表中的两列或多列来共同标识。

    2、默认值

    默认值约束(DEFAULT)规定,当有DEFAULT约束的列,插入数据为空时该怎么办。

    DEFAULT约束只会在使用INSERT语句(上一实验介绍过)时体现出来,INSERT语句中,如果被DEFAULT约束的位置没有值,那么这个位置将会被DEFAULT的值填充。

    3、唯一约束

    唯一约束(UNIQUE)比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。

    当INSERT语句新插入的数据和已有数据重复的时候,如果有UNIQUE约束,则INSERT失败。

    4、外键

    外键(FOREIGN KEY)既能确保数据完整性,也能表现表之间的关系。

    一个表可以有多个外键,每个外键必须REFERENCES(参考)另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。

    在INSERT时,如果被外键约束的值没有在参考列中有对应,比如以下命令,参考列(department表的dpt_name)中没有dpt3,则INSERT失败

    5、非空

    非空约束(NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。

    在MySQL中违反非空约束,不会报错,只会有警告。

    相关推荐:php培训

    展开全文
  • 表的几种约束

    千次阅读 2019-06-22 22:13:58
    真正约束字段的是数据类型,但是数据类型约束很单一,需要一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如一个人的身份证号,要求是唯一的。 null/not null, default, comment...

    表的约束

        真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如一个人的身份证号,要求是唯一的。

    null/not null, default, comment, zerofill,primary key, auto_increment, unique key

    1、空属性

        null、not null

                在建表的时候跟在字段后面,一把不为空

    2、默认值

        default

                在建表的时候跟在字段后面,如果插入数据的时候没有赋值,就使用默认值

    3、列描述

        comment

              在建表的时候跟在字段后面,用于描述字段

    4、零填充

        zerofill    

    • 设置零填充--alter table student change id ID int(5) zerofill;

                        如果宽度小于设定的宽度(这里设置的是5),自动填充0。

    • 使用hex函数查看--select id hex(id) from student;

    5、主键    

        primary key--不能为空;不能重复;一张表最多只能有一个主键;一般主键所在列通常是整数类型

    • 设置主键--alter table student add primary key(id);

                           在建表的时候跟在字段后面---id int primary key

                           在所有字段之后重新定义主键---primary key(id, name)

    • 删除主键--alter table student drop primary key;

    6、 自增长

        auto_increment    当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。

        

                        一般在建表的时候跟在主键后面---id int primary key auto_increment,批量插入获取的是第一个值

    • 查看自增长的程度--last_insert_id();

    7、唯一键

        unique--不能重复;可以为空;一张表可以建立多个唯一键;

                         在建表的时候跟在主键后面---name varchar(10) unique,空字段不做唯一性比较

    8、外键

        foreign key .. references ..

        外键用于定义主表和从表的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null。

    • 先建主表,再建从表

    • 设置外键--foreign key(cno) references student(sno);

       

    create table if not exists goods( 
    
    goods_id int primary key auto_increment comment '商品编号', 
    
    goods_name varchar(10) not null comment '商品名称', 
    
    unitprice float(7, 2) not null default 0 comment '商品单价',
    
    category varchar(10) comment '商品类别', 
    
    provider varchar(10) not null comment '供应商'
    
    );
    create table if not exists customer( 
    
    customer_id int primary key auto_increment comment '客户id号', 
    
    customer_name varchar(10) not null comment '客户姓名', 
    
    address varchar(10) unique comment '客户邮箱', 
    
    sex enum('男', '女') default '男' comment '客户性别', 
    
    card_id char(10) unique comment '客户身份证号码'
    
    );
    create table if not exists purchase( 
    
    order_id int primary key auto_increment comment '购买订单号', 
    
    customer_id int not null comment '客户编号', 
    
    goods_id int not null comment '商品号', 
    
    nums int not null default 0 comment '购买数量', 
    
    foreign key(customer_id) references customer(customer_id), 
    
    foreign key(goods_id) references goods(goods_id) 
    
    );

     

    展开全文
  • Mysql索引有哪几种类型

    万次阅读 2019-02-27 10:35:15
    索引是一将数据库中单列或者多列的值进行排序的结构。应用索引可以大幅度提高查询的速度。 用户通过索引查询数据,不但可以提高查询速度,也可以降低服务器的负载。用户查询数据时,系统可以不必遍历表中的所有...
  • 几种常用的经典算法(转载)

    千次阅读 2018-07-09 10:46:10
    分治算法一、基本概念 在计算机科学中,分治法是一很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单...
  • UML是什么?常用几种哪些?

    万次阅读 2018-08-08 21:06:13
    UML即Unified Model Language,是一建模语言,也是标准建模语言。在软件开发中,当系统规模比较复杂时,需要用图形抽象地来表达复杂的概念,让整个软件设计更具有可读性,可理解性,以便尽早发现软件设计时存在的...
  • 外键约束形式

    千次阅读 2019-05-13 16:21:15
    外键种约束模式: district : 严格模式(默认的),父表不能删除或更新一个已经被子表数据引用的记录。 cascade : 级联模式,父表的操作,对应子表关联的数据也跟着操作。 set null : 置空模式,父表被操作...
  • 关系型数据库MySQL常见的几种约束

    千次阅读 2018-05-07 18:46:41
    对于已经创建好的表,虽然字段的数据类型决定了所能存储的数据类型,但是表中所存储的数据是否合法并没有进行检查,想...MYSQL中,常用几种约束约束类型: 非空 默认值 唯一 主键 自增 外键 关键字: not null D...
  • MySQL创建表和约束条件(四)

    千次阅读 多人点赞 2019-11-15 14:09:16
    古语云: 万恶淫为首,百善孝为先。 我们后辈当自勉。 上一章简单介绍了 MySQL的数据类型(三),如果没有看过,请观看上一章 一. 创建表 上一章时,我们学习了 MySQL的数据类型, 就像Java 知道了 int,string 之后...
  • Python数模笔记-模拟退火算法(2)约束条件的处理

    千次阅读 多人点赞 2021-05-03 09:31:10
    最优化问题的三要素是决策变量、目标函数和约束条件。 线性规划(Linear programming),是研究线性约束条件下线性目标函数的极值问题的优化方法,常用于解决利用现有的资源得到最优决策的问题。 简单的线性规划问题...
  • 几种常用回归算法的比较

    万次阅读 多人点赞 2018-08-17 10:10:47
    原理:是一种常用的监督学习方法,给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。 判定方法: (1)在分类任务中的可使用“投票法”,即...
  • 几种常用的设计模式

    万次阅读 多人点赞 2014-12-03 17:03:46
    设计模式(Design Patterns)  ——可复用面向对象软件的基础 ...创建型模式,共五:工厂方法模式、抽象工厂模式、...结构型模式,共七:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、
  • 黑盒测试9种常用方法

    万次阅读 多人点赞 2020-10-29 10:01:40
    包括:等价类划分、边界值分析(BVA)、因果图、判定(决策)表、组合覆盖(pairwise)、正交表法(OATS)、功能图法、场景设计法、错误推测法。 其中易考:等价类划分、BVA和场景...其中同时属于白盒测试的:BVA,功能图法。
  • 一、常见的7种约束 --主键约束(primary key): --唯一约束(unique) --检查约束(check) --默认约束(default)-----for 字段名 --外键约束(foreign key)-------references 主键表名(主键字段) --非空约束(not null) -...
  • 快速梳理23种常用的设计模式

    千次阅读 多人点赞 2018-11-17 22:54:34
    本文旨在快速梳理常用的设计模式,了解每个模式主要针对的是哪些情况以及其基础特征,每个模式前都列举出一个或多个可以深入阅读的参考网页,以供读者详细了解其实现。 快速回忆 一、创建型 单例(Singleton...
  • SQL教程——常见的约束类型

    千次阅读 2020-12-01 01:21:56
    建表语句 摘要:本文主要介绍SQL的DDL语法 目录 常见的约束类型 ...一、创建表时添加约束 ...含义:一限制,用于限制表中的数据,为了保证表中的数据的准确性和可靠性 分类:六大约束 notnu...
  • UML常用图的几种关系的总结

    千次阅读 2017-09-08 11:08:46
    类图中,常见的以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency) 1. 泛化(Generalization) ...
  • 常用的4开发模式

    万次阅读 2018-09-04 00:24:00
    常用的4开发模式 1. 瀑布式开发   瀑布式开发是由W.W.Royce在1970年提出的软件开发模型,是一比较老的计算机软件开发模式,也是典型的预见性的开发模式。在瀑布式开发模式中,开发严格遵循预先计划的需求分析...
  • Qt的5种常用布局搭建

    万次阅读 2020-08-15 12:38:10
    Qt布局详解: 界面开发首先要对整个界面进行布局,使窗体上的所有的控件必须一个合适的尺寸和位置。那么做出来的界面才看起来美观。... 常用的布局方法: (1)使用水平布局类QHBoxLayout; (2)...
  • 几种常见的搜索算法

    万次阅读 多人点赞 2019-06-05 22:22:03
    分支限界法的求解目标则是尽快找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解  3.分支限界法通常用于解决离散值的最优化问题 2.搜索方式不同   1.回溯法以深度优先的方式(遍历...
  • 约束优化算法

    千次阅读 2019-09-25 13:13:01
    比如最小化目标函数 ,约束等式为 ,这里的是维向量,是矩阵,,那么使用拉格朗日乘子将约束条件合并到目标函数中,得到拉格朗日函数:。 对变量和拉格朗日乘子的更新遵循这两个式子:; ,这里的是步长 这里涉及到...
  • 几种常用的特征选择方法

    万次阅读 2018-06-26 15:55:50
    特征选择主要两个功能:减少特征数量、降维,使模型泛化能力更强,减少过拟合增强对特征和特征值之间的理解拿到数据集,一个特征选择方法,往往很难同时完成这两个目的。通常情况下,我们经常不管三七二十一,选择...
  • 常见的几种搜索算法

    千次阅读 2020-06-10 17:54:13
    广度优先搜索算法(Breadth-First Search,BFS)是一盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。
  • 常见的几种分布式锁

    万次阅读 2019-02-22 10:47:25
    当我们想要锁住某个方法时,执行以下SQL: insert into methodLock(method_name,desc) values (‘method_name’,‘desc’) 因为我们对method_name做了唯一性约束,这里如果多个请求同时提交到数据库的话,数据库...
  • 写在前面:前段时间正好用到特征选择的知识,有幸读到这篇文章,本文也主要参考这篇文章写成,但与原文章不同之处:第一、纠正了原始文章中的代码错误,使其能用python3.5正常运行;第二、增加了一些新的特征选择...
  • 数据库优化几种常见方式

    千次阅读 2019-07-21 19:59:53
    数据库优化相关几种常见方式 一、数据库编码规范 1)从 JDBC 编程的角度讲,用 PreparedStatement 一般来说比 Statement 性能高,因为在使用 时,SQL 语句被预编译并存储在 PreparedStatement 对象中.然后可以使用 ...
  • 数据库中的常见约束类型

    千次阅读 2020-06-17 22:45:20
    一般分为五大约束: 主键约束(Primary Key ...默认约束(Default constraint):某列的默认值,如在数据库里一项数据很多重复,可以设为默认值。 外键约束(Foreign Key constraint):用于在两个表之间建立关系,需

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,255
精华内容 29,702
关键字:

常用的约束条件有哪几种