创建数据库表格(SQL)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
创建数据库表格
create database zhangwei on
primary
(name=scoredata3,filename='d:\zhangwei\zhangwei.mdf', size=10mb,maxsize=50mb,
filegrowth=5mb)
log on
(name=scorelog1,filename='d:\zhangwei\zhangwei.ldf', size=3mb,maxsize=unlimited,
filegrowth=2)
go
更改文件属性
ALTER DATABASE studentscore
MODIFY FILE
(NAME = sss_data,
SIZE = 20MB,
MAXSIZE=60
)
GO
更改逻辑文件名
ALTER DATABASE studentscore
MODIFY FILE
(NAME=sss_data,
NEWNAME = scoredata1
)
删除数据库文件
alter DATABASE StudentScore
remove file
ScoreData4
主键约束
格式:[CONSTRAINT 约束名] PRIMARY KEY [(列名)]。
如:CONSTRAINT Pk_课程表 PRIMARY KEY (课程号)
惟一键约束:
格式:[CONSTRAINT 约束名] UNIQUE KEY [(列名)]
如:CONSTRAINT Uk_专业表 UNIQUE (专业名)
外键(FOREIGN KEY)约束:
格式:[CONSTRAINT 约束名] FOREIGEN KEY [(外键列)] REFERENCES 引
用表名(引用列)
如:CONSTRAINT Fk_CourseId FOREIGN KEY (课程号) REFERENTCES 成
绩表(课程号),
检查(CHECK)约束:
CHECK约束通过限制可输入或修改的一列或多列的值来强制实现域完整性,
它作用于插入(INSERT)和修改(UPDATE)语句。
格式:[CONSTRAINT 约束名] CHECK (检查表达式)
如:CONSTRAINT Ck_成绩表 CHECK (成绩>=0)
默认值(DEFAULT)约束:
格式:[CONSTRAINT 约束名] DEFAULT 默认值
如:CONSTRAINT De_bScore DEFAULT(0)
创建规则
创建规则的语法是:
CREATE RULE rule_name AS condition_expression
例:create rule eee as @kk>=60 and @kk<=100
规则捆绑
格式:sp_bindrule rule_name, ‘object_name’
例:sp_bindrule eee,'成绩表.成绩'
解除由sp_bindrule建立的规则与列或用户定义数据类型的绑定
sp_unbindrule object_name[,futureonly]
例:sp_unbindrule '成绩表.成绩'
删除规则
例:drop rule eee
用户自定义函数分为三种:
(1)创建标量函数
例:创建名为“Func_自己的姓名”(如“Func_张亮”)的标量函数,计算某个(如学号为:200009001)学生各科成绩之和,函数的参数变量名为@sn,类型为char(12),函数返回类型为float。函数最后要求能显示调用结果信息(如:该生的各科成绩总和为:189 分)
create function dbo.Func_张巍(@sn char(12))
returns float
as
begin
declare @sum1 float
select @sum1=sum(成绩)from成绩表where学号=@sn
return @sum1
end
select dbo.Func_张巍(200009001)
例:在StudentScore数据库中创建一个自定义函数,按出生日期计算年龄,然后从“学生表”中检索出含有年龄的学生信息(包括学号、姓名、性别和年龄)。
CREATE FUNCTION dbo.年龄(@出生日期Datetime, @当前日期Datetime) RETURNS Int
AS
BEGIN
RETURN Year(@当前日期)-Year(@出生日期)
END
go
SELECT学号,姓名, dbo.年龄(出生日期,getdate())AS年龄
FROM学生表
(2)内嵌(单语句)的返回表的自定义函数
例:创建名为func_stu的函数,参数名为@stuno,参数类型为int。要求输入某个学号后,可以查看与该学号对应的学生信息,输出结果包括学号、姓名、性别和出生日期
create function dbo.func_stu (@stuno int)
returns table
as
return(select学号,姓名,性别,出生日期from学生表where学号=@stuno) select*from func_stu(200206008)
例:定义内嵌表值函数coursegrade,要求能够查询某一课程所有学生成绩列表。
CREATE FUNCTION coursegrade(@course varchar(30))
Returns table
As
return(select 学生表.学号,学生表.姓名,成绩表.成绩 From 学生表,成绩表 where 学生表.学号=成绩表.学号 and 成绩表.课程号=@course) 函数执行:
select * from coursegrade('aa')
(3)多语句的返回表的自定义函数
例:定义多语句表值查询函数course_grade,要求能够查询某一(aa)课程所有学生成绩列表,并将其成绩加100。
create function course_grade9 (@course varchar(30))
returns @score table
(s_no char(10), s_name char(30), grade smallint)
as
begin
insert @score