2024年5月16号

复制代码
1.在“对象资源管理器”中右击“数据库”,在“新建数据库”对话框中输入数
据库名称 stumanage,设置数据库文件初始大小为 5M,限制文件增长 50M,
日志文件初始大小设为 2M,限制文件增长 5M,并更改文件存储路径。
2、单击“新建查询”按钮,在 SQL 查询窗口中输入 SQL 语句,建立数据库
stumanage。然后单击工具栏上“执行”按钮(红色叹号)。下部的空白区显示
该语句的运行情况,将建立数据库的 SQL 语句写入实验报告。(注:以下操作
均在上部的空白区输入 SQL 语句,单击执行后,下部的空白区显示该语句的
运行情况。)
3、在 stumanage 数据库中,如下图建立表 student:
列名 数据类型 允许空 主键 说明
1 sno Char(8) 否 是 学号
2 sname Varchar(20) 是 否 姓名
3 sex Char(2) 是 否 性别
4 sdept Varchar(20) 是 否 所在系
如下图建立表:course
列名 数据类型 允许空 主键 说明
1 cno Char(6) 否 是 课程号
2 cname Varchar(20) 是 否 课程名
如下图建立表 sc:(注:包括两个外键,sno 和 cno 共同组成主键)
2
列名 数据类型 允许空 主键 外键 说明
1 sno Char(8) 否 是 students(sno) 学号
2 cno Char(6) 否 是 course(cno) 课程号
3 grade int 否 否 否 成绩
4、将三条建表语句写入实验报告。
5、在 student 表中插入两条数据:
(1)20050101,王飞,男,计算机系
(2)20050102,李丽,女,信息系
6、在 course 表中插入两条数据:
(1)01,数据结构
(2)02,数据库原理
7、在 sc 表中插入两条数据:
(1)20050101,01,70
(2)20050102,02,90
8、将此八条 SQL 语句写入实验报告。
9、对每一门课,求学生的平均成绩,并把结果以基本表的形式存入数据库。将操
作命令和所用 SQL 语句写入实验报告。
10、修改 sc 表中 sno 为 20050102、cno 为 02 的记录的 grade 属性值为 85,然后将
该条记录删除。将此两条 SQL 语句写入实验报告。
11、修改‘数据库原理’课程的所有学生成绩为 0。将此条 SQL 语句写入实验报告。
12、删除‘李丽’的所有选课情况。将此条 SQL 语句写入实验报告。
13、删除数据库中的三个表中的所有数据,将所用 SQL 语句写入实验报告。
14、删除数据库中的三个表结构。将所用 SQL 语句写入实验报告。
15、删除数据库,将所用语句写入实验报告。
复制代码
复制代码

 1.新建数据库(这里我们选择1方法新建数据库,2我没有尝试)

复制代码
复制代码
CREATE DATABASE stumanage
ON PRIMARY
(
    NAME = stumanage_data,
    FILENAME = 'C:\Path\To\Data\stumanage_data.mdf',
    SIZE = 5MB,
    MAXSIZE = 50MB,
    FILEGROWTH = 5MB
)
LOG ON
(
    NAME = stumanage_log,
    FILENAME = 'C:\Path\To\Log\stumanage_log.ldf',
    SIZE = 2MB,
    MAXSIZE = 5MB,
    FILEGROWTH = 1MB
);
复制代码
复制代码

 

 我们根据第一步的要求做出如下更改

 我们创建完成之后可以看到如下图

 3.我们的建表语句如下(右键stumanage新建查询-》输入如下语句-》运行)

复制代码
复制代码
-- 创建 student 表
CREATE TABLE student (
    sno CHAR(8) NOT NULL PRIMARY KEY,
    sname VARCHAR(20) NOT NULL,
    sex CHAR(2) NOT NULL,
    sdept VARCHAR(20) NOT NULL
);

-- 创建 course 表
CREATE TABLE course (
    cno CHAR(6) NOT NULL PRIMARY KEY,
    cname VARCHAR(20) NOT NULL
);

