SQL数据库的设计题,T-SQL语言。高分求解答!
对于数据库scd,库中包含一下系、学生、班级各表:student(学号,姓名,年龄,班号)class(班号,专业名,系名,入学年份)department(系号,系名)请使...
对于数据库scd,库中包含一下系、学生、班级各表:
student(学号,姓名,年龄,班号)
class(班号,专业名,系名,入学年份)
department(系号,系名)
请使用T-SQL语言完成一下题。
1.为数据库scd建立一个默认对象,使其对应于年龄为18,将其绑定到student表的年龄列上。
2.修改class表为其建立一个CHECK约束,检查入学年份是否小于2008. 展开
student(学号,姓名,年龄,班号)
class(班号,专业名,系名,入学年份)
department(系号,系名)
请使用T-SQL语言完成一下题。
1.为数据库scd建立一个默认对象,使其对应于年龄为18,将其绑定到student表的年龄列上。
2.修改class表为其建立一个CHECK约束,检查入学年份是否小于2008. 展开
5个回答
展开全部
1.
use scd
go
create default df_年龄 as '18'
sp_bindefault 'df_年龄','student.年龄'
2.
use scd
go
alter table class
with nocheck /*现有数据不强制这个约束*/
add constraint ck_入学年份
check(入学年份>=2008) /*你的提法“是否”有问题,到底是约束使其小于2008,还是约束使其大于等于2008,这句是指约束使入学年份>=2008,如果输入的值<2008就违反了约束*/
use scd
go
create default df_年龄 as '18'
sp_bindefault 'df_年龄','student.年龄'
2.
use scd
go
alter table class
with nocheck /*现有数据不强制这个约束*/
add constraint ck_入学年份
check(入学年份>=2008) /*你的提法“是否”有问题,到底是约束使其小于2008,还是约束使其大于等于2008,这句是指约束使入学年份>=2008,如果输入的值<2008就违反了约束*/
展开全部
一:
1、使用数据库scd
use scd;
2、创建规则
create rule age_rule
as
@age = 18
3、帮定规则
exec sp_bindrule 'age_rule',student.年龄';
二:
alter table class add constraint year_check check(入学年份 >=2008);
---
以上,希望对你有所帮助。
1、使用数据库scd
use scd;
2、创建规则
create rule age_rule
as
@age = 18
3、帮定规则
exec sp_bindrule 'age_rule',student.年龄';
二:
alter table class add constraint year_check check(入学年份 >=2008);
---
以上,希望对你有所帮助。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
use master
go
create database scd --建立scd资料库
go
use scd
go
create rule age_rule --建立规则
as @age = 18
go
create table student --建立资料表student
( student_id varchar(16) null,
student_name varchar(16) null,
age int null,
class_no varchar(16))
go
exec sp_bindrule age_rule, [student.age] --绑定规则
go
create table class --建立资料表class
( class_no varchar(16) null,
specialties_name varchar(32) null,
department_name varchar(32) null,
enrolment_name int check(enrolment_name <2008) null) --加入入学年份check约束
go
create table department --建立资料表department
( department_no varchar(16) null,
department_name varchar(32) null)
go
create database scd --建立scd资料库
go
use scd
go
create rule age_rule --建立规则
as @age = 18
go
create table student --建立资料表student
( student_id varchar(16) null,
student_name varchar(16) null,
age int null,
class_no varchar(16))
go
exec sp_bindrule age_rule, [student.age] --绑定规则
go
create table class --建立资料表class
( class_no varchar(16) null,
specialties_name varchar(32) null,
department_name varchar(32) null,
enrolment_name int check(enrolment_name <2008) null) --加入入学年份check约束
go
create table department --建立资料表department
( department_no varchar(16) null,
department_name varchar(32) null)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1题
use scd;
go
create rule AgeRule @年龄=18;
go
exec sp_bindrule 'AgeRule', 'student.年龄';
2题
/*
创建一个insert触发器,以确保现有的class表中
的入学年份列不会大于2008的值。
*/
use scd
select * from class
go
create trigger secd
on class
for insert
as
if (select 入学年份 from class)>2008
begin
print '不能指定大于2008的入学年份'
rollback tran
End
go
可能写的有点复杂....
咋两人的题还一样呢
use scd;
go
create rule AgeRule @年龄=18;
go
exec sp_bindrule 'AgeRule', 'student.年龄';
2题
/*
创建一个insert触发器,以确保现有的class表中
的入学年份列不会大于2008的值。
*/
use scd
select * from class
go
create trigger secd
on class
for insert
as
if (select 入学年份 from class)>2008
begin
print '不能指定大于2008的入学年份'
rollback tran
End
go
可能写的有点复杂....
咋两人的题还一样呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 年龄,18 from student full join class on student.班号=class.班号 full join department on class.系名=department.系名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询