0
点赞
收藏
分享

微信扫一扫

MySQL数据库实验一

荷一居茶生活 2022-04-14 阅读 54
数据库

/*建库语句如果错误或者没有写,扣5分*/

create database student; 

use student;

/*所有的建表语句:

  1、create table语法不通过,每个扣对应80%分数,否则:

  2、类型长度太大(正常值5倍以上),每个扣1分

  3、忘记写primary key关键字,或者关键字定义错误,每个扣3分

  4、缺少foreign key,或者外键定义错误,每个扣1分

*/

/*本表分数5分*/

CREATE TABLE CLASS(

    CLSNO CHAR(2) NOT NULL , 

    CLSNM VARCHAR(50) NOT NULL , 

    PRIMARY KEY (CLSNO)

);

/*本表分数10分*/

CREATE TABLE COURSE(

    CNO CHAR(3) NOT NULL , 

    CLSNO CHAR(2) NOT NULL , 

    CNM VARCHAR(30) NULL , 

    TNM VARCHAR(30) NULL , 

    CREDIT NUMERIC(2,1) NULL,

    FCNO CHAR(3) NULL,

    PRIMARY KEY (CNO,CLSNO),

FOREIGN KEY(CLSNO) REFERENCES CLASS(CLSNO)

);

/*本表分数5分*/

CREATE TABLE GRP(

    GRPNO SMALLINT NOT NULL , 

    GRPNM VARCHAR(40) NOT NULL , 

    GRPADM CHAR(10) NULL ,  

    PRIMARY KEY (GRPNO)

);

/*本表分数15分,如果没有实现性别取值约束,扣5分*/

CREATE TABLE STU(

    SNO CHAR(10) NOT NULL , 

    SNM VARCHAR(10) NOT NULL , 

    SEX CHAR(2) CHECK(SEX='男' OR sex='女'), # 如果是低版本的mysql,类型直接用 ENUM('男','女')

    MOBILE CHAR(11) NULL ,

    BIRTHDAY DATE  NULL , 

    NATNM VARCHAR(30) NOT NULL , 

    CLSNO CHAR(2) NULL,

    GRPNO SMALLINT  NULL,

    PRIMARY KEY (SNO),

    FOREIGN KEY(CLSNO) REFERENCES CLASS(CLSNO),

    FOREIGN KEY(GRPNO) REFERENCES GRP(GRPNO)

);

/*本表分数10分*/

CREATE TABLE STUDY (

    SNO CHAR(10) NOT NULL, 

    CNO CHAR(3) NOT NULL,

    SCORE INT NULL,

    PRIMARY KEY(SNO,CNO),

    FOREIGN KEY(SNO) REFERENCES STU(SNO),

    FOREIGN KEY(CNO) REFERENCES COURSE(CNO)

);

/*10分,每个字段5分,分开写不算错,但扣1分*/

ALTER TABLE GRP

ADD BEAUTY INT NULL ,  

    ADD BEAST INT NULL;

/*5分*/

ALTER TABLE STUDY

MODIFY SCORE DECIMAL (4, 0) NULL;

/*可分开成多条insert语句,5分*/

INSERT INTO `class` VALUES ('01','软件工程2001班'),('02','软件工程2002班'),('03','软件工程2003班'),('04','软件工程2004班'),('05','软件工程2005班'),('06','软件工程2006班'),('07','软件工程2007班'),('08','软件工程2008班'),('09','软件工程2009班'),('10','软件工程2010班'),('11','软件工程2011班'),('12','软件工程2012班'),('13','软件工程2013班'),('14','软件工程2014班'),('15','软件工程2015班'),('20','其他班');

/*可分开成多条insert语句,5分*/

INSERT INTO `grp` VALUES (1,'第1组',NULL,NULL,NULL),(2,'第2组',NULL,NULL,NULL),(3,'第3组',NULL,NULL,NULL),(4,'第4组',NULL,NULL,NULL),(5,'第5组',NULL,NULL,NULL),(6,'第6组',NULL,NULL,NULL),(7,'第7组',NULL,NULL,NULL),(8,'第8组',NULL,NULL,NULL),(9,'第9组',NULL,NULL,NULL),(10,'第10组',NULL,NULL,NULL),(11,'第11组',NULL,NULL,NULL),(12,'第12组',NULL,NULL,NULL),(13,'第13组',NULL,NULL,NULL);

/*可分开成多条insert语句,10分,数据可以是任何符合要求的数据*/

INSERT INTO `course` VALUES 

('C01','05','数据库原理','曾长清',3.5,NULL),

('C02','05','Web应用技术(JavaEE)实验','邹华兴',2.0,NULL),

('C03','05','单片机原理与接口技术','邹春华',3.0,NULL),

('C04','09','操作系统','陈悦',3.5,NULL),

('C05','09','计算机通信与网络','林德钰',3.5,NULL),

('C06','05','思想道德修养与法律基础','王萍',3.0,NULL),

('C07','05','马克思主义基本原理','黎环',3.0,NULL),

('C09','05','学术英语','Purugganan Jeffy',2.0,NULL),

('C10','20','数据结构(C语言)版','闵卫东',4.0,NULL),

('C11','20','高级语言程序设计','张三',4.0,NULL),

('C12','20','C语言程序设计','李四',4.0,NULL),

('C13','20','Java语言程序设计','周翔',4.0,NULL);

/*写入个人信息,10分*/

INSERT INTO stu(SNO,SNM,SEX,BIRTHDAY,NATNM) VALUES ('9999999999','曾长清','男','19XX-XX-XX','江西-临川');

/*

4.附加题(数据修改,UPDATE命令)

  自学课本P62,尝试完成(注意where条件):

  ①将STU表中的手机号字段MOBILE、班级号CLSNO字段用update命令修改为自己的手机号及所在的班级编号

  update stu set mobile='13900000000',clsno='20' where sno='9999999999';

  ②将自己的分数减少2分(没有数据,只写语句)

  update study set score = score - 2 where sno='9999999999';

  

  评分:

  如果写了且正确,每个加5分;如果写了但不正确,每个加1~2分;注意:加分后整个上机作业不得超过100分

*/

/*5.删除所有表格的数据 (5分)

  顺序不对,扣除2分

*/

delete from study; /*这条必须为第1个被删除的*/

delete from stu;

delete from grp; /*这条必须在删除stu之后*/

delete from course;

delete from class; /*这条必须在删除stu之后*/

/*6.删除所有表,顺序要求跟上面删除数据一样(5分)

 顺序不对,扣除2分*/

drop table study;

drop table stu;

drop table grp;

drop table course;

drop table class;

/*7.删除数据库*/

drop database student;

举报

相关推荐

0 条评论