暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

《数据库应用技术》综合应用题解析

八一学习俱乐部 2022-12-07
2100

《数据库应用技术》课程的综合应用题一般考查关系表的创建,数据的简单查询、多表查询、数据更改语句等。其中使用SQL语言创建表是我们复习的重点,往年真题及解析如下:

【往年真题】

写出创建如下三张表的SQL语句。

(1)“项目”表结构:

项目号:普通编码定长字符类型,长度为10,主键。

项目名:统一编码可变长字符类型,长度为10,非空。

类别:统一编码定长字符类型,长度为2,取值范围为:{田径,游泳,体操}。

(2)“运动员”表结构;

运动员号:普通编码定长字符类型,长度为18,主键。

运动员名:统一编码可变长字符类型,长度为10,非空。

性别:统一编码定长字符类型,长度为1。

出生日期:日期型。

(3)“比赛”表结构:

项目号:普通编码定长字符类型,长度为10,引用“项目”表的外键。

运动员号:普通编码定长字符类型,长度为18,引用“运动员”表的外键。

比赛日期:日期型,默认值为系统当前日期。

比赛名次:整型。

主键:(项目号,运动员号,比赛日期)。

【参考答案】

(1)CREATE TABLE 项目(

      项目号 CHAR(10)  PRIMARY KEY,

      项目名 NVARCHAR(10)  NOT NULL,

      类别   NCHAR(2)  CHECK(类别 IN(‘田径’,‘游泳’,‘体操’))

)

(2)CREATE TABLE 运动员(

      运动号 CHAR(18)  PRIMARY KEY,

      运动员名 NVARCHAR(10)  NOT NULL,

      性别   NCHAR(1),

      出生日期 DATE

)

(3)CREATE TABLE 比赛(

      项目号 CHAR(10) ,

      运动员号 CHAR(18),

      比赛日期 DATE DEFAULT GETDATE( ),

      比赛名次 INT,

      PRIMARY KEY(项目号,运动员号,比赛日期),

FOREIGN KEY(项目号)  REFERENCES 项目(项目号),

FOREIGN KEY(运动员号)  REFERENCES 运动员(运动员号)

)

【题目解析】

本题考查关系表的创建,解题的关键是掌握创建表的语句格式。定义关系表使用SQL语言数据定义功能中的CREATE TABLE语句实现,其一般格式为:

CREATE TABLE <表名>(

<列名>  <数据类型>  [列级完整性约束定义]

{, <列名>  <数据类型>  [列级完整性约束定义]…n}

[, 表级完整性约束定义]

[, ...n ] )

上述语句用到的<>、[ ]、{ }是文法描述的常用符号,不是SQL语句的部分, < >中为必须指定的内容,[ ]中为可选的内容。花括号({ })与省略号(…)一起,表示其中的内容可以出现0次或多次。

<表名>是所要定义的表的名字。

<列名>是表中所包含的属性列的名字。

<数据类型>指明列的数据类型。常用的数据类型有(N代表字符串的长度):

整型:INT;     日期型:DATE;

普通编码定长字符类型:CHAR(N);

普通编码可变字符类型:VARCHAR(N);

统一编码定长字符类型:NCHAR(N);

统一编码可变字符类型:NVARCHAR(N)。

可定义的完整性约束包括:

NOT NULL:限制列取值非空。

DEFAULT:指定列的默认值。

CHECK:定义列的取值范围,定义CHECK约束的语法格式为:

CHECK(逻辑表达式)

PRIMARY KEY:定义主键约束,其语法格式为:

PRIMARY KEY[(<列名>[,…n])]

如果是在列级完整性约束处定义单列的主键,则可省略方括号部分。

FOREIGN KEY:定义外键约束,其语法格式为:

[FOREIGN KEY(<列名>)] REFERENCES <被参照表名> (<被参照列名>

如果是在列级完整性约束处定义单列的外键,则可省略方括号部分。

我们在理解创建表的一般格式的基础上,再结合题干,即可写出创建表的SQL语句。



文章转载自八一学习俱乐部,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论