-- 完成项目素材中的sql练习,并将编写的sql文件和运行截图保存,打包后作为作业提交。

-- 设计一个学生成绩数据库,该库包含学生,老师,课程和成绩等信息并完成后面的练习(注意主外键关系)。
-- 学生:学号(SNO)、姓名(SNAME)、性别(SSEX)、生日(SBIRTHDAY )、所属班级(CLASS )
CREATE DATABASE IF NOT EXISTS sss;
USE sss;
CREATE TABLE IF NOT EXISTS student(
id TINYINT UNSIGNED AUTO_INCREMENT KEY ,
sno INT UNSIGNED NOT NULL ,
sname VARCHAR(20) NOT NULL ,
ssex ENUM('男','女','保密'),
sbirthday DATE ,
class INT UNSIGNED NOT NULL
)ENGINE = INNODB;
-- 课程:课程编号(CNO)、课程名(CNAME)、授课老师(TNO)
CREATE TABLE IF NOT EXISTS course(
id TINYINT UNSIGNED AUTO_INCREMENT KEY ,
cno INT UNSIGNED UNIQUE NOT NULL ,
cname VARCHAR(50) UNIQUE NOT NULL ,
tno VARCHAR(20) NOT NULL
)ENGINE = INNODB;
-- 成绩:学号(SNO)、课程编号(CNO)、得分(DEGREE)
CREATE TABLE IF NOT EXISTS score(
id TINYINT UNSIGNED AUTO_INCREMENT KEY ,
sno INT UNSIGNED UNIQUE NOT NULL ,
cno INT UNSIGNED NOT NULL ,
degree INT UNSIGNED
);
-- 老师:教师编号(TNO)、教师姓名(TNAME)、性别(TSSEX)、生日(TBIRTHDAY)、职称(TITLE)、单位科室(DEPART)
CREATE TABLE IF NOT EXISTS teacher(
id TINYINT UNSIGNED AUTO_INCREMENT KEY ,
tno INT UNSIGNED UNIQUE ,
tname VARCHAR(20) NOT NULL,
tssex ENUM('男','女','保密'),
tbirthday DATE,
title VARCHAR(20),
depart VARCHAR(40)
);
-- 要求:

-- 一、每张表使用sql语句插入至少10条数据
INSERT student(id,sno,sname,ssex,sbirthday,class) VALUES (1,1011,'张三','男','1991-10-10',95301);
INSERT student(id,sno,sname,ssex,sbirthday,class) VALUES (2,1031,'李四','男','1992-11-11',95303);
INSERT student(id,sno,sname,ssex,sbirthday,class) VALUES (3,1021,'王二','女','1991-10-10',95302);
INSERT student(id,sno,sname,ssex,sbirthday,class) VALUES (4,1012,'李磊','男','1991-10-10',95301);
INSERT student(id,sno,sname,ssex,sbirthday,class) VALUES (5,1032,'韩梅梅','女','1991-10-10',95303);
INSERT student(id,sno,sname,ssex,sbirthday,class) VALUES (6,1022,'王明','女','1991-10-10',95302);
INSERT student(id,sno,sname,ssex,sbirthday,class) VALUES (7,1013,'白杨','男','1991-10-10',95301);
INSERT student(id,sno,sname,ssex,sbirthday,class) VALUES (8,1033,'熊八','男','1991-10-10',95303);
INSERT student(id,sno,sname,ssex,sbirthday,class) VALUES (9,1023,'杨一','女','1991-10-10',95302);
INSERT student(id,sno,sname,ssex,sbirthday,class) VALUES (10,1014,'胡五','女','1991-10-10',95301);

INSERT course(cno,cname,tno) VALUES (3105,'计算机导论','张旭');
INSERT course(cno,cname,tno) VALUES (3106,'语文','熊涛');
INSERT course(cno,cname,tno) VALUES (3107,'数学','廖凡');
INSERT course(cno,cname,tno) VALUES (3108,'英语','王勃');
INSERT course(cno,cname,tno) VALUES (1101,'高等数学','李晨');
INSERT course(cno,cname,tno) VALUES (1102,'通信原理','霍思燕');
INSERT course(cno,cname,tno) VALUES(1103,'大学物理','阿凡达');
INSERT course(cno,cname,tno) VALUES (2101,'微积分','爱因斯坦');
INSERT course(cno,cname,tno) VALUES (2102,'数据结构','乔布斯');
INSERT course(cno,cname,tno) VALUES (2103,'电路理论','爱迪生');
INSERT course(cno,cname,tno) VALUES (2104,'电磁感应','爱迪生');

