資料的完整性 SQL

2021-04-27 12:32:26 字數 2471 閱讀 6239

第四 資料的完整性

--切換資料庫

use master

go--如果已存在這個資料庫,則先刪除該資料庫

if exists (select * from sysdatabases

where name = 'dbstudent')

drop database dbstudent

go--建立資料庫

create database dbstudent

on primary

(name = 'dbstudent_pri',

filename = 'c:/dbstudent_pri.mdf',

size = 10,

maxsize = 30,

filegrowth = 10%

),filegroup fgdata

(name = 'dbstudent_data',

filename = 'd:/dbstudent_data.ndf',

size = 10,

maxsize = 20,

filegrowth = 10%

)log on

(name = 'dbstudent_log',

filename = 'd:/dbstudent.log.ldf',

size = 10,

maxsize = 20,

filegrowth = 10%)go

--切換到自定義的資料庫

use dbstudent

go--建表

create table class

(classid  varchar(5) primary key, --主鍵約束

classname varchar(12) not null --非空約束)go

insert into class

values('07013','優秀班級')

insert into class

values('07014','優秀班級')

select * from class

create table student

(studentid char(9) primary key,     --主鍵約束

studentname varchar(12) not null,

classid  varchar(5) foreign key references class(classid), --外來鍵約束

age  int not null,

***  char(2) check(*** in('男','女'))    --檢查約束

default '男'     --預設約束)go

insert into student

values('hb0701233','張三','07014',21,'男')

insert into student

values('hb0701234','李四','07013',21,'男')

insert into student(studentid,studentname,classid,age)

values('hb0701235','王五','07013',21)

select * from student

create table course

(courseid int  primary key,

coursename varchar(12) unique not null, )go

insert into course

values(1,'sql')

insert into course

values(2,'asp')

select * from course

create table score

(studentid char(9) foreign key references student(studentid), --列級約束

courseid int foreign key references course(courseid),

score  int check(score between 0 and 100),

primary key (studentid,courseid)             --表級約束,復合主鍵)go

insert into score

values('hb0701233',1,99)

insert into score

values('hb0701233',2,100)

insert into score

values('hb0701234',1,98)

insert into score

values('hb0701234',2,97)

select * from score

--sp_help score

--go

--sp_helpconstraint score

--go

SQL 資料完整性

資料冗餘 是指資料庫中存在一些重複的資料,注 為了保持資料的完整性,資料庫中是存在一些資料冗餘的 資料完整性 是指 資料庫中的資料能夠正確地反應實際情況 資料完整性分為四種 1.實體完整性約束 2.域完整性約束 3.引用完整性約束 4.自定義完整性約束 1.實體完整性 實體完整性要求表中的每一行資料...

MySQL資料完整性(實體完整性 域完整性)

資料完整性 為保證插入到資料庫中的資料是正確的,防止使用者輸入錯誤的資料 分為實體完整性 域完整性 參照完整性 下節再說 1 實體完整性 實體指的是表中的一行,一行記錄對應乙個實體 通過主鍵實現 主鍵 關鍵字 primary key 特點 不能為null,並且唯一。邏輯主鍵 推薦 例如id,不代表實...

SQL完整性約束

完整性約束保證授權使用者對資料庫所做的修改不會破壞資料的一致性。not null宣告禁止在該屬性上插入空值。任何可能導致向乙個宣告為not null的屬性插入空值的資料都會產生錯誤診斷資訊。unique aj 1 aj 2 aj m unique宣告指出aj 1 aj 2 aj m 形成了乙個候選碼...