SQL語言基礎:SQL中的數據完整性約束用法

? ? ? ? ? ?

前言

數據庫的完整性是指數據庫正確性和相容性,是防止合法用戶使用數據庫時向數據庫加入不符合語義的數據,從而保證了數據庫中的數據是正確的,避免非法的更新操作。

1、主鍵約束

1.1 完整性約束條件

完整性約束條件作用的對象有關系、元組、列三種。

? ? ? ? ? ? ?

?

1.2 完整性控制

主要有三個方面的功能:定義功能、檢測功能、處理功能。檢查是否違背完整性約束的時機有立即執行約束、延時執行約束。最重要的完整性約束條件是實體完整性、參照完整性。

1.3 實體完整性 Primary Key

在關系中只能有一個主鍵。聲明主鍵調入方法:

  • 1、將 Primary Key 保留字加在屬性類型之后。

    比如? Sno char(10) Primary Key

  • 2、在屬性列表中引入一個新元素,該元素包含保留字 Primary Key 和圓括號括起來的形成該鍵的屬性或屬性組列表。

    比如:

    Primary Key (Sno)

1.4 外鍵(Foreign Key) 約束

語法格式:Foreign Key (屬性名) references 表名 (屬性名)[ON DELETE][CASCADE][SET NULL]

說明:

  • Foreign Key 定義那些列為外碼 ;

  • references 指明外碼屬于哪個表的主碼 ;

  • ON DELETE CASCADE 指明刪除記錄同時刪除關系中的記錄;

  • SET NULL 表示置為空值方式。

比如:Foreign Key Sno references Student (Sno)

1.5 屬性值上的約束

主要包括:

  • not null 不為空

  • unique 唯一約束

  • check 設定屬性值需要滿足的條件 。

比如:age Number(3) check (age>0 and age <180)

1.6 全局約束

全局約束是值一些比較復雜的完整性約束,這些約束涉及多個屬性間的聯系或多個不同關系間的聯系。有基于元組的檢查子句、斷言。

1、基于元組的檢查子句

主要是針對單個關系的元組加以約束。方法是在關系定義中的任何地方加上關鍵字Check和約束條件。

比如年齡在1到170之間,Check(age>=1 and age<=170)

2、基于斷言的語法格式

格式:Create Assertion <斷言名>Check)(<條件>)

例子:

Create Assertion aa Check( Not exists  select * from Student where name'小明')

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271239.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271239.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271239.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringCloud Gateway的工作方式

SpringCloud Gateway工作方式 從官網的圖來看&#xff0c;并不是特別復雜&#xff0c;首先客戶端請求都會先經過Gateway Handler Mapping&#xff0c;匹配上就通過Gateway Web Handler轉給過濾器處理&#xff0c;過濾器分為PreFilter&#xff08;前置過濾器&#xff09;、PostF…

java制定年月日第幾天_(JAVA)輸入年月日,計算日期是今年的第幾天?

這個代碼非常正確&#xff0c;還解決了2月份等天數不對的問題。你可以試試看&#xff0c;手工代碼&#xff0c;記得采納&#xff0c;非常感謝。importjava.util.Scanner;publicclasspractice{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);System.out.pr…

后端:414 Request-URI Too Large解決方案

目錄 一、get請求改為Post請求 二、調整前端請求參數的邏輯 三、服務器配置調整 3.1 Java項目 3.2 PHP項目&#xff1a; 3.3 Net項目 3.4 nginx配置文件修改內容&#xff1a; Web項目接口請求會出現414 Request-URI Too Large這個錯誤 下面給大家分享一下相關解決辦法&#xf…

面向對象和面向過程_程序員給你解釋:面向對象和面向過程的區別,到底是怎么回事?...

今天下午在一個組的項目回顧會議上&#xff0c;這個同事講了自己用DDD思想對三個模塊的重構。把之前在Service層的一些業務邏輯下沉到了領域層里&#xff0c;由之而引起的討論。部門經理&#xff1a;“其實你的業務邏輯總體并沒有少&#xff0c;只是把邊界重新劃分了一下。”一…

Android Bug分析系列:第三方平臺安裝app啟動后,home鍵回到桌面后點擊app啟動時會再次啟動入口類bug的原因剖析...

前言 前些天&#xff0c;測試MM發現了一個比較奇怪的bug。 具體表現是&#xff1a; 1、將app包通過電腦QQ傳送到手機QQ上面&#xff0c;點擊安裝&#xff0c;安裝后選擇打開app &#xff08;此間的應用邏輯應該是要觸發 【閃屏頁Activity】&#xff0c; 然后跳轉 【主頁Activit…

SQL語言基礎:SQL授權相關知識筆記?

1、數據控制數據控制是控制對用戶存取的權力&#xff0c;由DBA來決定。DBMS數據控制與功能&#xff1a;1、通過GRANT和REVOKE將授權通知系統&#xff0c;并存入數據字典。2、當用戶發起請求時&#xff0c;根據授權情況檢查是否執行操作請求。SQL標準包括 delete、insert、selec…

JVM的位置

