灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3363回复:0

[SQL Server]SQL SERVER复习笔记(一)

楼主#
更多 发布于:2012-09-24 15:07




SQL SERVER复习笔记(一)

[sql]
--一.对表的基本操作:  
 
--创建表book1  
create table book1(  
   编号 char(8) not null,  
   IBSN char(13) not null,  
   书名 nvarchar(255),  
   定价 money,  
   出版社 nvarchar(255),  
   出版日期 datetime  
)  
   www.atcpu.com  
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    
 
   www.atcpu.com  
--表中增加一列  
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'  
    www.atcpu.com  
--删除表所有内容  
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')  
    www.atcpu.com  
--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(编号)  
   www.atcpu.com  
--删除约束  
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表中"编号"并未设置主键约束,则先设置如下  
*/  
   www.atcpu.com  
alter table book1  
add constraint pri_编号 primary key clustered(编号)  

--再设置foreign key如下:  
alter table booking  
add constraint for_编号 foreign key(编号)  
references book1(编号)  
<p> exec sp_help booking</p><p><a href="http://www.atcpu.com/ebook/201007/18749.html" target="_self">复习教材:SQL.Server.2005.数据库基础及应用技术教程与实训.周奇.pdf )</a>  
</p>  
[sql]

喜欢0 评分0
游客

返回顶部