概括图
1、数据库
a>、创建数据库
--判断是否存在该数据库,有责删除:
use master
go
if exists(select * from sysdatabases where name = 'teach')
drop database teachgo
注意:sysdatabases表是系统数据库master里的表,该表存放着所有的数据库中信息。exists函数判断是否为真,为真则为真,否则否
--创建数据库
create database teach --teach为数据库名称
on --创建数据文件
(
name=teach_Data, --sql server中的逻辑名称,name的名称和filename的名称相同
filename='D:\teachdata.mdf', --' 文件所在的具体路径 '
size=10, --初始数据文件的大小,不用写单位,单位为MB
maxsize=50, --数据文件达到的最大值,可以这样写maxsize=unlimited
filegrowth=5 --增长类型,可以这样写filegrowth=10%
)
log on - -创建日志文件
(
name=teach_log, --sql server 上显示的名称,
filename='D:\teachdata.ldf', --操作系统上显示的名称,
size=5, --日志文件的初始大小,同上
maxsize=20, --日志文件的最大值,同上
filegrowth=10%, --增长度,同上
)
go注意:单行的为“- -”或为“ ' ”;多行的为“/* */”
b>、删除数据库
drop database teach --teach为数据库名称
c>、修改数据库
(1)、修改数据文件或日志文件
alter database teach
modify file
(
name=teach_Data, --必须用name明确的指定文件的名称,来唯一的确定文件(数据文件或日志文件)
filename='F:\teach_Data.mdf',
size=50,
maxsize=90,
filegrowth=20
)go
注意:修改后文件大小时,不能使其小于或等于之前的大小。一次只能修改一个文件
(2)、增加数据文件或日志文件
alter database teach
add file --增加数据文件。增加日志文件:add log file
(
name='my_db_data2',
filename='d:\my_db_data2.ndf', --增加日志文件时,注意后缀名
size=3,
maxsize=15,
filegrowth=2
)
go
(3)、删除数据文件或日志文件
alter database teach
remove file my_db_data2注意:文件只有为空才能被删除
2、创建数据库对象(以基表为例,其它数据库对象会在其它博客中写出)
a>、创建表
--判断是否存在该表,有则删除:
if exists( select * from sysobjects where id=object_id(N'A') and objectproperty(id,N'IsUserTable')) --A表示表的名称
drop table A
注意:sysobjects是系统表,里面有所有的表的信息
object_id函数返回一个对象(数据库对象,视图,表等)的在的id
objectproperty函数的作用是查看某个对象(此时用id表示)是否为用户表或视图等
N可以省略,N的作用的是转换为unicode编码--创建表
create table 表名 - -字段主键约束
(
列表名1 数据类型(大小) constraint 约束名称 null/not null,
列表名2 数据类型(大小) not/not null constraint 约束名称 default 默认值,--可以使用多个约束。
列表名3 数据类型(大小) constraint 约束名称 primary key,
列表名4 数据类型(大小) constraint 约束名称 unique,列表名5 数据类型(大小) constraint 约束名称 check(具体的约束条件),
举例:Score int constraint Score_Che Check(Score>0 and Score<=100), --(age between 1 and 1000)列表名6 数据类型(大小) constraint 约束名称 default 字段名=默认值,
举例:Sex char(5) constraint Sex_Default default '男',列表名7 数据类型(大小) constraint 约束名称 foreign key references 表名(列表名) [on delete/update cascade|no action] , - -cascade时,对付表操作字表也相应的表
举例:SNO char(5) constraint F_K foreign key references S(SNO),constraint 约束名称 primary key (多个字段名称), - -多个字段名称为一个主键
举例:constraint P_K primary key(列表名1,列表名2,……),constraint 约束名称 unique(多个字段名称), - -多个字段名称为一个唯一约束,用“,”分隔。
constraint 约束名称 check(多个字段的约束条件),
举例:constraint M_Check check(列表名1>100 and 列表名2>100),)
注意:constraint为关键字,可以省略“constraint 约束名称”。b>、修改表
(1)、add方式(添加新列和完整性约束)
添加新列
alter table Table_Name
add
Field_Name1 数据类型(大小),
Field_Name2 数据类型(大小)constraint 约束名称 约束类型[(具体的值)]
添加约束
alter table Table_Name
add
constraint Score_ChK check(Score between 0 and 100)
(2)、alter方式
修改某些列
alter table Table_Name
alter column Field_Name 数据类型 [null / not null]
注意:不能改列名;不能将含有空值的列的定义修改为not null约束;若列中已有数据,则不能减少宽度和修改数据类型;只能修改null/not null约束,其他约束,必须先删除,再添加,这样修改。
(3)、drop方式
只能删除完整性约束的定义
alter table Table_Name
drop constraint 约束名