INSERT score(sno,cno,degree) VALUES (1011,3105,85);
INSERT score(sno,cno,degree) VALUES (1031,3105,86);
INSERT score(sno,cno,degree) VALUES (1021,3105,88);
INSERT score(sno,cno,degree) VALUES (1012,2102,65);
INSERT score(sno,cno,degree) VALUES (1032,2102,70);
INSERT score(sno,cno,degree) VALUES (1022,2102,75);
INSERT score(sno,cno,degree) VALUES (1013,3105,90);
INSERT score(sno,cno,degree) VALUES (1033,3105,55);
INSERT score(sno,cno,degree) VALUES (1023,2104,45);
INSERT score(sno,cno,degree) VALUES (1014,2104,45);

INSERT teacher(tno,tname,tssex,tbirthday,title,depart) VALUES (01,'张旭','男','1991-10-09','教授','110');
INSERT teacher(tno,tname,tssex,tbirthday,title,depart) VALUES (02,'熊涛','女','1991-10-09','教授','110');
INSERT teacher(tno,tname,tssex,tbirthday,title,depart) VALUES (03,'廖凡','男','1991-10-09','教授','110');
INSERT teacher(tno,tname,tssex,tbirthday,title,depart) VALUES (04,'王勃','女','1991-10-09','学士','111');
INSERT teacher(tno,tname,tssex,tbirthday,title,depart) VALUES (05,'李晨','男','1991-10-09','学士','111');
INSERT teacher(tno,tname,tssex,tbirthday,title,depart) VALUES (06,'霍思燕','女','1991-10-09','学士','111');
INSERT teacher(tno,tname,tssex,tbirthday,title,depart) VALUES (07,'阿凡达','男','1991-10-09','学士','111');
INSERT teacher(tno,tname,tssex,tbirthday,title,depart) VALUES (08,'爱因斯坦','女','1991-10-09','科学家','112');
INSERT teacher(tno,tname,tssex,tbirthday,title,depart) VALUES (09,'乔布斯','男','1991-10-09','科学家','112');
INSERT teacher(tno,tname,tssex,tbirthday,title,depart) VALUES (010,'爱迪生','男','1991-10-09','科学家','112');

-- 二、完成以下查询题目:
-- 1、 查询Student表中的所有记录的Sname、Ssex和Class列。
SELECT sname,ssex,class FROM student;
-- 2、 查询教师所有的单位即不重复的Depart列。
SELECT DISTINCT depart FROM teacher;
-- 3、 查询Student表的所有记录。
SELECT * FROM student;
-- 4、 查询Score表中成绩在60到80之间的所有记录。
SELECT degree FROM score WHERE degree BETWEEN 60 AND 80;
-- 5、 查询Score表中成绩为85,86或88的记录。
SELECT * FROM score WHERE degree IN (85,86,88);
-- 6、 查询Student表中“95301”班或性别为“女”的同学记录。
SELECT * FROM student WHERE ssex='女' OR class="95301";
-- 7、 以Class降序查询Student表的所有记录。
SELECT * FROM student ORDER BY class desc;
-- 8、 以Cno升序、Degree降序查询Score表的所有记录。
SELECT * from score ORDER BY cno asc,degree desc;
-- 9、 查询“95031”班的学生人数。
SELECT COUNT(*) FROM student WHERE class="95301";
-- 10、查询Score表中的最高分的学生学号和课程号。
SELECT * FROM score WHERE degree=(SELECT MAX(degree) FROM score);
-- 11、查询‘3-105’号课程的平均分。
SELECT AVG(degree) FROM score WHERE cno=3105;
-- 12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

SELECT AVG(degree) from score WHERE cno LIKE '3%'
HAVING COUNT(*) >=5;
-- 13、查询所有学生的Sname、Cno和Degree列。
SELECT s.sname,sc.cno,sc.degree
FROM student AS s
INNER JOIN score AS sc
ON s.sno=sc.sno;

-- 14、查询“95303”班所选课程的平均分。
SELECT AVG(sc.degree) FROM score AS sc
INNER JOIN student AS s
ON s.sno=sc.sno
WHERE s.class=95303;
-- 15、假设使用如下命令建立了一个grade表:
create table grade(low int,upp int,rank char(1));
insert into grade values(90,100,'A');
insert into grade values(80,89,'B');
insert into grade values(70,79,'C');
insert into grade values(60,69,'D');
insert into grade values(0,59,'E');
commit;
-- 现查询所有同学的Sno、Cno和rank列。
select sno,cno,rank from Score,grade where Degree between low and upp;
-- 16、查询"张旭"教师任课的学生成绩。
SELECT s.sname ,sc.degree
FROM student AS s
INNER JOIN score AS sc
ON s.sno=sc.sno
INNER JOIN course AS c
ON sc.cno=c.cno
WHERE c.tno='张旭';

-- 17、查询选修某课程的同学人数多于5人的教师姓名。
SELECT c.tno FROM course AS c
INNER JOIN score AS sc
ON c.cno=sc.cno
HAVING COUNT(*)>=5;

