首页 > 其他分享 >5.3 用户定义的完整性

5.3 用户定义的完整性

时间:2024-06-14 23:29:06浏览次数:32  
标签:5.3 定义 选课 alter 约束 完整性 table 成绩 check

5.3.1 检查约束

1.在创建表示创建检查约束

语法格式:СНЕСK( ехрr) ,expr 为约束条件表达式。 

【例5.14】在数据库study中创建选课3表,在成绩列以列级完整性约束方式定义检查约束。 

create table 选课3(
    学号 char (6) not null,
    课程号 char(4) not null,
	成绩 tinyint null check(成绩 >= 0 and 成绩 <= 100),
	primary key(学号, 课程号));


在成绩列定义的后面加上check关键字,约束表达式为成绩>=0 and 成绩<= 100,列级定义唯一性约束,未指定约束名字,MySQL自动创建约束名字。 

【例5.15】在数据库stusys中创建score4表,在grade列以表级完整性约束方式定义检查约束。 

CREATE TABLE 选课4(
    学号 CHAR(6) NOT NULL,
    课程号 CHAR(4) NOT NULL,
    成绩 TINYINT NULL,
    CONSTRAINT CK_选课4 CHECK (成绩 >= 0 AND 成绩 <= 100),
    PRIMARY KEY (学号,课程号)
);

 

这两个例题中我均用的大写字母,原因是在使用小写字母是总是出现错误,但经过仔细检查未发现任何语法问题,改用大写后成功执行。

2.删除检查约束

语法格式:alter table < 表名 > drop check < 约束名 > 

【例5.16】删除例8.15在score4表上定义的检查约束。 

alter table 选课4
	drop check CK_选课4;

3.在修改表时创建检查约束

语法格式:
alter table < 表名 > 
add [ constraint < 约束名 > ] check ( 约束条件表达式 ) 

【例5.17】重新在选课4表上定义检查约束。 

alter table 选课4
	add constraint CK_选课4 check(成绩 >= 0 and 成绩 <= 100);

5.3.2 非空约束

        非空约束指字段值不能为空值,空值指“不知道”不存在”或“无意义”的值。 在MySQL中,可以使用create table语句或alter table语句来定义非空约束,在某个列定义后面,加上关键字not null作为限定词,以约束该列的取值不能为空。

标签:5.3,定义,选课,alter,约束,完整性,table,成绩,check
From: https://blog.csdn.net/2302_79947880/article/details/139639252

相关文章

  • 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数 fun(int a[][N]),该
    下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。#include<stdio.h>#defineN3voidfun(inta[][N]){for(inti=1;i<N;i++){for(intj=0;j<i;j++){......
  • c++_0基础_讲解4 变量定义
    变量C++中的变量是存储数据值的容器,这些值可以在程序执行过程中被修改和使用。在C++中,变量必须先声明后使用,声明变量也可以称之为定义变量,它告诉编译器在何处以及如何去分配存储空间。接下来我将对C++中的变量定义进行详细的介绍。在C++中,变量的定义由以下几个部分组......
  • 5.31
    今天完成数据库原理实验四1、开始→程序→MicrosoftSQLServer→SQLServerManagementStdio。2、在“连接到服务器”对话框中,选择“Windows身份验证”,点击“连接”,进入SQLServerManagementStdio操作界面。3、创建students数据库。利用如下sql语句在students......
  • 前端使用 Konva 实现可视化设计器(15)- 自定义连接点、连接优化
    前面,本示例实现了折线连接线,简述了实现的思路和原理,也已知了一些缺陷。本章将处理一些缺陷的同时,实现支持连接点的自定义,一个节点可以定义多个连接点,最终可以满足类似图元接线的效果。请大家动动小手,给我一个免费的Star吧~大家如果发现了Bug,欢迎来提Issue哟~github源码g......
  • react-quill 自定义上传图片方法
    react-quill网上找了自定义上传图片的方式。测试后都失败,会报:react-quilladdRange():Thegivenrangeisn'tindocument.解决办法:关键点:在创建实例后,去重新设置image的uploader方法。(蓝色部分)代码: const[content,setContent]=useState('');constquillEdit=use......
  • ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 添加自定义(GLSL)数据
    ArcGISJSAPI高级教程-ArcGISMapsSDKforJavaScript-添加自定义(GLSL)数据核心代码完整代码在线示例ArcGISMapsSDKforJavaScript从4.29开始增加RenderNode类,可以添加数据以及操作FBO(ManagedFBO);通过操作FBO,可以通过后处理实现很多效果,官方提供了几......
  • 段错误一定是数组越界吗??写题的时候啥都没变,就改了定义结构体数组的位置就报错!!求大佬
    上题是PTA团体程序设计天梯赛--练习题上的一道题,下面是给的用例我的代码如下#include<stdio.h>typedefstruct {  floatnum;  floatprice;  floatavg;}CAKE;CAKEcake[1010];intmain(){  intN,D;     scanf("%d%d",&N,&D);......
  • Teamcenter AWC aw-chart自定义图表
    1.从服务器获取数据:exportconstqueryChartsData=function(data){// returnnewPromise(function(resolve){//  setTimeout(function(){    varURL_service=get_URL_service()+"reports/get_workflow_datas";//    eventBus.publish("pro......
  • uni-app在微信小程序端自定义组件中样式穿透失效
    前情uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验非常棒,公司项目就是主推uni-app。坑位最近因UI有别的事忙,导致手上暂时没什么活了,我于是抽时间优化项目代码,第一件事就是抽取复用组件。正好项目中有多处用到uVie......
  • 5.30
    import'package:flutter/material.dart';WidgetbuildCustomDrawer({requiredStringaccountEmail,requiredStringaccountName,requiredStringcurrentAccountPictureAsset,requiredStringdrawerBackgroundAsset,requiredList<DrawerItem>......