当前位置: 首页 > news >正文

数据库原理及应用mysql版陈业斌实验一

🏝️专栏:Mysql_猫咪-9527的博客-CSDN博客
🌅主页:猫咪-9527-CSDN博客 

“欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。”

目录

实验一:数据库与数据表的定义和数据操作

1.实验数据如下

student 表(学生表)

course 表(课程表)

teacher 表(教师表)

score 表(成绩表)

2. 插入数据

student 表中的数据

course 表中的数据

teacher 表中的数据

score 表中的数据

实验内容

1-1 创建数据库和数据表的 DDL 语句

1-2 操作数据的 DML 语句


实验一:数据库与数据表的定义和数据操作

实验目的:
通过实验熟悉数据库上机环境;熟练掌握和使用 DDL,创建、修改和删除数据库和数据表;熟练掌握和使用 DML,对数据表中的数据进行增加、修改和删除操作。

1.实验数据如下

student 表(学生表)
CREATE TABLE student (
    sno CHAR(5) PRIMARY KEY,          -- 学号
    snme VARCHAR(20) NOT NULL,        -- 姓名
    sdept VARCHAR(20) NOT NULL,       -- 系别
    sclass CHAR(2) NOT NULL,          -- 班级
    ssex CHAR(1),                     -- 性别
    birthday DATE,                    -- 生日
    totalcredit DECIMAL(4,1)          -- 学分
);
course 表(课程表)
CREATE TABLE course (
    cno CHAR(3) PRIMARY KEY,
    cname VARCHAR(50),       
    ctime DECIMAL(3,0),          
    credit DECIMAL(3,1) 
);
teacher 表(教师表)
CREATE TABLE teacher (
    tno CHAR(6) PRIMARY KEY,          
    tname VARCHAR(20),               
    tsex CHAR(1),                    
    tdept VARCHAR(20)                 
);
score 表(成绩表)
CREATE TABLE score (
    sno CHAR(5),                      
    cno CHAR(3),                      
    tno CHAR(6),                     
    grade DECIMAL(5,1),              
    PRIMARY KEY (sno, cno, tno),      
    CONSTRAINT fk_sno FOREIGN KEY(sno) REFERENCES student(sno),
    CONSTRAINT fk_cno FOREIGN KEY(cno) REFERENCES course(cno),
    CONSTRAINT fk_tno FOREIGN KEY(tno) REFERENCES teacher(tno)
);

2. 插入数据

student 表中的数据
INSERT INTO student VALUES('96001', '马小燕', '计算机', '01', '女', '2000/01/02', 0);
INSERT INTO student VALUES('96002', '黎明', '计算机', '01', '男', '2000/03/05', 0);
INSERT INTO student VALUES('96003', '刘东明', '数学', '01', '男', '2000/10/05', 0);
INSERT INTO student VALUES('96004', '赵志勇', '信息', '02', '男', '2000/08/08', 0);
INSERT INTO student VALUES('97001', '马蓉', '数学', '02', '女', '2001/03/04', 0);
INSERT INTO student VALUES('97002', '李成功', '计算机', '01', '男', '2001/09/10', 0);
INSERT INTO student VALUES('97003', '黎明', '信息', '03', '女', '2002/02/08', 0);
INSERT INTO student VALUES('97004', '李丽', '计算机', '02', '女', '2002/01/05', 0);
INSERT INTO student VALUES('96005', '司马志明', '计算机', '02', '男', '2001/11/23', 0);
course 表中的数据
INSERT INTO course VALUES('001', '数学分析', 64, 4);
INSERT INTO course VALUES('002', '普通物理', 64, 4);
INSERT INTO course VALUES('003', '微机原理', 56, 3.5);
INSERT INTO course VALUES('004', '数据结构', 64, 4);
INSERT INTO course VALUES('005', '操作系统', 56, 3.5);
INSERT INTO course VALUES('007', '编译原理', 48, 3);
INSERT INTO course VALUES('008', '程序设计', 32, 2);
teacher 表中的数据
INSERT INTO teacher VALUES('052501', '王成刚', '男', '计算机');
INSERT INTO teacher VALUES('052502', '李正科', '男', '计算机');
INSERT INTO teacher VALUES('052503', '严敏', '女', '数学');
INSERT INTO teacher VALUES('052504', '赵高', '男', '数学');
INSERT INTO teacher VALUES('052505', '刘玉兰', '女', '计算机');
INSERT INTO teacher VALUES('052506', '王成刚', '男', '信息');
INSERT INTO teacher VALUES('052507', '马悦', '女', '计算机');
score 表中的数据
INSERT INTO score VALUES('96001', '001', '052503', 77.5);
INSERT INTO score VALUES('96001', '003', '052501', 89);
INSERT INTO score VALUES('96001', '004', '052502', 86);
INSERT INTO score VALUES('96001', '005', '052505', 82);
INSERT INTO score VALUES('96002', '001', '052504', 88);
INSERT INTO score VALUES('96002', '003', '052502', 92.5);
INSERT INTO score VALUES('96002', '006', '052507', 90);
INSERT INTO score VALUES('96005', '004', '052502', 92);
INSERT INTO score VALUES('96005', '005', '052505', 90);
INSERT INTO score VALUES('96005', '006', '052505', 89);
INSERT INTO score VALUES('96005', '007', '052507', 78);
INSERT INTO score VALUES('96003', '001', '052504', 69);
INSERT INTO score VALUES('97001', '001', '052504', 96);
INSERT INTO score VALUES('97001', '008', '052505', 95);
INSERT INTO score VALUES('96004', '001', '052503', 87);
INSERT INTO score VALUES('96003', '003', '052501', 91);
INSERT INTO score VALUES('97002', '003', '052502', 91);
INSERT INTO score VALUES('97002', '004', '052505', NULL);
INSERT INTO score VALUES('97002', '006', '052507', 92);
INSERT INTO score VALUES('97004', '005', '052502', 90);
INSERT INTO score VALUES('97004', '006', '052501', 85);

 注:把上面的实验数据添加上再开始实验。

