当前位置: 代码迷 >> SQL >> SQL SERVER温习笔记01
  详细解决方案

SQL SERVER温习笔记01

热度:95   发布时间:2016-05-05 13:30:32.0
SQL SERVER复习笔记01
--一.对表的基本操作:--创建表book1create 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 bookalter table book1add  作者 varchar null--删除一列alter table book1drop column 作者--修改列数据类型alter table book1alter 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 book1delete 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 book1add constraint pri_编号 primary key clustered(编号)--再设置foreign key如下: alter table booking add constraint for_编号 foreign key(编号) references book1(编号) exec sp_help booking

  相关解决方案