-
SQL命令語句中寫入的check約束的格式為check(約束)。
例如,建立表分數資訊 (
分數 ID int not null 主鍵, 學生 ID nchar(50) 不 null, 考試 ID nchar(10) 不 null, 課程程式碼 nchar(10) 不 null, 分數 nchar(10) 不 null 檢查 (score in(0 到 100 之間))。
在資料庫中,檢查約束是對錶中一列或多列中可接受的資料值或資料格式的約束。 可以將檢查約束應用於一列或多列,也可以將多個檢查約束應用於單個列。 刪除表時,也會刪除對該錶的檢查約束。
-
現在,它是關於在列級別基於表的篩選定義之前規範化的檢查約束。 (MySQL 版本 >=。
mysql> create table f1 (r1 int constraint tb_f1_r1_chk1 check (mod(r1,3)=0));
query ok, 0 rows affected ( sec)
mysql> create table f2 (r1 int constraint tb_f2_r1_chk1 check (mod(r1,3)=0) not enforced);
query ok, 0 rows affected ( sec)
1.約束名稱在每個資料庫中都是唯一的。
也就是說,單個資料庫中沒有兩個相同的約束,如果沒有定義它們,系統將自動生成唯一的約束名稱。
2.check 約束對 insert update replace load data load xml 語句生效; 對相應的 ignore 語句無效。
3.並非每個函式都可以使用,例如 now()、connection id()、current user(),其結果是不確定的。
4.不適用於儲存過程和儲存函式。
5.系統變數不適用。
6.子查詢不適用。
7.外來鍵操作(例如更新時、刪除時)不適用。
8.預設情況下,“強制執行”處於啟用狀態,如果未單獨新增“強制執行”,則檢查約束將失效。
-
有兩種方法可以做到這一點。
乙個是:在列級別。
建立表教師(age int check(age>10 和 age<30),並在表級別再建立乙個。
create table teachers(age int ,·
constraint ck_age check (age > 18 and age <30)
或者正如樓上所說的那樣。
使用 alter table 語句執行 check 約束。
alter table teachers
add constraint ck_age check(age >18 and age <30)
您還可以刪除檢查約束。
alter table teachers
Drop Constraint Ck Age,希望對您有所幫助......
-
1.新增檢查約束:alter table table name add check(字段約束表示式),這主要用於在建立表後新增新的檢查。
2.建立表時新增檢查約束:欄位名稱 屬性 1 屬性 2 ·· check(字段約束表示式),主要用於在建立表時新增檢查約束。
-
check 約束用於限制列中的值範圍。
如果需要命名檢查約束,並為多個列定義檢查約束,請使用以下 SQL 語法: MySQL SQL Server Oracle MS Access
以下 SQL 位於"persons"建立表時"id_p"該列建立檢查約束。 檢查約束"id_p"列只能包含大於 0 的整數。
my sql:
create table persons
id_p int not null,lastname varchar(255) not null,firstname varchar(255),address varchar(255),city varchar(255),check (id_p>0)
sql server / oracle / ms access:
create table persons
id_p int not null check (id_p>0),lastname varchar(255) not null,firstname varchar(255),address varchar(255),city varchar(255)
小表可以提高SQL執行效率。
首先把大表放在前面,也就是如圖所示(TMP2表的資料量為40億,TMP1的資料量只有81),這樣執行時間為3小時21分鐘,然後把小表放在表前, 執行速度為10分鐘。 >>>More
sql server
查詢表的所有資訊:查詢語法為:select * from Table Name 語法中的“*”表示全部。 >>>More