createtable身份證
(身份證號varchar(18)check(len(身份證號)in(15,18)))
用以下幾個語句你驗證下就可以了
insertinto身份證values('123456789012345')
insertinto身份證values('123456789012345678')
insertinto身份證values('1234567890')
㈡ SQL創建規則
--創建約束
USE 庫名 --引入資料庫
ALTER TABLE 表名 --修改表
ADD CONSTRAINT g1 --創建檢查約束
check (len(TelephoneNo) = 8) --添加約束條件
--創建規則
create rule g1
as
@TelephoneNo like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
--綁定規則
EXEC sp_bindrule 'g1','表名.TelephoneNo'
其實樓上的就可以~~
㈢ 我要用sql語句為用約束或規則保證身份證號碼為18位,怎麼實現啊
在create table的時候,加上約束。這樣子在 往這個表插入數據的時候,就會驗證,如果不是18位,是會報錯的。
CREATE TABLE test(
pid VARCHAR2(18) check (length(PID) = 18)
)
㈣ sql語句創建一個規則
強烈建議你別再使用rule,這個是已經快被淘汰的語句了!
-- 創建自定義類型
EXEC sp_addtype type_phonenum, 'varchar(12)', 'NULL'
-- 創建自定義規則
create rule r_tel
as
@telphone like '____-_______'
-- 綁定規則到自定義類型
EXEC sp_bindrule 'r_tel', 'type_phonenum'
-- 在表中使用自定義類型
create table stu(
...
tel type_phonenum,
...)
-----------------------------------------------------------
--而這么多步驟,如果在表中啟用檢查約束,只需要這樣:
alter table stu
add constraint chk_phonenum
check (tel like '____-_______')
㈤ sql 2000,要求限制電話號碼十一位,只能是數字~數據類型char(12),約束表達式怎麼寫
SQL Server 2000 沒有, 就拿個 SQL Server 2005 的來湊個數。
不大清楚 SQL Server 2000 裡面,有沒有 PATINDEX 函數了。
CREATE TABLE #temp(
test char(12)
CONSTRAINT chk_test
CHECK (
LEN(RTRIM(test)) = 11 AND
PATINDEX('%[^0-9]%', RTRIM(test)) = 0)
);
-- 失敗 長度不符合,且是英文
INSERT INTO #temp VALUES ('a');
-- 失敗 長度不符合
INSERT INTO #temp VALUES ('1');
-- 失敗 長度不符合
INSERT INTO #temp VALUES ('123456789012');
-- 失敗 長度符合 但是英文
INSERT INTO #temp VALUES ('1234567890a');
-- 成功
INSERT INTO #temp VALUES ('12345678901');
㈥ sql server 定義電話號碼在0-9之間
使用sql語句。
使用sql語句能實現電話號碼限制在數字0-9。
在SQL Server 中,對於基本表的約束分為列約束和表約束。列約束是對某一個特定列的約束,包含在列定義中,直接跟在該列的其它定義之後,用空格分隔,不必指定列名;表約束與列定義相互獨立,不包括在列定義中,通常用於對多個列一起進行約束,與列定義用「,」分隔,定義表約束時必須指出要約束的列的名稱。
㈦ 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)
另外,站長團上有產品團購,便宜有保證