當前位置:首頁 » 編程語言 » sql限制某列值
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql限制某列值

發布時間: 2023-06-02 08:00:29

sql中創建表時怎樣限定屬性值的取值,如一個表中有一列為"科目",限定其只能取"語文","數學","英語".

創建表時:
Create Table 表名(列名 char(10) check (列名 In('語文','數學','英語')))

創建後添加約束:
Alter Table 表名 add Constraint 約束名 CHeck(
列名 In('語文','數學','英語'))

Ⅱ 關於SQL Server中限制值的范圍的問題。

簡單的范圍可以使用check約束
使用的是sql
server
2008簡單說一下從sql
server
management
studio
中創建check,右擊表格---選擇設計----右擊要進行限制的列----選擇check約束----在表達式中輸入限制條件,例如,id>10,修改一下名字,關閉就可以了;
還可以用命令創建,用命令創建check約束分為,創建表時候建立約束和創建表之後建立約束,可查看相關書籍資料,有詳細描述。
p.s.
check約束是通過check約束中的表達式確定有效值,不是基於其它表格獲取有效值

Ⅲ sql server 如何限制某一列值的數值長度 如:在某一資料庫中圖書證號必須是6位數字謝謝啦

速發展,使它們已經成為現代信息技術的重要組成部分,是現在計算機信息系統和計算機應用系統的基礎和核心。對於任何一個企業來說,數據是企業重要的資產,如何有效利用這些數據,對於企業發展起著極其重要的作用。隨著我國市場經濟的迅速發展和人們生活水平的不斷提高,圖書館藏書的樹木逐漸增大,這也挑戰了圖書管理方面的技術,以前的人工管理方式已經不再適應現在的環境,取而代之的是先進的圖書管理系統,通過使用PowerBuilder創建的圖書管理系統可以讓管理人員方便而快捷的進行管理、查詢、借閱、錄入等工作。
2.需求分析
2.1系統目標
圖書管理信息系統是典型的信息管理系統(MIS),其開發主要包括後台資料庫的建立和維護以及前端應用程序的開發兩個方面。對於前者要求建立起數據一致性和完整性強.數據安全性好的庫。而對於後者則要求應用程序功能完備,易使用等特點。
系統開發的總體任務是實現各種信息的系統化,規范化和自動化。
2.2需求定義
圖書館管理系統開發。系統開發的總的設計目標是實現圖書管理的系統化、規范化和自動化,實現對圖書資料的集中統一的管理。
本系統主要實現對圖書館信息的管理,主要功能為管理有關讀者、圖書、借閱、查詢、刪除和管理員的信息等。本系統結構分為讀者類別管理、讀者檔案管理、圖書類型管理、圖書檔案管理以及圖書流程管理,讀者管理可以瀏覽讀者的信息,可以對讀者信息進行維護。圖書管理可以瀏覽圖書的信息,可以對圖書信息進行維護。借閱管理可以顯示當前資料庫中書籍借閱情況,可以對借閱信息進行維護。本系統主要解決的問題是利用關鍵字對資料庫進行查詢。
其系統的功能模塊圖如下:

圖2-1 系統功能模塊圖

針對一般圖書管理信息系統的需求,通過對圖書管理工作過程的內容和數據流程分析,設計如下面所示的數據項:

讀者信息
屬性:讀者學號,讀者姓名,讀者性別,聯系電話,所在院系,生效日期,失效日期,違章狀況,累計借書
主鍵:讀者學號
書籍信息
屬性:ISBN,書名,作者,出版社,出版日期,簡介
主鍵:ISBN
管理員信息
屬性:工作號,姓名,性別,電話,家庭住址
主鍵:工作號
2.3數據流程
2.3.1 讀者
作為學生對圖書管理系統的要求有:
1. 能按各種方式(比如書名、編號、作者)查詢圖書館的藏書情況。
2. 能夠方便地借閱圖書、續借圖書、歸還圖書。
3. 能夠查詢自己的基本資料、借閱圖書情況。
4. 能夠熟悉圖書管理系統的使用。
讀者進入系統工作的流程圖為:

2-1進入系統工作的流程圖
2.3.2 圖書管理員
作為圖書管理員,他們對圖書管理系統的要求有:
1. 能方便的對圖書進行錄入登記,注銷陳舊的書籍。
2. 能夠方便地對新生進行登記,或注銷已經畢業的學生信息(基本信息,借閱信息)。
3. 能夠隨時發布一些諸如各學院學生借閱圖書超期情況、館內藏書情況、借情況等信息,以便各學院能夠隨時獲知本院學生的一些借書信息。
圖書管理員工作的流程圖為:

