关系型数据库应用技术如何做这些

答题计时 22:18:17

答题卡

(1/1)

第一大题(共1题,满分100分)
1.主观题 (100分) 答案保存成功

【拓展训练1】使用T-SQL语句创建商品销售管理数据库Goods,该数据库由4个文件组成,数据文件分别存储在两个文件组内,文件的属性设置如表1所示:

表1

文件

逻辑名称

文件类型

文件组

初始大小

自动增长/最大大小

路径

文件名

主数据文件

Goods_data1

行数据

PRIMARY

20MB

增长为64MB/

限制为2000MB

D:\DBG

Goods_data1.mdf

辅数据文件

Goods_data2

行数据

GGROUP

20MB

增长为10%/

无限制

D:\DBG

Goods_data2.ndf

日志文件1

Goods_log1

日志

不适用

8 MB

增长为64MB/

无限制

D:\DBG

Goods_log1.ldf

日志文件2

Goods_log2

日志

不适用

8 MB

增长为64MB/

无限制

D:\DBG

Goods_log2.ldf

【拓展训练2】分别使用SSMS和T-SQL两种方法创建商品销售管理数据库Goods中的数据表。

  1. 客户表Consumer

字段名

数据类型

含义

非空约束

约束

Consumer_Id

nvarchar(30)

客户编号

Not null

主键

Account

varchar(20)

账号

Not null

唯一约束

Password

varchar(20)

密码

null

Name

nvarchar(20)

姓名

null

Sex

nchar(1)

性别

null

检查约束(值“男”或“女”)

Tel

varchar(20)

电话

null

Address

nvarchar(60)

收货地址

null

  1. 员工表Employee

字段名

数据类型

含义

非空约束

约束

Employee_Id

nvarchar(30)

员工号

Not null

主键

Account

varchar(20)

账号

Not null

唯一约束

Password

varchar(20)

密码

null

Name

nvarchar(20)

姓名

null

Sex

nchar(1)

性别

null

检查约束(值“男”或“女”)

Tel

varchar(20)

电话

null

  1. 商品类别表Category

字段名

数据类型

含义

非空约束性

约束

Category_id

nvarchar(30)

商品类别编号

Not null

主键

Name

nvarchar(30)

商品类别名称

null

  1. 商品表Shop_goods

字段名

数据类型

含义

非空约束

约束

Goods_Id

nvarchar(30)

商品编号

Not null

主键

Name

nvarchar(30)

商品名称

Not null

Brand

nvarchar(30)

品牌

null

Size

nvarchar(30)

规格

null

Price

decimal(8,2)

单价

Not null

检查约束(值>0)

Stock

int

库存数量

Not null

检查约束(值>=0)

Image_Url

varchar(50)

图片路径

null

Description

nvarchar(100)

商品描述

null

Category_Id

nvarchar(30)

商品类别编号

Not null

外键

  1. 订单表Shop_Order

字段名

数据类型

含义

非空约束

约束

Order_Id

nvarchar(30)

订单编号

Not null

主键

Goods_Id

nvarchar(30)

商品编号

Not null

外键

Quantity

int

销售数量

null

检查约束(值>0)

Order_Date

date

下单日期

null

默认值约束

值为系统日期getdate( )

Status

nvarchar(10)

订单状态

null

Consumer_Id

nvarchar(30)

客户编号

Not null

外键

Comment

nvarchar(100)

反馈评论

null

Employee_Id

nvarchar(30)

发货员工号

Not null

外键

Shipping_Date

date

发货日期

null

【拓展训练3】使用T-SQL为Goods数据库中的Employee员工表完成以下修改。

(1)添加字段Nation(民族),数据类型为varchar(10),允许为空值,并对该字段设置默认值约束,默认值为“汉”。

(2)修改Nation字段的数据类型为nvarchar(15),不允许为空值。

(3)删除Nation字段。

【拓展训练4】修改Goods数据库中Category商品类别表的字段名,将Category_id修改为Categ_id,将Name修改为CategName。

【拓展训练5】使用T-SQL为Goods数据库中Consumer客户表添加记录,如表所示。

Consumer_Id

Account

Password

Name

c0001

356985284

fgg32658

陈梅

c0002

987546562

khe65489

郭琳

【拓展训练6】使用T-SQL为Goods数据库中Shop_goods商品表添加记录,如表所示。

Goods_Id

Name

Brand

Size

Price

Stock

Image_Url

Description