-- 创建 sc 表
CREATE TABLE sc (
    sno CHAR(8) NOT NULL,
    cno CHAR(6) NOT NULL,
    grade INT NOT NULL,
    PRIMARY KEY (sno, cno),
    FOREIGN KEY (sno) REFERENCES student(sno),
    FOREIGN KEY (cno) REFERENCES course(cno)
);
复制代码
复制代码

我们看一下建成功的图片

 5,6,7的语句如下

复制代码
复制代码
-- 在 student 表中插入两条数据
INSERT INTO student (sno, sname, sex, sdept) VALUES
('20050101', '王飞', '男', '计算机系'),
('20050102', '李丽', '女', '信息系');

-- 在 course 表中插入两条数据
INSERT INTO course (cno, cname) VALUES
('01', '数据结构'),
('02', '数据库原理');

-- 在 sc 表中插入两条数据
INSERT INTO sc (sno, cno, grade) VALUES
('20050101', '01', 70),
('20050102', '02', 90);
复制代码
复制代码

 我们看一下插入预计成功后的样子(这里我们连接的navicat方便查看,因为我再SQLQuery里面没有找到插入数据的内容咋哪里查看,如果可以找到就不用连接了,连接的我也有写方法在后面的篇章里面sqlserver连接navicat)

 

9.对每一门课,求学生的平均成绩,并把结果以基本表的形式存入数据库。语句如下
首先新建一个存储的 表:

CREATE TABLE course_avg_scores (
cno CHAR(6) NOT NULL PRIMARY KEY,
average_grade DECIMAL(5, 2)
);

 

-- 计算每门课程的平均成绩并插入到course_avg_scores表中
INSERT INTO course_avg_scores (cno, average_grade)
SELECT cno, AVG(grade) AS average_grade
FROM sc
GROUP BY cno;

让我们看一下插入后的效果

 

 
10修改 sc 表中 sno 为 20050102、cno 为 02 的记录的 grade 属性值为 85,然后将
该条记录删除。 
复制代码
复制代码
-- 修改 sc 表中 sno 为 20050102、cno 为 02 的记录的 grade 属性值为 85
UPDATE sc
SET grade = 85
WHERE sno = '20050102' AND cno = '02';

-- 删除 sc 表中 sno 为 20050102、cno 为 02 的记录
DELETE FROM sc
WHERE sno = '20050102' AND cno = '02';
复制代码
复制代码

为了看清楚效果这里先展示之前的sc表

 这里是执行完语句之后的(一语句执行后)

 (二语句执行后)

 

11、修改‘数据库原理’课程的所有学生成绩为 0。 
复制代码
复制代码
-- 确定“数据库原理”课程的 cno
SELECT cno
FROM course
WHERE cname = '数据库原理';

-- 根据查询结果更新 sc 表中相应记录的 grade 为 0
-- 假设查询结果中的 cno 为 '01'
UPDATE sc
SET grade = 0
WHERE cno = '01';
复制代码
复制代码

我们看一下效果

 


12、删除‘李丽’的所有选课情况。
复制代码
复制代码
-- 查找“李丽”的 sno
SELECT sno
FROM student
WHERE sname = '李丽';

-- 根据查询结果删除 sc 表中相应的选课记录
-- 查询结果中的 sno 为 '20050102'
DELETE FROM sc
WHERE sno = '20050102';
复制代码
复制代码

解释
 
 
DELETE
TRUNCATE
DELETE
TRUNCATE
复制代码
复制代码
-- 清空 student 表中的所有数据
TRUNCATE TABLE student;

-- 清空 course 表中的所有数据
TRUNCATE TABLE course;

-- 清空 sc 表中的所有数据
TRUNCATE TABLE sc;
复制代码
复制代码
消息 4712,级别 16,状态 1,第 5 行 无法截断表 'student',因为该表正由 FOREIGN KEY 约束引用。
这里由于外键的原因student和course无法用TRUNCATE删除,用DELETE可以

 

14、删除数据库中的三个表结构。 
复制代码
复制代码
-- 删除 sc 表
DROP TABLE IF EXISTS sc;

-- 删除 student 表
DROP TABLE IF EXISTS student;

-- 删除 course 表
DROP TABLE IF EXISTS course;
复制代码
复制代码

 

15、删除数据库。(这里记得要先关闭数据库)

 

 

posted @   贾贾鱼  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示