>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20620 个阅读者 刷新本主题
 * 贴子主题:  SQL CHECK 约束 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2019-08-13 16:18:21     消息  查看  搜索  好友  邮件  复制  引用

  

SQL  CHECK 约束

SQL CHECK 约束

     CHECK 约束用于限制列中的值的范围。

     如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

     如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。            

CREATE TABLE 时的 SQL CHECK 约束

     下面的 SQL 在 "Persons" 表创建时在 "P_Id" 列上创建 CHECK 约束。CHECK 约束规定 "P_Id" 列必须只包含大于 0 的整数。

                 MySQL:

     CREATE TABLE Persons
    (

    P_Id int NOT NULL,

    LastName varchar(255) NOT NULL,

    FirstName varchar(255),

    Address varchar(255),

    City varchar(255),

    CHECK (P_Id>0)

    )

             SQL Server / Oracle / MS Access:

    CREATE TABLE Persons
    (

    P_Id int NOT NULL CHECK (P_Id>0),

    LastName varchar(255) NOT NULL,

    FirstName varchar(255),

    Address varchar(255),

    City varchar(255)

    )

             如需命名 CHECK 约束,并定义多个列的 CHECK 约束,请使用下面的 SQL 语法:

         MySQL / SQL Server / Oracle / MS Access:

     CREATE TABLE Persons
    (

    P_Id int NOT NULL,

    LastName varchar(255) NOT NULL,

    FirstName varchar(255),

    Address varchar(255),

    City varchar(255),

    CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

    )

ALTER TABLE 时的 SQL CHECK 约束

     当表已被创建时,如需在 "P_Id" 列创建 CHECK 约束,请使用下面的 SQL:

         MySQL / SQL Server / Oracle / MS Access:

    ALTER TABLE Persons
    ADD CHECK (P_Id>0)

     如需命名 CHECK 约束,并定义多个列的 CHECK 约束,请使用下面的 SQL 语法:

         MySQL / SQL Server / Oracle / MS Access:

    ALTER TABLE Persons
    ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

撤销 CHECK 约束

     如需撤销 CHECK 约束,请使用下面的 SQL:

         SQL Server / Oracle / MS Access:

    ALTER TABLE Persons
    DROP CONSTRAINT chk_Person

             MySQL:

    ALTER TABLE Persons
    DROP CHECK chk_Person

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-24 11:03:26 重新编辑]
  Java面向对象编程-->多线程(下)
  JavaWeb开发-->JSP中使用JavaBean(Ⅰ)
  JSP与Hibernate开发-->Spring、JPA与Hibernate的整合
  Java网络编程-->对象的序列化与反序列化
  精通Spring-->Vue指令
  Vue3开发-->绑定表单
  我必须得告诉大家的MySQL优化原理
  如何成为写SQL高手
  Mysql--所有版本安装以及完全卸载
  谈谈网络通信中的 ACK、NACK 和 REX
  MySQL——mmm(Master-Master replication managerfor Mysql)...
  MySQL 序列使用
  MySQL 元数据
  MySQL 正则表达式
  SQL Server 和 MySQL 中的 Date 函数
  SQL创建表的各种约束(Constraints)
  SQL CREATE DATABASE 创建数据库语句
  连接数据库发现大量的TIME_WAIT解决办法
  HTML5+JavaScript实现一个简单的音乐播放器
  数据库设计(一)——数据库设计-生命不息,奋斗不止
  TCP三次握手和四次挥手以及11种状态
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。