SQL SERVER复习笔记01

--一.对表的基本操作:

--创建表book1
create table book1(
	编号 char(8) not null,
	IBSN char(13) not null,
	书名 nvarchar(255),
	定价 money,
	出版社 nvarchar(255),
	出版日期 datetime
)

create table book2(
	编号 char(8) not null,
	IBSN char(13) not null,
	书名 nvarchar(255),
	定价 money,
	出版社 nvarchar(255),
	出版日期 datetime
)

create table teacher(
	作者编号 char(4) default '001',
    作者姓名 nvarchar(200) not null,
	性别  char(2) not null default '男',
	职称 char(20),
	联系电话 char(10),
	编号 char(8) not null
)

create table booking(
	编号 char(8) not null,
	IBSN char(13)
)

--查看表结构
exec sp_help book1  


--表中增加一列
use book
alter table book1
add  作者 varchar null

--删除一列
alter table book1
drop column 作者

--修改列数据类型
alter table book1
alter column 定价 smallmoney

--查看表内容
select * from book1

--表中插入数据
insert into book1 values ('101172','172','sql数据库',35,'中山大学','03-13-2008')--完整表结构插入

insert into book1(编号,IBSN,书名) values('101186','186','JAVA程序设计')--表中部分列插入

--修改表内容
 update book1 set 书名='JSP动态网页制件技术' where IBSN='186'
 
--删除表内容
 delete from book1 where IBSN='186'
 
--删除表所有内容
delete book1

delete from book1

--删除表
drop table book1

--二.约束条件
 
 --1,CHECK
 
 --增加约束条件
 alter table teacher
 add constraint ch_teacher check(性别='男' or 性别='女')
 
 /*此时,插入的性别不是男或者女,则会报如下错
 消息 547,级别 16,状态 0,第 2 行
INSERT 语句与 CHECK 约束"ch_teacher"冲突。该冲突发生于数据库"book",表"dbo.teacher", column '性别'。
语句已终止。*/
insert into teacher(作者姓名,性别,编号) values('22','ds','2')
 
 --删除约束条件
 alter table teacher
 drop constraint ch_teacher
 
 --删除约束后,则可以正常插入
 insert into teacher(作者姓名,性别,编号) values('22','ds','2')
 
 --2.DEFAULT
 
 --增加约束
 alter table teacher
 add constraint de_性别 default '男' for 性别
 
 --删除约束
 alter table teacher
 drop constraint de_性别
 
 --3,primary key
 
 --增加约束
 alter table teacher
 add constraint pri_作者编号 primary key clustered(作者编号)
 /*消息 8111,级别 16,状态 1,第 2 行
无法在表 'teacher' 中可为 Null 的列上定义 PRIMARY KEY 约束。
消息 1750,级别 16,状态 0,第 2 行
无法创建约束。请参阅前面的错误消息。
查看表结构,可发现作者编号允许为NULL,不能作为PRIMARY KEY,修改如下:*/

--增加约束
 alter table teacher
 add constraint pri_编号 primary key clustered(编号)

 --删除约束
 alter table teacher
 drop constraint pri_编号
 
 --4,foreign key
 
 --为booking建立外键,主键在book1
 alter table booking
 add constraint for_编号 foreign key(编号)
 references book1(编号)
 /*
 报错如下:
 消息 1776,级别 16,状态 0,第 2 行
在被引用表 'book1' 中没有与外键 'for_编号' 中的引用列列表匹配的主键或候选键。
消息 1750,级别 16,状态 0,第 2 行
无法创建约束。请参阅前面的错误消息。
因为在book1表中"编号"并未设置主键约束,则先设置如下
*/

alter table book1
add constraint pri_编号 primary key clustered(编号)
--再设置foreign key如下:
 alter table booking
 add constraint for_编号 foreign key(编号)
 references book1(编号)

exec sp_help booking

复习教材:SQL.Server.2005.数据库基础及应用技术教程与实训.周奇.pdf )



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值