2-2圖書管理員工作流程圖
3.功能描述
系統功能分析是在系統開發的總體任務的基礎上完成。本系統需要完成的功能主要有5部分:
(1) 圖書基本情況的錄入,修改,刪除等基本操作。
1.書籍類別標準的制定,類別信息的輸入,包括類別編號,類別名稱,關鍵詞,備注信息等。
2.書籍類別信息的查詢,修改,包括類別編號,類別名稱,關鍵詞,備注信息等。
3.書籍信息的輸入,包括書籍編號,書籍名稱,書籍類別,作者名稱,出版社名稱,出版日期,書籍頁數,關鍵詞,登記日期,備注信息等。
(2) 辦理借書卡模塊。
1.新生辦理借書證。
2.丟失辦理借書證。
(3) 實現借書功能。
1.借書信息的輸入,包括借書信息編號,讀書編號,讀者姓名,書籍編號,書籍名稱,借書日期,備注信息等。
2.借書信息的查詢,修改,包括借書信息編號,讀者編號,讀者姓名,書籍編號,書籍名稱,借書日期,備注信息等。
(4) 實現還書功能。
1.還書信息的輸入,包括還書信息編號,讀者編號,讀者姓名,書籍編號,書籍名稱,借書日期,還書日期,備注信息等。
2.還書信息的查詢和修改,包括還書信息編號,讀書編號,讀者姓名,書籍編號,書籍名稱,借書日期,還書日期,備注信息等。
(5) 能方便的對圖書進行查詢。對超期的情況能自動給出提示信息
4.概念模型設計
各部分E-R圖如下:
(1)讀者信息類別實體E-R圖

4-1 讀者類別實體E-R圖

(2)書籍信息類別實體E-R圖

4-2 書籍類別實體E-R圖

(3)圖書借閱實體E-R圖:

4-3 圖書借閱實體E-R圖

(4)投訴管理實體E-R圖:

4-4 投訴管理實體E-R圖

4-5實體之間關系的E-R圖

借閱關系(讀者、管理員、書籍三元關系)

圖4-6 CDM圖

5.邏輯模型設計和優化
從理論『E-R模型』到理論『關系模型』的整理轉換,通過E-R模型到關系模型的轉化,可以得到如下關系模式:
借閱關系
屬性:工作號,讀者學號,ISBN,是否續借,借書日期,還書日期,備注。
主鍵:工作號,讀者學號,ISBN
管理員_書籍關系
屬性:工作號,ISBN,添加時間,是否在館
主鍵:工作號,ISBN
管理員_學生關系
屬性:工作號,讀者學號,確認借還
主鍵:工作號,讀者學號
通過由概念模型設計得到CDM圖powerdesigner轉換成對應的PDM圖:

PDM圖

5.1圖書信息表
列名 數據類型 可否為空
ISBN varchar 否
書名 varchar 否
作者 varchar 否
出版社 varchar 是
出版日期 datetime 是
簡介 varchar 是

5.2 讀者信息表
列名 數據類型 可否為空
讀者學號 varchar 否
讀者姓名 varchar 否
讀者性別 varchar 否
聯系電話 varchar 是
所在院系 varchar 否

5.3 管理員信息表
列名 數據類型 可否為空
工作號 varchar 否
姓名 varchar 否
性別 varchar 否
電話 varchar 是
家庭住址 varchar 是

5.4 借閱表
列名 數據類型 可否為空
工作號 char 否
ISBN char 否
讀者學號 char 否
借閱日期 datetime 否
還書日期 datetime 否
是否續借 char 否

5.5 管理員_書籍
列名 數據類型 可否為空
工作號 char 否
ISBN char 否
添加時間 datatime 是
是否在館 char 是

5.6 管理員_學生
列名 數據類型 可否為空
工作號 char 否
讀者學號 char 否
借還確認 char 否

6.物理設計和實施
從理論『關系模型』到實現\實施『資料庫建立』,物理文件的安排和建立索引
6.1 建立索引
為了提高在表中搜索元組的速度,在實際實現的時候應該基於鍵碼建立索引是各表中建立索引的表項:

(1)讀者信息(讀者學號)
(2)書籍信息(ISBN)
(3)管理員信息(工作號)
(4)借閱(工作號,讀者學號,ISBN)
(5)管理員_書籍(工作號,ISBN)
(6)管理員_學生(工作號,讀者學號)

6.2 SQL語句
如下所示:
/*==============================================================*/
/* Table: 書籍信息 */
/*==============================================================*/
create table 書籍信息
(
ISBN char(20) not null,
書名 char(20),
作者 char(10),
出版社 char(15),
出版日期 char(30),
簡介 char(160),
constraint PK_書籍信息 primary key (ISBN)
);

