草庐IT

SQL NOT NULL 约束

兔子喜欢月亮 2023-10-07 原文

SQL约束:NOT NULL

这里主要细讲SQL约束中的NOT NULL,非空约束。

        默认情况下,表的列接受NULL值,NOT NULL约束则强制对应字段不为空。

约束 说明
NOT NULL非空约束,确保列中不存储NULL值
UNIQUE唯一约束,确保每列的每行都有唯一的值
DEFAULT默认约束,确保没有给列赋值时,有规定的默认值
CHECK检查性约束,用于限定列的取值范围,确保列中的值符合指定条件
PRIMARY KEY主键,是NOT NULL与UNIQUE的结合,助于快速找到表中的一个特定记录
FOREIGN KEY外键,确保一个表中的数据匹配另一个表中的值的参照完整性。

 一、NOT NULL ,查询

对应的检测方式,可以使用 IS NULL 或者 IS NOT NULL进行查询

SELECT XXX,XXX,XX

FROM XX_XXXX

WHERE XX IS NULL 

或者是

SELECT XXX,XXX,XX

FROM XX_XXXX

WHERE XX IS NOT NULL 

 二、NOT NULL ,建表建约束

NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录,下面就在创建表时规定‘SERVER_NAME'和'OWNER'不可为空。

CREATE TABLE SERVER
(
    ID INT NOT NULL AUTO_INCREMENT,
    SERVER_NAME VARCHAR(20) NOT NULL,
    OWNER VARCHAR(20) NOT NULL,
    PRIMARY KEY('ID')
)

 二、NOT NULL ,修改表约束

SQL 约束可以在创建表时规定,也可在创建表之后规定。

ALTER TABLE XX_XXX 
ALTER COLUMN X INT(10) NOT NULL DEFUALT'0'

或者

ALTER TABLE XX_XXX 
MODIFY X INT(10) NOT NULL DEFUALT'0'