對于JVM的位置&#xff1a; JVM是運行在操作系統之上的,它與硬件沒有直接的交互JVM是運行在操作系統之上的&#xff0c;與硬件沒有直接的交互&#xff0c;但是可以調用底層的硬件&#xff0c;用JIN &#xff08;Java本地接口調用底層硬件接口&#xff0c;了解下就好&#xff0…

word2010添加b5紙張大小_紙張幅面規格尺寸你了解嗎?

點擊藍色文字關注|十七的錨|(單位&#xff1a;mm)關于印前調整若紙張規格標記字母的前面加一個字母R(或S)時&#xff0c;是表示紙張沒有切毛邊&#xff0c;經過切邊修整后&#xff0c;將減少到標準尺寸&#xff0c;例如RA4(或SA4)表示不切邊紙張的尺寸為240mm*330mm&#xff0c…

future promise java_第四章 Future和Promise

Netty是一個異步網絡處理框架&#xff0c;在實現中大量使用了Future機制&#xff0c;并在Java自帶Future的基礎上&#xff0c;增加了Promise機制。這兩者的目的都是使異步編程更加方便使用。在閱讀源碼之前&#xff0c;我們需要對Future的機制有很清楚的認識。## 4.1 異步編程模…

在頁面最上面顯示當前登陸的狀態

首先先判斷一下session <li> <?php if(session(m_id)) : ?> 您好, <?php echo session(m_username); ?>[<a href"<?php echo U(Member/logout) ; ?>">退出</a>] <?php else : ?> 您好&#xff0c;歡迎來到京西&a…

python入門之運算符的使用的答案_python入門教程之基本算術運算符

一、算術運算符運算符-*/%**(冪)求次方//(取整除&#xff0c;向下取整)如&#xff1a;9//2 4二、比較運算符運算符!<>(不等于&#xff0c;類似&#xff01;)<>><#舉例說明&#xff1a;x 10y 20print(x > y) # Falseprint(x < y) # Trueprint(x > …

JVM體系結構

JVM體系結構 Java虛擬機主要分為五大模塊&#xff1a; 類裝載器子系統運行時數據區執行引擎本地方法接口垃圾收集模塊1、JVM一共分為五個區&#xff0c;分別為方法區、堆、Java棧、本地方法棧、程序計 2、方法區、堆為線程共享區域&#xff0c;GC會對二個區進行垃圾回收&…

找數據?這幾個數據源網站就夠用了?

來源&#xff1a;經管學苑轉自&#xff1a;經管學苑大家好&#xff0c;我是小z在這個用數據說話的時代&#xff0c;能夠打動人的往往是用數據說話的理性分析&#xff0c;無論是對于混跡職場的小年輕&#xff0c;還是需要數據進行分析和研究的同學&#xff0c;能夠找到合適的數據…

solaris11-text-安裝GUI(gnome)

http://blog.chinaunix.net/xmlrpc.php?rblog/article&uid45057&id3018467 1.下載所需的資源Text Installer CDRepository Image(a,b)http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html2.用text CD安裝solaris11安裝那是相當的快呀&a…

java replaceall 大小寫_Java replaceAll不區分大小寫

Java 中replaceAll如何忽略大小寫呢?方式一:在正則表達式前面添加(?i)Testpublic void test_replaceAll33(){String input "I like Java,jAva is very easy and jaVa is so popular.";String replacement"cccc";System.out.println(input);System.out.p…

jdk環境變量配置_jmeter及jdk的環境變量配置

jmeter是apache公司基于java開發的一款開源壓力測試工具&#xff0c;其內部原理都是源于java的運行&#xff0c;并支持多種外部插件用于接口及性能測試&#xff0c;最主要的還是開源免費&#xff0c;在安裝jmeter前必須配置jdk環境。jdk下載地址&#xff1a;https://www.oracle…

jvm是運行在操作系統之上的,他和硬件沒有直接的交互

jvm是運行在操作系統之上的&#xff0c;他和硬件沒有直接的交互

SQL語言基礎:觸發器相關知識介紹?

1、觸發器 Trigger介紹觸發器可以實現完整性規則和保證一些復雜業務規則的實施。針對示警或滿足特定 條件下自動執行某項任務來說&#xff0c;觸發器是十分有用的機制。觸發器是由事件1驅動的特殊過程&#xff0c;一旦由某個用戶定義&#xff0c;任何用戶對該觸發器指定的數據新…

socket與socketServer通信

服務端代碼&#xff1a; public class TalkServer {public static void main(String args[]){try {//創建服務器&#xff0c;開放7777端口ServerSocket server new ServerSocket(7777);while(true){Socket socket server.accept();System.out.println("客戶端與服務端已…

java struts2值棧ognl_Struts2的值棧和OGNL牛逼啊

Struts2的值棧和OGNL牛逼啊一 值棧簡介&#xff1a;值棧是對應每個請求對象的一套內存數據的封裝&#xff0c;Struts2會給每個請求創建一個新的值棧&#xff0c;值棧能夠線程安全的為每個請求提供公共的數據存取服務。二 OGNL介紹&#xff1a;(1)基本數據&#xff1a;OGNL 是對…