第四 資料的完整性
--切換資料庫
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 形成了乙個候選碼...