SQL的五大约束作用、语法、应用场景及举例

这篇具有很好参考价值的文章主要介绍了SQL的五大约束作用、语法、应用场景及举例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SQL的五大约束包括主键约束(PRIMARY KEY)、唯一性约束(UNIQUE)、外键约束(FOREIGN KEY)、非空约束(NOT NULL)和默认约束(DEFAULT)
sql约束的作用:主要是保证数据的完整性、准确性和一致性,从而确保数据库中存储的数据质量

温馨提示:以下举例为mysql版本,若您是oracle或其他数据库,语法会有差异!!!

  1. 主键约束(PRIMARY KEY):确保某列必须要有唯一的标识符。
    应用场景:用于唯一标识数据库表中的每条记录。
    注意点:一个表中只能有一个主键,主键列的值必须是唯一的,不能为空。
    举例
CREATE TABLE Employees (  
    EmployeeID int NOT NULL,  
    FirstName varchar(50),  
    LastName varchar(50),  
    BirthDate date,  
    PRIMARY KEY (EmployeeID)  
);

在上述示例中,EmployeeID被定义为主键,确保每个员工都有一个唯一的标识符。
当表被创建后,可以使用ALTER TABLE语句来添加或删除约束

--添加
ALTER TABLE 表名   ADD PRIMARY KEY (列名);
--例子:将"user_info"表的"UserID"列设置为主键
ALTER TABLE user_info ADD PRIMARY KEY (UserID);
--删除
ALTER TABLE 表名  DROP  PRIMARY KEY ;
--例子:删除用户表的主键
ALTER TABLE user_info DROP PRIMARY KEY ;

  1. 唯一性约束(UNIQUE):唯一性约束确保在非主键列中不输入重复的值。
    应用场景:用于防止在列中输入重复的值。
    注意点:唯一性约束允许空值,但当和参与唯一性约束的任何值一起使用时,每列只允许一个空值。
    举例
    CREATE TABLE Users (  
        UserID int NOT NULL,  
        Username varchar(50) NOT NULL,  
        Email varchar(100),  
        UNIQUE (Username),  
        UNIQUE (Email)  
    );
    
    在上述示例中,UsernameEmail字段都被定义为唯一约束,确保用户名和电子邮件地址都是唯一的。
    当表被创建后,可以使用ALTER TABLE语句来添加或删除约束
--添加唯一约束
ALTER TABLE 表名 ADD UNIQUE (列名);
-- 例子
ALTER TABLE user_info ADD UNIQUE (USERID);
-- 删除唯一约束
ALTER TABLE 表名 DROP  KEY 字段名;
-- 例子
ALTER TABLE user_info DROP KEY USERID;
  1. 外键约束(FOREIGN KEY):外键约束用于强制参照完整性,提供单个字段或者多个字段的参照完整性。
    应用场景:用于保证数据库表之间的关系,确保数据表中的数据符合某种引用完整性。
    注意点:外键列的值必须在被参照表的相应列中有对应的数据。

    CREATE TABLE Orders (  
        OrderID int NOT NULL,  
        OrderNumber int NOT NULL,  
        CustomerID int,  
        PRIMARY KEY (OrderID),  
        FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)  
    );
    

    Orders表中的CustomerID字段是一个外键,它引用另一个表Customers中的CustomerID字段,确保订单与客户的关联关系。
    当表被创建后,可以使用ALTER TABLE语句来添加或删除约束

--添加外键
ALTER TABLE 表名  ADD FOREIGN KEY 约束名(列名) REFERENCES 另一个表名 (列名);
-- 例子
ALTER TABLE user_role ADD FOREIGN KEY user_role_userid (userid) REFERENCES user_info (userid);
-- 删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 约束名;
-- 例子
ALTER TABLE user_role DROP FOREIGN key user_role_userid ;
  1. 非空约束(NOT NULL):设置非空约束,该字段不能为空。
    应用场景:用于确保某列必须有值,不能为NULL。
    注意点:非空约束是一种强制性的约束,它要求列中的值必须被指定,不能为NULL。
CREATE TABLE ContactDetails (  
    ContactID int NOT NULL,  
    Name varchar(100) NOT NULL,  
    PhoneNumber varchar(20)
);

在上述示例中,Name字段被定义为非空约束,确保联系人的姓名不能为空。
当表被创建后,可以使用ALTER TABLE语句来添加或删除约束

--添加非空约束
ALTER TABLE 表名 MODIFY 列名 字段类型 NOT NULL;
-- 例子
ALTER TABLE user_info MODIFY userID varchar(64)  NOT NULL;
-- 删除非空约束
ALTER TABLE 表名 MODIFY 列名 字段类型 NULL;
-- 例子
ALTER TABLE user_info MODIFY userID varchar(64) NULL;

  1. 默认约束(DEFAULT):该数据的默认值。
    应用场景:为没有提供输入值的字段或列提供默认值。
    注意点:默认值必须满足列的数据类型的要求,如果未指定值则会自动使用默认值。

    CREATE TABLE Products (  
        ProductID int NOT NULL,  
        ProductName varchar(100),  
        Price decimal(10, 2),  
        DefaultStock int DEFAULT 0
    );
    

    在上述示例中,DefaultStock字段被定义为默认约束,其默认值为0。当插入新产品时,如果没有指定库存数量,则会默认给0。
    当表被创建后,可以使用ALTER TABLE语句来添加或删除约束文章来源地址https://www.toymoban.com/news/detail-811482.html

