Sql server 2008 如何创建学生成绩数据库?
我正试图建立一个学生成绩数据库。每个学生都有许多课程,每门课程都有不同的分数。 实例 约翰: 数学Q1=80,Q2=90,Q3=77 艺术 Q1=75,Q2=85,Q3=80 等等 我构建了3个表,其关系如下 学生姓名等级 CourseSourseid coursename 标记SID-courseid-Q1-Q2-Q3Sql server 2008 如何创建学生成绩数据库?,sql-server-2008,ms-access-2007,Sql Server 2008,Ms Access 2007,我正试图建立一个学生成绩数据库。每个学生都有许多课程,每门课程都有不同的分数。 实例 约翰: 数学Q1=80,Q2=90,Q3=77 艺术 Q1=75,Q2=85,Q3=80 等等 我构建了3个表,其关系如下 学生姓名等级 CourseSourseid coursename 标记SID-courseid-Q1-Q2-Q3 我的工作对吗?因为我将把它升级为SQL,所以我需要知道报表和表单的表和关系是否相同?好的,但您应该重命名一些字段:coursesid、name、marksstu\u id、co
我的工作对吗?因为我将把它升级为SQL,所以我需要知道报表和表单的表和关系是否相同?好的,但您应该重命名一些字段:coursesid、name、marksstu\u id、course\u id、Q1、Q2、Q3 SQL我使用PostgreSQL,但我认为其他DBMS也类似
CREATE TABLE students
(
id integer NOT NULL,
fname varchar(20),
lname varchar(20),
grade integer,
PRIMARY KEY (id)
);
CREATE TABLE courses
(
id integer NOT NULL,
name varchar(20),
PRIMARY KEY (id)
);
CREATE TABLE marks
(
stu_id integer REFERENCES students(id),
course_id integer REFERENCES courses(id),
Q1 double,
Q2 double,
Q3 double,
PRIMARY KEY (stu_id, course_id)
);
或
希望您的帮助您应该在标记表中使用复合键。这将不会限制你只有3个问题 用于创建表的Ms Sql查询如下所示-
/****** Object: Table [dbo].[students] Script Date: 11/11/2014 16:20:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[students](
[id] [int] NOT NULL,
[fname] [varchar](20) NULL,
[lname] [varchar](20) NULL,
[grade] [int] NULL,
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[courses] Script Date: 11/11/2014 16:19:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[courses](
[id] [int] NOT NULL,
[name] [varchar](20) NULL,
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[marks] Script Date: 11/11/2014 16:19:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[marks](
[stu_id] [int] NOT NULL,
[course_id] [int] NOT NULL,
[q_id] [int] NOT NULL,
[mark] [numeric](18, 0) NOT NULL,
CONSTRAINT [PK_marks] PRIMARY KEY CLUSTERED
(
[stu_id] ASC,
[course_id] ASC,
[q_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[marks] WITH CHECK ADD CONSTRAINT [FK_marks_courses] FOREIGN KEY([course_id])
REFERENCES [dbo].[courses] ([id])
GO
ALTER TABLE [dbo].[marks] CHECK CONSTRAINT [FK_marks_courses]
GO
ALTER TABLE [dbo].[marks] WITH CHECK ADD CONSTRAINT [FK_marks_students] FOREIGN KEY([stu_id])
REFERENCES [dbo].[students] ([id])
GO
ALTER TABLE [dbo].[marks] CHECK CONSTRAINT [FK_marks_students]
GO
/****** Object: Table [dbo].[students] Script Date: 11/11/2014 16:20:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[students](
[id] [int] NOT NULL,
[fname] [varchar](20) NULL,
[lname] [varchar](20) NULL,
[grade] [int] NULL,
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[courses] Script Date: 11/11/2014 16:19:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[courses](
[id] [int] NOT NULL,
[name] [varchar](20) NULL,
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[marks] Script Date: 11/11/2014 16:19:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[marks](
[stu_id] [int] NOT NULL,
[course_id] [int] NOT NULL,
[q_id] [int] NOT NULL,
[mark] [numeric](18, 0) NOT NULL,
CONSTRAINT [PK_marks] PRIMARY KEY CLUSTERED
(
[stu_id] ASC,
[course_id] ASC,
[q_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[marks] WITH CHECK ADD CONSTRAINT [FK_marks_courses] FOREIGN KEY([course_id])
REFERENCES [dbo].[courses] ([id])
GO
ALTER TABLE [dbo].[marks] CHECK CONSTRAINT [FK_marks_courses]
GO
ALTER TABLE [dbo].[marks] WITH CHECK ADD CONSTRAINT [FK_marks_students] FOREIGN KEY([stu_id])
REFERENCES [dbo].[students] ([id])
GO
ALTER TABLE [dbo].[marks] CHECK CONSTRAINT [FK_marks_students]
GO