-- 18、查询所有教师和同学的name、sex和birthday.
SELECT tname,tssex,tbirthday FROM teacher UNION SELECT sname,ssex,sbirthday FROM student;
-- 20、查询至少有2名男生的班号。
SELECT class FROM student WHERE ssex='男'
HAVING COUNT(*)>=2;
-- 21、查询Student表中不姓“王”的同学记录。
SELECT * FROM student WHERE sname NOT LIKE '王%';
-- 22、查询所有选修“计算机导论”课程的“男”同学的成绩表。
SELECT s.sname,sc.degree,c.cname FROM score AS sc
INNER JOIN course AS c
ON sc.cno=c.cno
INNER JOIN student AS s
ON sc.sno=s.sno
WHERE c.cname='计算机导论'AND s.ssex='男';

转载于:https://www.cnblogs.com/baiyang-life/p/7098137.html

mysql 常用命令实例相关推荐

  1. MYSQL常用命令(转载)

    1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqld ...

  2. MY-SQL常用命令

      MY-SQL常用命令      一.连接MYSQL.             格式:   mysql   -h主机地址   -u用户名   -p用户密码             1.例1:连接到本 ...

  3. MYSQL常用命令大全(收集的超全)!

    文章目录 一.MYSQL常用命令 1: 1.导出整个数据库 2.导出一个表 3.导出一个数据库结构 4.导入数据库 启动与退出 二.库操作 1.创建数据库 2.显示所有的数据库 3.删除数据库 4.连 ...

  4. 征途linux mysql_MySql征途之mysql常用命令

    mysql征程之mysql常用命令 一.连接MySql 语法: mysql -h 主机地址 -u 用户名 -p 用户密码 例1:连接到本机上的MYSQL.键入命令mysql -u root -p(本地 ...

  5. mysql tree 修改_13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

    更改root密码 ps aux |grep mysql     //先查看一下mysql是否启动了 /etc/init.d/mysqld start    //启动mysql ps aux |grep ...

  6. 设置更改root密码(远程,本地)、连接mysql、mysql常用命令

    设置更改root密码 1.将mysql加入环境变量中 [root@centos7 ~]# grep mysql /etc/profile export PATH=/usr/local/mysql/bi ...

  7. MySql常用命令集Mysql常用命令showdatabases;显示数据库createdatab

    MySql 常用命令集 Mysql常用命令 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop ...

  8. 【CentOS 7MySQL常用操作3】,MySQL常用命令#180113

    2019独角兽企业重金招聘Python工程师标准>>> hellopasswd MySQL常用命令 查询库show databases; 切换库use mysql; 查看库里的表sh ...

  9. 设置更改root密码 连接mysql mysql常用命令

    一.设置更改root密码 #/etc/init.d/mysqld start #ps aux |grep mysql #mysql -uroot //提示-bash: mysql : 未找到命令 #l ...

最新文章

  1. Hbase 学习(六) 配置文件调优
  2. android app内嵌h5页面,app内嵌h5页面:前端与原生语言的配合
  3. [搜索]Trie树的实现
  4. 运维从业人员是否需要考证?
  5. 爬虫最基本的工作流程:内涵社区网站为例
  6. JMS学习六(ActiveMQ消息传送模型)
  7. 计算机专业中最受热议的4个专业,2018考研后身价倍增的4个专业盘点
  8. 有道智云智能语音服务全面升级 最多可支持44种语言和方言
  9. Document/View 模式下的窗口重绘
  10. 物联网定位技术超全解析
  11. 【Python教你一招】用Python实现黑客帝国代码雨效果(3种方式)
  12. TL-WR720n 硬改 16M rom
  13. 【笔记整理】数字信号处理复习——FT、DTFT、DFT和FFT之间的关系
  14. 带有风的诗词_2017含有风的诗句大全
  15. 手机上日程应该怎么设置提醒
  16. android 9.0 10.0 Launcher3修改workspace字体颜色
  17. 计算机考研用python_2014北邮计算机考研复试上机题解(上午+下午)
  18. iframe嵌入通讯
  19. Java面向对象程序设计实训教程_JAVA课程实验报告 实验二 JAVA面向对象程序设计...
  20. Qt Quick 之 QML 与 C++ 混合编程详解

热门文章

  1. 中文稀疏GPT大模型落地 — 通往低成本高性能多任务通用自然语言理解的关键里程碑
  2. 教你使用Python制作酷炫二维码
  3. 《张成功项目管理记》一客户说好才算好
  4. 2017-2018 ACM-ICPC Asia East Continent League Final J. Straight Master(差分+思维)
  5. C语言程序设计第二版呼克佑第一章C语言与程序设计课后习题简答题答案
  6. 【linux】ftp创建文件权限问题
  7. 从能力者变身赋能者 用友YonBuilder开启“人人都是开发者”新时代
  8. 将16位的深度图转换为8位深度图
  9. 综评计算机考试范围,南信大2021年综合评价录取考核开考,6000余名考生角逐合格资格...
  10. DAX 实战 | 手把手教你使用表函数生成销售表和汇总表