/*==============================================================*/
/* Index: 書籍信息_PK */
/*==============================================================*/
create unique index 書籍信息_PK on 書籍信息 (
ISBN ASC
);

/*==============================================================*/
/* Table: 投訴 */
/*==============================================================*/
create table 投訴
(
工作號 char(10) not null,
學號 char(10) not null,
投書意見 char(100),
投訴日期 char(30),
受訴日期 char(30),
constraint PK_投訴 primary key (工作號, 學號)
);

/*==============================================================*/
/* Index: 投訴_PK */
/*==============================================================*/
create unique index 投訴_PK on 投訴 (
工作號 ASC,
學號 ASC
);

/*==============================================================*/
/* Index: 投訴_FK */
/*==============================================================*/
create index 投訴_FK on 投訴 (
工作號 ASC
);

/*==============================================================*/
/* Index: 投訴2_FK */
/*==============================================================*/
create index 投訴2_FK on 投訴 (
學號 ASC
);

/*==============================================================*/
/* Table: 登記 */
/*==============================================================*/
create table 登記
(
工作號 char(10) not null,
學號 char(10) not null,
ISBN char(20) not null,
證書日期 char(30) not null,
還書日期 char(30) not null,
違章狀況 char(160),
累計借書 char(160),
備注 char(160),
constraint PK_登記 primary key (工作號, 學號, ISBN)
);

/*==============================================================*/
/* Index: 登記_PK */
/*==============================================================*/
create unique index 登記_PK on 登記 (
工作號 ASC,
學號 ASC,
ISBN ASC
);

/*==============================================================*/
/* Index: 登記_FK */
/*==============================================================*/
create index 登記_FK on 登記 (
工作號 ASC
);

/*==============================================================*/
/* Index: 登記2_FK */
/*==============================================================*/
create index 登記2_FK on 登記 (
學號 ASC
);

/*==============================================================*/
/* Index: 登記3_FK */
/*==============================================================*/
create index 登記3_FK on 登記 (
ISBN ASC
);

/*==============================================================*/
/* Table: 管理員信息 */
/*==============================================================*/
create table 管理員信息
(
工作號 char(10) not null,
姓名 char(10),
性別 char(5),
電話 char(15),
所在院系 char(25),
constraint PK_管理員信息 primary key (工作號)
);

/*==============================================================*/
/* Index: 管理員信息_PK */
/*==============================================================*/
create unique index 管理員信息_PK on 管理員信息 (
工作號 ASC
);

/*==============================================================*/
/* Table: 讀者信息 */
/*==============================================================*/
create table 讀者信息
(
學號 char(10) not null,
姓名 char(10),
性別 char(5),
電話 char(15),
所在院系 char(25),
constraint PK_讀者信息 primary key (學號)
);

