SQL server約束

来源:http://www.cnblogs.com/SeNaiTes/archive/2017/10/16/7678405.html
-Advertisement-
Play Games

約束的概念:確保在列中輸入有效的值並維護表之間的關係。 Primary key約束 功能:primary key(主鍵約束),一個表中只能有一個,不能有空值,不能有重覆值. 創建表時定義約束:欄位名 數據類型[長度] primary key Unique約束功能:unique(唯一約束), 指定在同 ...


約束的概念:確保在列中輸入有效的值並維護表之間的關係。


Primary key約束

功能:primary key(主鍵約束),一個表中只能有一個,不能有空值,不能有重覆值.

創建表時定義約束:欄位名 數據類型[長度] primary key

Unique約束
功能:unique(唯一約束), 指定在同一列中的兩行不能有相同的值,只能有一行為空值。

創建表時定義約束:欄位名 數據類型 unique

Default約束

功能:執行insert語句時將預設值自動插入約束所在的列

創建表時定義約束:欄位名 數據類型 default 預設值
Default 約束註意事項
1、每列只能定義一個default約束。
2、不能用於有identity屬性的列
3、如果定義的預設值長於其對應欄位的允許長度,那麼輸入到表中的預設值將被截斷。
4、有default約束的欄位,可插入其他的值,若不插入, 則以預設值為紀錄值,且後面創建的預設約束對已
經存在的數據沒有影響.

Check約束
功能:check(檢查約束),每次執行Insert/update語句時,該約束要校驗數據的合法性。

創建表時定義約束:欄位名 數據類型 check(條件)

Check約束註意事項
1、一個表中可以定義多個檢查約束,但每個欄位只 能定義一個檢查約束。
2、當執行insert語句或者update語句時,檢查約束 將驗證數據。
3 、如果對已經有數據的表添加約束,可以用with nocheck避免對以前的數據做檢查.

Foreign key 約束

功能:確保主關鍵字(主表中)和外關鍵字(輔表中)的關係。
創建表時定義約束:欄位名 數據類型 foreign key(欄位名) references 表名(欄位名)
註意:foreign Key子句中指定的列數和數據類型必須和在references子句中的列數和數據類型匹配。且關聯
的表的欄位必須設置為主鍵.

修改約束
修改表時添加約束
alter table 表名
add constraint 約束名 primary key(欄位名) –-主鍵
add constraint 約束名 unique (欄位名) --唯一
add constraint 約束名 default(預設值) for 欄位名 –預設
add constraint 約束名 check(條件) –檢查
add constraint 約束名 foreign key(欄位名) references 主鍵表(參照欄位名) --外鍵
刪除約束
語法:
alter table 表名 drop 約束名


【例】 刪除 xs表的pk_xs約束。
alter table xs drop constraint pk_xs


註意:
1.要刪除被約束的列,必須先刪除約束
2.存在外鍵約束時,要刪除主健,必須先刪除對應的外鍵

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 10月9日,中國首屆原型設計大賽在成都開幕。此次大賽由國內優秀原型設計工具Mockplus主辦,國內多家知名協會、企業、高校協辦。本次大賽專註原型設計,旨在推動中國產品設計行業的發展,挖掘和培育設計人才,在國內尚屬首次。 近年來,隨著各類軟體、App的井噴,用戶體驗設計的要求不斷提高,產品設計行業發 ...
  • 1. 進程和線程 1.1 進程 進程:正在運行的應用程式叫進程 進程之間都是獨立的,運行在專用且受保護的記憶體空間中 兩個進程之間無法通訊 通俗的理解,手機上同時開啟了兩個App。這兩個App肯定是在不同的進程中的。所以這兩個App之間是獨立的,記憶體中的數據不能互相竄來竄去,兩個App之間也沒有辦法進 ...
  • 本篇博客的內容也不算太複雜,算是AutoLayout的一些高級的用法。本篇博客我們主要通過一些示例來看一下AutoLayout中的Content Hugging Priority以及Content Compression Resistance Priority這兩個優先順序。下方我們先來簡單的看一下這 ...
  • 線性佈局(LinearLayout) 備註 match_parent 填充佈局單元內儘可能多的空間 wrap_content 完整顯示控制項內容 orientation 有兩個值, horizontal 水平顯示, vertical 垂直顯示 百分比 使用百分比需要將 width 屬性設置為0或0px ...
  • Oracle資料庫 內置系統函數主要分為以下類別:數學函數、字元串函數、日期函數、轉換函數、聚合函數、分析聚合函數 一、數學函數 返回數字 abs(n):返回數字n的絕對值 ceil(n):返回>=數字n的最小整數 floor(n):返回<=數字n的最大整數 round(n,[m]):做四捨五入運算 ...
  • 每次看到馬路對面摩托羅拉的大牌子,都想起谷歌125億美元收購摩托羅拉移動,後來又以29億美元賣給聯想的事情。谷歌所做的決策都比較考慮長遠利益,在這串交易中,谷歌獲得了摩托羅拉最有價值的幾千項專利,穩健了Android的生態。谷歌曾經在美國一個地區占用巨大的面積建立了太陽能發電站,人稱“烤鳥”項目。因 ...
  • 今天遇到一個案例,在使用命令修改一個測試伺服器(SQL Server 2014標準版)的伺服器排序規則時,遇到了下麵錯誤信息 (具體賬號信息脫敏處理,隨機生成一個賬號密碼) The Windows account sa does not exist and cannot be provisioned... ...
  • 一查詢數值型數據: SELECT * FROM tb_name WHERE sum > 100; 查詢謂詞:>,=,<,<>,!=,!>,!<,=>,=< 二查詢字元串 SELECT * FROM tb_stu WHERE sname = '小劉' SELECT * FROM tb_stu WHER ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...