Category_Id

g0001

胡萝卜

秦农

500g

2.3

600

d:\b001\ g0001.jpg

脆嫩多汁无农药残留

b001

g0006

鸡小腿

凤鸣

500g

8.9

600

d:\b003\ g0006.jpg

天然谷物饲养

b003

g0007

手抓饼

安井

400g

6.3

300

d:\b004\ g0007.jpg

葱香浓郁

b004

【拓展训练7】使用T-SQL将Shop_goods商品表中的Category_Id字段值为“b001”的记录更新为“山灵”。

【拓展训练8】使用T-SQL语句实现商品销售管理数据库Goods中的相关查询,具体操作要求如下。

(1)查询所有商品的基本信息。

(2)查询大米的品牌、规格、单价和库存数量,并显示为汉字标题。

(3)查询每个商品的库存金额(库存金额=单价*库存数量),结果显示为商品编号、商品名称和库存金额。

(4)查询下单当天就发货的商品编号。

(5)查询所有女员工的姓名、账号和电话号码。

(6)查询所有姓张的员工的详细信息。

(7)查询收货地址为西安市的客户的详细信息。

(8)查询反馈信息为空的商品编号。

(9)查询每个商品的商品编号、商品名称和库存金额,并将查询结果存放到临时表“库存”中。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答由chatgpt基于相关博客总结生成:

    问题解答:

    1. 使用T-SQL语句创建商品销售管理数据库Goods,该数据库由4个文件组成。请列出每个文件的逻辑名称、文件类型、文件组、初始大小、自动增长/最大大小、路径和文件名。

    答案:

    USE master;
    GO
    
    -- 创建文件组
    ALTER DATABASE Goods ADD FILEGROUP PrimaryFG;
    
    -- 创建逻辑名称为 Goods_Log 的日志文件
    ALTER DATABASE Goods ADD LOG FILE (NAME = Goods_Log, FILENAME = 'C:\DBFiles\Goods_Log.ldf', SIZE = 1GB);
    
    -- 创建逻辑名称为 Goods_Data1 的数据文件,文件组为 PrimaryFG
    ALTER DATABASE Goods ADD FILE (NAME = Goods_Data1, FILENAME = 'C:\DBFiles\Goods_Data1.mdf', SIZE = 1GB, MAXSIZE = UNLIMITED, FILEGROWTH = 100MB) TO FILEGROUP PrimaryFG;
    
    -- 创建逻辑名称为 Goods_Data2 的数据文件,文件组为 PrimaryFG
    ALTER DATABASE Goods ADD FILE (NAME = Goods_Data2, FILENAME = 'C:\DBFiles\Goods_Data2.ndf', SIZE = 1GB, MAXSIZE = UNLIMITED, FILEGROWTH = 100MB) TO FILEGROUP PrimaryFG;
    
    -- 创建逻辑名称为 Goods_Data3 的数据文件,文件组为 PrimaryFG
    ALTER DATABASE Goods ADD FILE (NAME = Goods_Data3, FILENAME = 'C:\DBFiles\Goods_Data3.ndf', SIZE = 1GB, MAXSIZE = UNLIMITED, FILEGROWTH = 100MB) TO FILEGROUP PrimaryFG;
    
    1. 使用SSMS和T-SQL两种方法分别创建商品销售管理数据库Goods中的数据表。请创建以下表: 客户表Consumer、员工表Employee、商品类别表Category、商品表Shop_goods和订单表Shop_Order。请提供每个表的字段名、数据类型、含义、非空约束和约束信息。

    答案:

    使用SSMS方法: 在SSMS中打开Goods数据库,右键点击“Tables”,选择“New Table”,然后按照下面的表结构创建每个表,并设置相应的字段、数据类型、约束。通过图形化的方式创建表格。

    -- Consumer表
    CREATE TABLE Consumer (
        Consumer_Id INT PRIMARY KEY,
        Account VARCHAR(50) NOT NULL,
        Password VARCHAR(50) NOT NULL,
        Name VARCHAR(50) NOT NULL
    );
    
    -- Employee表
    CREATE TABLE Employee (
        Employee_Id INT PRIMARY KEY,
        Account VARCHAR(50) NOT NULL,
        Password VARCHAR(50) NOT NULL,
        Name VARCHAR(50) NOT NULL,
        Phone VARCHAR(20) NOT NULL
    );
    
    -- Category表
    CREATE TABLE Category (
        Categ_id INT PRIMARY KEY,
        CategName VARCHAR(50) NOT NULL
    );
    
    -- Shop_goods表
    CREATE TABLE Shop_goods (
        Goods_Id INT PRIMARY KEY,
        Name VARCHAR(50) NOT NULL,
        Brand VARCHAR(50),
        Size VARCHAR(50),
        Price DECIMAL(10,2),
        Stock INT,
        Image_Url VARCHAR(100),
        Description VARCHAR(500),
        Category_Id INT,
        FOREIGN KEY (Category_Id) REFERENCES Category(Categ_id)
    );
    
    -- Shop_Order表
    CREATE TABLE Shop_Order (
        Order_Id INT PRIMARY KEY,
        Goods_Id INT,
        Consumer_Id INT,
        Employee_Id INT,
        Order_Date DATETIME,
        FOREIGN KEY (Goods_Id) REFERENCES Shop_goods(Goods_Id),
        FOREIGN KEY (Consumer_Id) REFERENCES Consumer(Consumer_Id),
        FOREIGN KEY (Employee_Id) REFERENCES Employee(Employee_Id)
    );
    

    使用T-SQL方法: 通过T-SQL语句执行创建每个表,并设置相应的字段、数据类型、约束。

    -- Consumer表
    CREATE TABLE Consumer (
        Consumer_Id INT PRIMARY KEY,
        Account VARCHAR(50) NOT NULL,
        Password VARCHAR(50) NOT NULL,
        Name VARCHAR(50) NOT NULL
    );
    
    -- Employee表
    CREATE TABLE Employee (
        Employee_Id INT PRIMARY KEY,
        Account VARCHAR(50) NOT NULL,
        Password VARCHAR(50) NOT NULL,
        Name VARCHAR(50) NOT NULL,
        Phone VARCHAR(20) NOT NULL
    );
    
    -- Category表
    CREATE TABLE Category (
        Categ_id INT PRIMARY KEY,
        CategName VARCHAR(50) NOT NULL
    );
    
    -- Shop_goods表
    CREATE TABLE Shop_goods (
        Goods_Id INT PRIMARY KEY,
        Name VARCHAR(50) NOT NULL,
        Brand VARCHAR(50),
        Size VARCHAR(50),
        Price DECIMAL(10,2),
        Stock INT,
        Image_Url VARCHAR(100),
        Description VARCHAR(500),
        Category_Id INT,
        FOREIGN KEY (Category_Id) REFERENCES Category(Categ_id)
    );
    
    -- Shop_Order表
    CREATE TABLE Shop_Order (
        Order_Id INT PRIMARY KEY,
        Goods_Id INT,
        Consumer_Id INT,
        Employee_Id INT,
        Order_Date DATETIME,
        FOREIGN KEY (Goods_Id) REFERENCES Shop_goods(Goods_Id),
        FOREIGN KEY (Consumer_Id) REFERENCES Consumer(Consumer_Id),
        FOREIGN KEY (Employee_Id) REFERENCES Employee(Employee_Id)
    );
    
    1. 使用T-SQL为Goods数据库中的Employee员工表完成以下修改:

    (1) 添加字段Nation(民族),数据类型为varchar(10),允许为空值,并对该字段设置默认值约束,默认值为“汉”。

    (2) 修改Nation字段的数据类型为nvarchar(15),不允许为空值。

    (3) 删除Nation字段。

    答案:

    -- (1) 添加字段Nation(民族),数据类型为varchar(10),允许为空值,并对该字段设置默认值约束,默认值为“汉”。
    ALTER TABLE Employee ADD Nation VARCHAR(10) NULL CONSTRAINT DF_Employee_Nation DEFAULT '汉';
    
    -- (2) 修改Nation字段的数据类型为nvarchar(15),不允许为空值。
    ALTER TABLE Employee ALTER COLUMN Nation NVARCHAR(15) NOT NULL;
    
    -- (3) 删除Nation字段。
    ALTER TABLE Employee DROP COLUMN Nation;
    
    1. 修改Goods数据库中Category商品类别表的字段名,将Category_id修改为Categ_id,将Name修改为CategName。

    答案:

    -- 修改Category表的字段名
    EXEC sp_rename 'Category.Category_id', 'Categ_id', 'COLUMN';
    EXEC sp_rename 'Category.Name', 'CategName', 'COLUMN';
    
    1. 使用T-SQL为Goods数据库中Consumer客户表添加记录。记录包括Consumer_Id、Account、Password和Name字段。请提供记录的具体值。

    答案:

    -- 使用INSERT语句为Consumer表添加记录
    INSERT INTO Consumer (Consumer_Id, Account, Password, Name)
    VALUES (1, 'example@gmail.com', 'password123', 'John Doe');
    
    1. 使用T-SQL为Goods数据库中Shop_goods商品表添加记录。记录包括Goods_Id、Name、Brand、Size、Price、Stock、Image_Url、Description和Category_Id字段。请提供记录的具体值。

    答案:

    -- 使用INSERT语句为Shop_goods表添加记录
    INSERT INTO Shop_goods (Goods_Id, Name, Brand, Size, Price, Stock, Image_Url, Description, Category_Id)
    VALUES (1, 'Product 1', 'Brand 1', 'XL', 10.99, 100, 'image1.jpg', 'Description 1', 1);
    INSERT INTO Shop_goods (Goods_Id, Name, Brand, Size, Price, Stock, Image_Url, Description, Category_Id)
    VALUES (2, 'Product 2', 'Brand 2', 'L', 19.99, 50, 'image2.jpg', 'Description 2', 1);
    INSERT INTO Shop_goods (Goods_Id, Name, Brand, Size, Price, Stock, Image_Url, Description, Category_Id)
    VALUES (3, 'Product 3', 'Brand 1', 'M', 14.99, 75, 'image3.jpg', 'Description 3', 2);
    
    1. 使用T-SQL将Shop_goods商品表中的Category_Id字段值为“b001”的记录更新为“山灵”。

    答案:

    -- 使用UPDATE语句更新Shop_goods表中的记录
    UPDATE Shop_goods
    SET Category_Id = '山灵'
    WHERE Category_Id = 'b001';
    
    1. 使用T-SQL语句实现商品销售管理数据库Goods中的相关查询。具体操作要求如下:

    (1) 查询所有商品的基本信息。

    (2) 查询大米的品牌、规格、单价和库存数量,并显示为汉字标题。

    (3) 查询每个商品的库存金额(库存金额=单价*库存数量),结果显示为商品编号、商品名称和库存金额。

    (4) 查询下单当天就发货的商品编号。

    (5) 查询所有女员工的姓名、账号和电话号码。

    (6) 查询所有姓张的员工的详细信息。

    (7) 查询收货地址为西安市的客户的详细信息。

    (8) 查询反馈信息为空的商品编号。

    (9) 查询每个商品的商品编号、商品名称和库存金额,并将查询结果存放到临时表“库存”中。

    答案:

    -- (1) 查询所有商品的基本信息。
    SELECT * FROM Shop_goods;
    
    -- (2) 查询大米的品牌、规格、单价和库存数量,并显示为汉字标题。
    SELECT Name AS '商品名称', Brand AS '品牌', Size AS '规格', Price AS '单价', Stock AS '库存数量'
    FROM Shop_goods
    WHERE Name = '大米';
    
    -- (3) 查询每个商品的库存金额(库存金额=单价*库存数量),结果显示为商品编号、商品名称和库存金额。
    SELECT Goods_Id, Name, Price * Stock AS '库存金额'
    FROM Shop_goods;
    
    -- (4) 查询下单当天就发货的商品编号。
    SELECT Goods_Id
    FROM Shop_Order
    WHERE DATEDIFF(DAY, Order_Date, GETDATE()) = 0;
    
    -- (5) 查询所有女员工的姓名、账号和电话号码。
    SELECT Name, Account, Phone
    FROM Employee
    WHERE Gender = 'Female';
    
    -- (6) 查询所有姓张的员工的详细信息。
    SELECT *
    FROM Employee
    WHERE Name LIKE '张%';
    
    -- (7) 查询收货地址为西安市的客户的详细信息。
    SELECT *
    FROM Consumer
    WHERE Address = '西安市';
    
    -- (8) 查询反馈信息为空的商品编号。
    SELECT Goods_Id
    FROM Shop_goods
    WHERE Feedback IS NULL;
    
    -- (9) 查询每个商品的商品编号、商品名称和库存金额,并将查询结果存放到临时表“库存”中。
    SELECT Goods_Id, Name, Price * Stock AS '库存金额'
    INTO #库存
    FROM Shop_goods;
    
    -- 查看临时表数据
    SELECT *
    FROM #库存;
    

    以上就是关于关系型数据库应用技术的问题的解答。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^