/*==============================================================*/
/* Index: 讀者信息_PK */
/*==============================================================*/
create unique index 讀者信息_PK on 讀者信息 (
學號 ASC
);
7.主要數據操縱語句
7.1管理員操作
(1)注冊(register)
INSERT INTO 管理員 (工作號,姓名,性別,電話,家庭住址,備注)
VALUES(#工作號,#姓名,#性別,#電話,#家庭住址,#備注)
說明:在登記操作後,管理員得到一個唯一的工作號,可以根據這個工作號采查詢和修改數據。
(2)注銷(unregister)
DELETE
FROM Provider
WHERE(工作號=#工作號);
(3)修改個人信息(update)
UPdate 管理員
Set (工作號=#工作號,姓名=#姓名,性別=#性別,電話=#電話,家庭住址=#家庭住址)
WHERE(工作號=#工作號)
(4)增加書籍(addbooks)
INSERT INTO 圖書 (ISBN,書名,作者,出版社,出版日期,簡介,)
VALUES(#ISBN,#書名,#作者,#出版社,#出版日期,#簡介,#備注) INSERT INTO
管理員_書籍表(工作號,ISBN,添加時間,是否在館)
VALUES(#工作號,#ISBN,#添加時間,#是否在館)
(5)刪除書籍(deletebooks)
DELETE 圖書
WHERE(ISBN =# ISBN)
(6)修改書籍(updatebooks)
UPDATE 圖書(書名=#書名, 作者=#作者, 出版社=#出版社, 出版日期=
#出版日期, 簡介=#簡介)
WHERE(ISBN =# ISBN)

7.2讀者操作
(1)注冊(register)
INSERT INTO 讀者(讀者學號,讀者姓名,讀者性別,聯系電話,所在系,
生效日期,失效日期,違章狀況,累計借書,備注)
VALUES(#讀者學號,#讀者姓名,#讀者性別,#聯系電話,#所在系,
#生效日期,#失效日期,#違章狀況,#累計借書,#備注)
說明:在登記操作後,讀者得到一個唯一的ID,可以根據這個ID來查詢和修改自己的信息。
(2)注銷(unregister)
DELETE 讀者
WHERE(讀者學號=#讀者學號)
(3)修改個人信息(update)
UPDATE 讀者 Set(讀者姓名=#讀者姓名,聯系電話=#聯系電話,
所在系=#所在系,生效日期=#生效日期,失效日期=#失效日期,
違章狀況=#違章狀況,累計借書=#累計借書,備注=#備注)
WHERE(讀者學號=#讀者學號)
(4)查詢(select)
SELECT ISBN,書名,作者,出版社
FROM圖書
WHERE ISBN=#ISBN OR書名=#書名

7.3管理員對借閱關系的操作
(1)插入讀者的信息(insert)
INSERT INTO 借閱(工作號,讀者學號,ISBN,是否續借,借書日期,還書日期,備注)
VALUES(#工作號,#讀者學號,#ISBN,#是否續借,#借書日期,
#還書日期,#備注)
(2)更新信息(update)
①更新借出信息
UPDATE借閱
SET(借書日期=#借書日期,還書日期=借書日期+30,是否續借=0)
WHERE(工作號=#工作號 AND 讀者學號=#讀者學號 AND ISBN =#ISBN)
UPDATE管理員_圖書
SET(是否在館=0)
WHERE(ISBN=#ISBN)
UPDATA 學生
SET (累積借書=累積借書+1)
WHERE(讀者學號=#讀者學號)
INSERT INTO管理員_學生(工作號,讀者學號,確認借還,ISBN)
VALUES(#工作號,#讀者學號,」0」, #ISBN))
②更新續借信息
UPDATE 借閱
SET(是否續借=#是否續借)
WHERE(工作號=#工作號 AND 讀者學號=#讀者學號 AND ISBN =#ISBN)
③更新還書信息
UPDATE管理員_圖書
SET(是否在館=1)
WHERE(ISBN=#ISBN)
UPDATE管理員_學生
SET(確認借還=」1」)
WHERE(工作號=#工作號 AND 讀者學號=#讀者學號 AND ISBN=#ISBN)
另外,站長團上有產品團購,便宜有保證

Ⅳ SQL中如何限制屬性取值

like this:
create table student(
Sno int not null primary key,
age int check(age between 1 and 100)
sex char(2) check(sex in('男','女')
DempNo int) ;
create course(
c_id int primary key,
c_name varchar(20) not null,
c_score int check(c_score>=0 and c_score<=100),
c_time int check(c_time between 0 and 100));

Ⅳ Sql,表中列的取值限制

b列加約束CHECK ([b]='c' or[b]='d')
ALTER TABLE a ADD CONSTRAINT
CK CHECK ([b] in ('c','d'))

Ⅵ SQL中規定某列值只能是0或者1的約束該怎麼寫

SQL CHECK約束。

CHECK約束用於限制列中的值的范圍。

如果對單個列定義CHECK約束,那麼該列只允許特定的值。

如果對一個表定義CHECK約束,那麼此約束會在特定的列中對值進行限制。

--刪除表

drop table temp;

--創建表

CREATE TABLE temp (flag NUMBER(1));

--增加約束

ALTER TABLE tempADDCONSTRAINTck_temp_flag CHECK

(flag=1 or flag=0);

--測試效果版

insert into temp values(1);

insert into temp values(0);

insert into temp values(1);

--測試效果(約束禁止插入數據),提示權:違反檢查約束條件

insert into temp values(2);

insert into temp values(3);

SQL CHECK Constraint on CREATE TABLE。

下面的SQL在"Persons"表創建時為"Id_P"列創建CHECK約束。CHECK約束規定"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)

)

(6)sql限制某列值擴展閱讀:

不同資料庫的約束寫法:

SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULLCHECK (Id_P>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

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

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

)

SQL CHECK Constraint on ALTER TABLE.

如果在表已存在的情況下為"Id_P"列創建CHECK約束,請使用下面的SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons

ADD CHECK (Id_P>0)

如果需要命名CHECK約束,以及為多個列定義CHECK約束,請使用下面的SQL語法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons

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

撤銷CHECK約束。

如需撤銷CHECK約束,請使用下面的SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons

DROP CONSTRAINT chk_Person