实验内容

1-1 创建数据库和数据表的 DDL 语句

(1) 创建数据库 teachingdb

CREATE DATABASE teachingdb;

(2) 在 teachingdb 中创建 student

CREATE TABLE student (
    sno CHAR(5) PRIMARY KEY,           
    snme VARCHAR(20) NOT NULL,       
    sdept VARCHAR(20) NOT NULL, 
    sclass CHAR(2) NOT NULL,      
    ssex CHAR(1),              
    birthday DATE,
    totalcredit DECIMAL(4,1)
);

 

(3) 在 student 表中增加 nativeplace 字段

ALTER TABLE student ADD nativeplace VARCHAR(20);

(4) 删除 student 表中的 nativeplace 字段

ALTER TABLE student DROP COLUMN nativeplace;

(5) 将 student 表中的 ssex 字段定义改为 VARCHAR(3)

ALTER TABLE student MODIFY ssex VARCHAR(3);

 

(6) 在 course 表中 cname 上添加唯一性约束 uk_cno

方法1:创建时添加

CREATE TABLE course (
    cno CHAR(3) PRIMARY KEY,          
    cname VARCHAR(50) UNIQUE,           
    ctime DECIMAL(3,0),
    credit DECIMAL(3,1)              
);

方法二:创建表创建后添加

CREATE TABLE course (
    cno CHAR(3) PRIMARY KEY,
    cname VARCHAR(50),       
    ctime DECIMAL(3,0),          
    credit DECIMAL(3,1) 
);
alter table course add unique (cname);


1-2 操作数据的 DML 语句

(1) 在 student 表中插入一条数据

INSERT INTO student VALUES('11111', '马明', '计算机', '01', '女', '2000-01-11', NULL);

 (2) 将 student 表中所有学生的总学分加 2,空值也参加计算

UPDATE student SET totalcredit = totalcredit + 2;

(3) 将 student 表中 马小燕 的出生日期修改为 2000-01-22

UPDATE student SET birthday = '2000-01-22' WHERE snme = '马小燕';

(4) 删除 student 表中学号为 11111 的记录

DELETE FROM student WHERE sno = '11111';

(5) 利用 student 表创建表 slsl 的结构与内容与 student 表完全相同

CREATE TABLE sl AS SELECT * FROM student;

(6) 删除 sl 表中计算机系学生的信息

DELETE FROM sl WHERE sdept = '计算机';
创建删除展示:
结果:

(7) 删除 sl 表 

DROP TABLE sl;

相关文章:

  • 数据清理工具——OpenRefine的进阶操作
  • 验证码设计与前端安全:实现方式、挑战与未来发展趋势深度分析
  • SpringBoot实现注册和登录功能(保姆级)
  • 企业模板(QiMoban)是一个专注于企业官网搭建的高效平台
  • 4.1、网络安全模型
  • 香港站群服务器租用应该怎么选?
  • 基于Python的垃圾短信分类
  • L2TP实验(ensp)
  • WRF移动嵌套结合伏羲模型与CFD(PALM)高精度多尺度降尺度分析研究
  • 机房综合监控,打造全方位运维管理体系
  • 每日一题力扣2974.最小数字游戏c++
  • 【Javascrip】Javascript练习01 REST API using Express.js.
  • Python实战(3)-数据库操作
  • 【yolo】使用 Netron 可视化深度学习模型:从 YOLOv1 到 YOLOv8 的探索
  • Spring AI Alibaba ChatClient使用
  • 分布式中间件:基于 Redis 实现分布式锁
  • 二分查找上下界问题的思考
  • VS Code PowerShell、Windows PowerShell、CMD 的区别与联系
  • 探究Three.js中模型移动与旋转的交互逻辑
  • 《概率论与数理统计》期末复习笔记_下
  • 习近平同巴西总统卢拉共同会见记者
  • 云南大理铁路枢纽工程建设取得两大进展,预计明年建成
  • 福建宁德市长张永宁拟任设区市党委正职,曾获评全国优秀县委书记
  • 民企老板被错羁212天续:申请国赔千万余元,要求恢复名誉赔礼道歉
  • 金俊峰已跨区任上海金山区委副书记
  • 马克龙称法英正与乌克兰商议“在乌部署欧洲军队”