-- 设环境如下 : 一个系有多个专业,一个专业一年只招一个班,一个班有多个学生
-- 建立 系,班级,学生的数据库
-- 关系模式为:班:CLASS (班号classid,专业名subject,系名deptname
-- 入学年份enrolltime,人数num)
-- 学生:STUDENT (学号studentid,姓名name,年龄age,班号classid)
-- 系:DEPARTMENT(系号departmentid,系名deptname)
-- 完成以下功能
-- 建表声明主外码,department是唯一约束,学生姓名不能空,自行插入数据
CREATE TABLE department (
    departmentid VARCHAR(32) PRIMARY KEY ,
    deptname VARCHAR(32)  UNIQUE NOT NULL);
DROP TABLE department

CREATE TABLE class(
    classid INT PRIMARY KEY ,
    `subject` VARCHAR(32) NOT NULL,
    deptname VARCHAR(32),
    enrolltime YEAR,
    num INT NOT NULL DEFAULT 0,
FOREIGN KEY (deptname) REFERENCES department(deptname));
DROP TABLE class

CREATE TABLE student (
    studentid INT PRIMARY KEY ,
    `name` VARCHAR(32) NOT NULL DEFAULT '',
    age INT,
    classid INT ,
FOREIGN KEY(classid) REFERENCES class(classid));
DROP TABLE student

INSERT INTO class VALUES
    (101,'软件','计算机','1995',20),
    (102,'微电子','计算机','1996',30),
    (111,'无机化学','化学','1995',29),
    (112,'高分子化学','化学','1996',25),
    (121,'统计数学','数学','1995',20),
    (131,'现代语言','中文','1996',20),
    (141,'国际贸易','经济','1997',30),
    (142,'国际金融','经济','1996',14);

INSERT INTO student VALUES
    (8101,'张三',18,101),
    (8102,'钱四',16,121),
    (8103,'王玲',17,131),
    (8105,'李飞',19,102),
    (8109,'赵四',18,141),
    (8110,'李可',20,142),
    (8201,'张飞',18,111),
    (8302,'周瑜',16,112),
    (8203,'王亮',17,111),
    (8305,'董庆',19,102),
    (8409,'赵龙',18,101),
    (8510,'李丽',20,142);

INSERT INTO department VALUES
    ('001','数学'),('002','计算机'),
    ('003','化学'),('004','中文'),
    ('005','经济');
    
-- 找出所有姓李的学生
SELECT * FROM student
    WHERE `name` LIKE '李%';
-- 列出所有开设超过一个专业的系的名字
SELECT deptname,COUNT(*) AS c FROM class
    GROUP BY deptname
    HAVING c > 1;
-- 列出人数>=30的系的编号和名字(先查各个系多少人做成临时表,使用联合查询)
SELECT departmentid,department.deptname ,tem.nums
    FROM department ,(SELECT deptname,SUM(num)AS nums FROM class
                GROUP BY deptname
                HAVING nums >= 30) tem
    WHERE department.deptname = tem.deptname

