注:示例中的表名以及字段名有一些不统一,若有看到的不要直接代入执行。参考语法结构即可。

1.创建数据库

/*创建数据库libraryDB*/
CREATE DATABASE libraryDB
ON
(
    /*数据库文件的详细描述*/
    name= 'libraryDB_mdf',    --主数据库文件的逻辑名
    filename = 'E:\library\libraryDB_mdf.mdf',    --主数据文件的物理名
    size = 3MB,    --初始大小
     maxsize=100,--最大值
    fiegrowth= 20%    --增长率
)
LOG ON    
(
    /*日志文件的详细描述*/
    NAME = 'libraryDB_ldf',    --日志文件的逻辑名
    FILENAME = 'E:\library\libraryDB_ldf.ldf',    --日志文件的物理名
    SIZE = 1MB,    --初始大小
    MAXSIZE = 15MB, --最大值
    FILEGROWTH = 10%    --增长率
)
GO
创建数据库

2.数据表(创建/修改/删除)

--判断BookType表是否存在,存在则删除
if exists (select 1 from sysobjects where [name]='BookType')
 begin
   drop table BookType
 end
--创建图书类型表:BookType
create table BookType
(
    TypeId int not null identity(1,1) primary key,      --图书类型编号(主键、标识列、从1开始、每次增加1)
    TypeName varchar(50) not null,                   --图书类型名称
    Remark varchar(100)                               --备注信息
)

--添加字段
alter table BookType add Sex char(2)
--修改字段
alter table BookType alter column Sex char(50)
--删除字段
alter table BookType drop column sex  


--删除表BookType
drop table BookType
数据表

3.约束 (创建、删除和修改)

1.非空约束

 列的空性决定表中的行是否为该列包含空值。空值(或NULL)不同于零(0)、空白或长度为零的字符串(如“”“”)

2.主键约束

通过定义primary key约束来创建主键约束,用于强制表的实体完整性,保证数据的唯一性。一个表只能有一个主键约束,且不能为空值。

经常对标识列定义这种约束。 

----建表时创建主键参考上面建表ID字段

--为现有表添加主键
alter table BookType
add constraint PK_BookType_TypeId primary key(TypeId)
--删除主键只需要将add替换为drop
主键约束

3.唯一约束

 唯一约束unique用于轻质实施列表中值得唯一性。表中任意两行都不能有相同的列值。另外,主键也强制实施唯一性,但主键不允许NULL为唯一值。

注:若要修改唯一约束,必须先将现有唯一约束删除,在重新定义唯一约束

---建表时创建唯一约束
  
  create table BookType
(
    TypeId int not null identity(1,1) primary key,      --图书类型编号(主键、标识列、从1开始、每次增加1)
    TypeName varchar(50) unique,                   --图书类型名称
    Remark varchar(100)                               --备注信息
)

----现有表中创建唯一约束
alter table BookType
add constraint UQ_BookType_TypeName unique (TypeName)

--删除唯一约束
alter table BookType 
drop constraint UQ_BookType_TypeName
唯一约束

4.检查约束

检查约束check可以强制域的完整性,控制表中放入的值

注:若要修改检查约束,必须先将现有检查约束删除,在重新定义检查约束

---创建表时创建检查约束
create table Student
(
   StuId int identity primary key,--学生编号
   StuName varchar(50) not null,--学生姓名
   --StuSex char(2) check(StuSex='男'or StuSex='女') 
   StuSex char(2)check(StuSex  in('',''))  
)

---现有表创建检查约束
alter table Student add constraint CK_Student_Sex check(StuSex=''or StuSex='')

--删除检查约束
alter table Student drop constraint CK_Student_Sex
检查约束

5.默认约束

 定义默认约束default来创建默认值

 注:若要修改默认约束,必须先将现有检查默认删除,在重新定义默认约束

---创建表时创建检查约束
create table Student
(
   StuId int identity primary key,--学生编号
   StuName varchar(50) not null,--学生姓名
   StuSex char(2) check(StuSex=''or StuSex='') default ''
   --StuSex char(2)check(StuSex  in('男','女'))  
)

--现有表创建默认约束
alter table Student add constraint Def_Student_Sex default '' for StuSex

--删除默认约束
alter table Student drop constraint Def_Student_Sex
默认约束

6.外键约束

 注:若要修改外键约束,必须先将现有检查外键删除,在重新定义外键约束

---创建表时创建检查约束
create table StudentInfo
(
   Id int identity primary key,--编号
   phone varchar(50),--电话
   HommeAddress varchar(50),--住址
   remark varchar(50),--描述
   constraint FKid  foreign key(Id) references Student(StuId)
)

--现有表创建外键
alter table StudentInfo add constraint FKid foreign key(Id) references Student(StuId)

--删除外键约束
alter table StudentInfo drop constraint FKid
外键约束

4.数据操作(添加、修改和删除)

 1.使用insert添加数据

--向表中某些字段添加数据
insert into Student (StuName,StuSex ) values('张三','女') 

--向表中所有字段添加数据 insert into Student values('王芳','')

2.使用update修改数据

--修改数据
update Student set StuSex='' where StuName='张三'
update Student set StuSex='' where StuName='王芳'

3.使用delete删除数据

--删除数据
delete Student where StuName='lina'