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

数据库小练习

-- student表

CREATE TABLE student(
    sno CHAR(5) PRIMARY KEY,
    sname 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)
);

参考插入数据语句如下:

-- 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('006','数据库原理',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) 创建数据库 teachingdb

CREATE DATABASE teachingdb;

(2) 在 teachingdb 中创建 student

USE teachingdb;
CREATE TABLE student(
    sno CHAR(5) PRIMARY KEY,
    sname 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 VARCHAR(20)

ALTER TABLE student ADD COLUMN nativeplace VARCHAR(20);

(4) 删除 student 表中的籍贯字段

ALTER TABLE student DROP COLUMN nativeplace;

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

ALTER TABLE student MODIFY ssex VARCHAR(3);

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

ALTER TABLE course ADD CONSTRAINT uk_cno UNIQUE (cname);

数据操作

(1) 在 student 表中插入一条数据
INSERT INTO student VALUES ('11111', '马明', '计算机', '01', '女', '2000/01/02', NULL);
(2) 将 student 表中所有学生的总学分加 2,空值也参加计算
UPDATE student SET totalcredit = COALESCE(totalcredit, 0) + 2;

(3) 将 student 表中马小燕的出生日期修改为 2000-01-22
UPDATE student SET birthday = '2000-01-22' WHERE sname = '马小燕';

(4) 删除 student 表中学号为 11111 的记录
DELETE FROM student WHERE no = '11111';

(5) 利用 student 表创建表 s1s1 的结构与内容与 student 表的完全相同
CREATE TABLE s1 LIKE student;
INSERT INTO s1 SELECT * FROM student;

(6) 删除学生表 s1 中计算机系学生的信息
DELETE FROM s1 WHERE sdept = '计算机';

(7) 删除 s1

DROP TABLE s1;

相关文章:

  • 函数式编程定义
  • 【Msq8.0无需登陆进行重置密码】
  • 数学建模 第一节
  • PAT甲级(Advanced Level) Practice 1019 General Palindromic Number
  • Next.js项目MindAI教程 - 第六章:在线咨询功能
  • Keil5下载教程及安装教程(附安装包)
  • 小说文本分析工具:基于streamlit实现的文本分析
  • Python依赖包迁移到断网环境安装
  • 【GPT入门】第22课 langchain LCEL介绍
  • 基于SpringBoot和Thymeleaf的仿商城系统开发与设计
  • HTB 学习笔记 【中/英】《前端 vs. 后端》P3
  • Qt程序基于共享内存读写CodeSys的变量
  • MySQL面试题
  • C++学习之动态数组和链表
  • 【SpringMVC】常用注解:@SessionAttributes
  • 阿里百炼Spring AI Alibaba
  • Windows安装Apache Maven 3.9.9
  • 手机验证码
  • 组合 力扣77
  • 3.14-进程间通信
  • 国家卫健委有关负责人就白皮书发布答记者问
  • 百年传承,再启新程,参天中国迎来2.0时代
  • 启程回家!神十九轨道舱与返回舱成功分离
  • 这就是上海!
  • 中国体育报关注徐梦桃、王曼昱、盛李豪等获评全国先进工作者:为建设体育强国再立新功
  • 路边“僵尸车”被人以1450元卖了,嫌疑人被刑拘