有关SQL NOT NULL 约束的更多相关文章

  1. 软约束、硬约束、Minimum Snap的轨迹优化方法 - 2

    文章目录前言约束硬约束的轨迹优化Corridor-BasedTrajectoryOptimizationBezierCurveOptimizationOtherOptions软约束的轨迹优化Distance-BasedTrajectoryOptimization优化方法前言可以看看我的这几篇Blog1,Blog2,Blog3。上次基于MinimumSnap的轨迹生成,有许多优点,比如:轨迹让机器人可以在某个时间点抵达某个航点。任何一个时刻,都能数学上求出期望的机器人的位置、速度、加速度、导数。MinimumSnap可以把问题转换为凸优化问题。缺点:MnimumSnap可以控制轨迹一定经过中间的

  2. ruby-on-rails - 子域约束并排除某些子域 - 2

    在我的routes.rb文件中,我想使用rails3中的子域约束功能,但是我想从catchall路由中排除某些域。我不想在特定的子域中有特定的Controller。这样做的最佳做法是什么。#thissubdomainidontwantallofthecatchallroutesconstraints:subdomain=>"signup"doresources:usersend#hereIwanttocatchallbutexcludethe"signup"subdomainconstraints:subdomain=>/.+/doresources:carsresources:sta

  3. ruby-on-rails - 在rails中创建一个表并添加外键约束 - 2

    我有一个表students,字段为ward_id,我必须创建一个名为guardian_users的表,字段为id,ward_id,email,guardian_id,hashed_pa​​ssword等现在我必须添加约束外键。学生中的任何更新/删除/编辑/插入应该对guardian_users具有相同的效果。我如何在Rails2.3.5中做到这一点?students表存在,但其他表还不存在。 最佳答案 您要么需要foreign_key_migrations插件或#execute方法。假设您使用插件:classCreateGuardi

  4. ruby - Rails 中的 FactoryGirl - 具有唯一约束的关联 - 2

    这个问题是对这里提出的问题的扩展:Usingfactory_girlinRailswithassociationsthathaveuniqueconstraints.Gettingduplicateerrors所提供的答案对我来说非常有效。这是它的样子:#Createsaclassvariableforfactoriesthatshouldbeonlycreatedonce.moduleFactoryGirlclassSingleton@@singletons={}defself.execute(factory_key)begin@@singletons[factory_key]=Fa

  5. ruby-on-rails - 使用 rspec 测试具有子域约束的​​路由 - 2

    我在使用子域约束进行rspec路由测试时遇到问题。特别是我有一条路线constraints:subdomain=>"api"doresources:sign_ups,:only=>[:create]end和(除其他外)测试it"doesallowcreationofsignups"do{:post=>"/sign_ups"}.shouldroute_to(:controller=>"sign_ups",:action=>"create",)end如果我删除子域约束,则此测试通过,但它会失败。我必须告诉rspec使用子域,但我不知道如何使用TIA安迪 最佳答案

  6. ruby-on-rails - 使用基于已安装引擎的 url_for 获取基于约束的 url - 2

    有什么方法可以让url_for在Action调度路由期间根据request.host返回url吗?mountCollaborate::Engine=>'/apps/collaborate',:constraints=>{:host=>'example.com'}mountCollaborate::Engine=>'/apps/worktogether'示例:当用户在example.com主机上时collaborate_path=>/apps/collaborate当用户在任何其他主机上时collaborate_path=>/apps/worktogether经过大量研究,我意识到Rou

  7. ruby-on-rails - 在具有唯一约束的关联中使用 Rails 中的 factory_girl。得到重复的错误 - 2

    我正在使用一个Rails2.2项目来更新它。我正在用工厂(使用factory_girl)替换现有的固定装置,但遇到了一些问题。问题在于表示具有查找数据的表的模型。当我使用两个具有相同产品类型的产品创建购物车时,每个创建的产品都会重新创建相同的产品类型。此错误来自对ProductType模型的唯一验证。问题演示这是我创建购物车并将其分成几部分的单元测试的结果。我必须这样做才能解决这个问题。不过,这仍然说明了问题。我会解释。cart=Factory(:cart)cart.cart_items=[Factory(:cart_item,:cart=>cart,:product=>Factory

  8. javascript - Safari 12 忽略 getUserMedia 约束 - 2

    出于某种原因,Safari12(尚未在其他版本上尝试过)完全忽略了getUserMedia约束。我的代码看起来像这样navigator.mediaDevices.getUserMedia({video:{facingMode:'environment',width:{min:640,ideal:1280}},audio:true}).then(userStream)//SafarionMacignoresconstraintsandendsupexecutinghere.catch(fallback)//ChromeonMacraisesanderrorandendsupexecuti

  9. javascript - d3.js 强制定向布局受形状约束 - 2

    我想知道是否有一种方法可以使用d3.js创建力导向布局并以任意形状限制它所有节点均等价分布在形状内边界到节点的距离等于节点之间的距离我希望已经有这样的解决方案了。否则我的想法是从力导向布局开始,并在每次迭代中检查节点到边界的距离。你有什么建议吗? 最佳答案 你的想法也是我的。在tick函数中,您可以添加额外的力。这是我的建议(未测试):force.on('tick',function(e){node.each(calcBorderDistance).attr('transform',function(d){d.x-=e.alpha*

  10. javascript - propTypes isRequired 约束在 react 中的误导行为 - 2

    我对react(或者说网络技术)很陌生。我开始构建一个使用不同组件的应用程序。当我浏览文档时,我认为将isRequired放在propTypes中,会强制用户在使用组件时提供所有isRequired属性。但是,在此示例中,即使我不传递isRequired属性,我也能够加载组件。varPanelPreview=React.createClass({getInitialState:function(){return{captionIndex:0};},propTypes:{beforeSrc:React.PropTypes.string.isRequired,afterSrc:React.

随机推荐