创建数据库表格(SQL)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档