--添加DEFAULT约束
ALTER TABLE 表名 ALTER 字段名  SET DEFAULT 默认值;
-- 例子
ALTER TABLE user_info ALTER CITY  SET DEFAULT '北京';
-- 删除DEFAULT约束
ALTER TABLE 表名 ALTER 字段名 DROP DEFAULT;
-- 例子
ALTER TABLE user_info ALTER CITY DROP DEFAULT;

到了这里,关于SQL的五大约束作用、语法、应用场景及举例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Oracle开发和应用——PL/SQL语法2(游标及集合)

    6.4.6.  游标 这里的游标 (cursor) ,是指数据库开发中的游标,而且,这里所指的是显式定义的游标。因为,除了显式定义的游标,我们每条SQL语句也会隐式的定义、打开和关闭一个游标,其实质是一个带有指针的结果集。当我们按照顺序取出结果时,这个指针会按照从前到

    2024年02月22日
    浏览(43)
  • 深入理解 SQL UNION 运算符及其应用场景

    SQL UNION 运算符用于组合两个或多个 SELECT 语句的结果集。 每个 UNION 中的 SELECT 语句必须具有相同数量的列。 列的数据类型也必须相似。 每个 SELECT 语句中的列也必须按照相同的顺序排列。 UNION语法 UNION ALL语法 UNION 运算符默认仅选择不同的值。为了允许重复的值,请使用 U

    2024年02月05日
    浏览(62)
  • Spark SQL五大关联策略

    选择连接策略的核心原则是尽量避免shuffle和sort的操作,因为这些操作性能开销很大,比较吃资源且耗时,所以首选的连接策略是不需要shuffle和sort的hash连接策略。 ◦Broadcast Hash Join(BHJ):广播散列连接 ◦Shuffle Hash Join(SHJ):洗牌散列连接 ◦Shuffle Sort Merge Join(SMJ):洗牌

    2024年02月21日
    浏览(36)
  • sql 索引 详解并举例

    SQL索引是一种数据结构,用于提高数据库中数据的查询性能。索引可以帮助数据库系统快速定位和访问数据,从而加快查询速度和提高数据库的整体性能。 索引在数据库表的一列或多列上创建,并根据这些列的值进行排序。当执行查询时,数据库引擎可以使用索引来快速定位

    2024年02月16日
    浏览(32)
  • 关系数据库-9-[mysql8]中的语法校验规则sql_mode应用

    Mysql中sql_mode使用详解 sql_mode是一组mysql的语法校验规则,定义了mysql应该支持的sql语法、数据校验等。 1.3.1 ANSI模式 这是一种宽松模式,该模式下,会对所操作数据进行校验,如果不符合校验规则,数据会按照规则执行,并报warning警告。 1.3.2 STRICT_TRANS_TABLES模式 这是一种严格

    2024年02月02日
    浏览(49)
  • 【SQL Server】数据库开发指南(九)详细讲解 MS-SQL 触发器的的创建、修改、应用与适用场景

    本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念和基本步骤 【SQL Server】数据库开发指南(二)MSSQL数据库开发对

    2024年02月08日
    浏览(82)
  • oracle sql调优之绑定变量用法举例

    Oracle 绑定变量是一种在 SQL 语句中使用变量的方法,它可以提高 SQL 语句的执行效率、简化编程过程,并且可以防止 SQL 注入攻击。 绑定变量的作用是将变量的值与 SQL 语句分离开来,避免在每次执行 SQL 语句时都需要重新解析和编译 SQL 语句,从而提高 SQL 语句的执行效率。在

    2024年02月15日
    浏览(46)
  • 基本 SQL 命令 、重要的 SQL命令、SQL 约束 及 SQL语句 的 执行顺序

    学习目标如下: SQL语句执行顺序 基本 SQL 命令:` FROM ON JOIN WHERE GROUP BY AGG_FUNC WITH HAVING SELECT 从数据库中提取数据 UNION DISTINCT ORDER BY 排序 LIMIT 重要的sql命令: 1、SELECT - 从数据库中提取数据 2、UPDATE - 更新数据库中的数据 3、DELETE - 从数据库中删除数据 4、INSERT INTO - 向数据库

    2024年02月08日
    浏览(45)
  • SQL语句 -非空约束 - 唯一约束 - 主键约束 - 默认约束 -外键约束

    约束的概念 : 约束是作用于表中列上的规则,用于限制加入表的数据 约束的存在保证了数据库中数据的正确性、有效性和完整性 约束的分类如下 : 约束名称 描述 非空约束 保证列中所有数据不能有null值 NOT NULL 唯一约束 保证列中所有数据各不相同 UNIQUE 主键约束 主键

    2024年01月16日
    浏览(93)
  • Promise.all和promise.race的应用场景举例

    Promise.all( ) .then( )适用于处理多个异步任务,且所有的 异步任务都得到结果 时的情况。 打印的结果 Promise.race赛跑机制,只认第一名    效果图  

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包