-- 学校又新增加了一个物理系,编号为006
INSERT INTO department VALUES(006,'物理');
-- 张三退学,更新相关表 人数减一,两个语句,用事务保持一致
START TRANSACTION ;#开始事务
# 人数减少
UPDATE  class SET num = num - 1
    WHERE classid = (SELECT classid FROM student

#删除学生                where `name` = '张三');
DELETE FROM student
    WHERE `name` = '张三';
SELECT * FROM class
SELECT * FROM student
COMMIT;#提交事务

mysql 综合练习相关推荐

  1. 电脑上mysql数据库无法登录_无法远程登入MySQL数据库的几种解决办法MySQL综合 -电脑资料...

    方法一: 尝试用MySQL Adminstrator GUI Tool登入MySQL Server,Server却回复错误讯息:Host '60-248-32-13.HINET-IP.hinet.ne ...

  2. JAVA+MySQL综合笔记

    Java+MySQL综合运用笔记 一.Java连接使用mysql的5个思路过程 ​ 首先导入JDBC驱动jar包放到lib文件夹里面. 1.加载驱动方法 ①注册驱动:DriverManager.reg ...

  3. mysql综合案例 数据表的基本操作

    mysql综合案例 数据表的基本操作 创建修改删除表,掌握数据表的基本操作 创建数据库company,按下表创建两个table名为offices和employees offices表结构 字段名 数据 ...

  4. mysql支持啥系统_MySQL支持的操作系统列表MySQL综合 -电脑资料

    我们使用GNU Autoconf,因此将MySQL移植到所有使用Posix线程和C++编译器的现代系统是可能的, 已经报告MySQL可以在下列操作系统/线程包的组合上成功地进行编译.注意,对于很多操作 ...

  5. MySQL综合测评_java+mysql生综合素质测评系统设计与实现

    摘要随着科技水平的不断提高,许多工作都在计算机系统的帮助下在不断地发展和进步.使用日趋成熟的计算机技术来替代传统的人工手动模式,是当今社会不可逆转的必然趋势.计算机已进入人类社会的各个领域,发挥着越来 ...

  6. jsp+ssm+mysql综合项目实战教程:开发通用进销存管理系统

    课程简介 这是一款由jsp+ssm+mysql实现的企业库存进销存管理系统项目,这个进销存系统功能比较简单,采用了ssm框架,功能结构非常简单明了,界面也比较清爽大气,非常适合学生和Java新手拿来学 ...

  7. mysql综合实例注意点

    1 WITH ROLLUP的小技巧 WITH ROLLUP可以把所有数据作为一组,再起一行.一般用于下面的总计. SELECT note, SUM(num) FROM books GROUP BY n ...

  8. 【MySQL综合练习1】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 创建表 一.练习 1.查询"c001"课程比"c002"课程成绩高的所有学生的学号: 2 ...

  9. MySQL综合练习4

    目录 一.数据库创建 二.练习题 1.查询所有的课程的名称以及对应的任课老师姓名 2.查询学生表中男女生各有多少人 3.查询物理成绩等于100的学生的姓名 4.查询平均成绩大于八十分的同学的姓名和平均 ...

  10. 【Kay】MySQL综合题——复旦浙大练题情况

    1.运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数,请取出相应明细数据,对于在8月份没有练习过的用户,答题数结果返回0 SELECT u.device_id, u.univer ...

最新文章

  1. 浅谈自然语言处理技术在自动化的应用
  2. python中intvar_在Python线程中使用Intvar/DoubleVar是否安全?
  3. 硅谷顶级VC:“S曲线”看四大风口,创企成功机会巨大
  4. 你的心思,我如何懂得?
  5. 如何将字符数组里的内容转换成uint8的类型?将一个字符数组里面的所有元素变成一个字符串?
  6. warning: directory not found for option“XXXXXX”
  7. 重磅!双腿机器人Digit v2视频流出,自主搬卸货物噪音极小
  8. java项目功能详情介绍,JAVAEE—spring的详细介绍
  9. Linux常见服务构建
  10. 二叉树的前序中序后序 递归与非递归解法
  11. wincc工程组态论文_仪表人零基础学系统组态,必备知识!2020.12.12
  12. drupal简体中文语言包安装方法
  13. 二维数组更改vue,VueX中直接修改数据报错,修改一维数组,二维数组,报错的原因...
  14. Android之实现手写电子签名
  15. 我国计算机系统安全保护等级的划分,规范《GB17859-1999-计算机信息系统安全保护等级划分准则》.pdf...
  16. 编译器工具链初步解析
  17. Git提交合并提交及注释
  18. 摄影技能技巧大全 - 太精彩啦,年后弄个单反按着练练!
  19. 树莓派Raspberry Pi 系统搭建和智能机器人小车的组装调试
  20. 存款利息计算器html代码,html+jQuery简单的利息计算器

热门文章

  1. DataStory创始人兼CEO徐亚波博士获年度青年创业榜样奖项
  2. php博客平台 开源,PHP开源博客Blog - PHP开源网(PHP-OPEN.ORG)
  3. 计算机硬盘的文件怎么删除文件,如何彻底删除文件?彻底删除硬盘数据的几种方法-电脑教程...
  4. ubuntu实现屏幕的旋转和开启自动旋转屏幕
  5. 0基础转行3D建模,从月薪3000到15k,我整理的超全学习指南
  6. BottomNavigationView 动态切换Icon且保留原图颜色
  7. BZOJ3162: 独钓寒江雪
  8. unity 报错 Some objects were not cleaned up when closing the scene. 原因与方案
  9. Linux那些事儿 之 戏说USB(21)向左走,向右走
  10. TILERA--Makefile实例