MySQL数据库学习完后总结的知识点3
小标 2018-10-12 来源 : 阅读 1325 评论 0

摘要:本文主要向大家介绍了MySQL数据库学习完后总结的知识点3,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

本文主要向大家介绍了MySQL数据库学习完后总结的知识点3,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

#上机练习8
#查询所有科目的考试成绩信息 (某些科目可能从没有被考试过)
SELECT s.sunname,r.studentresult FROM sub_kemu s
LEFT JOIN result r
ON s.subid=r.subno

#查询从未考试的科目
SELECT s.sunname,r.studentresult FROM sub_kemu s
LEFT JOIN result r
ON s.subid=r.subno
#where r.studentresult is null; 不能拿成绩 做条件 有的人缺考
WHERE r.examdate IS NULL;

SELECT sunname, studentresult FROM sub_kemu s
LEFT JOIN result r
ON s.subid= r.subno
WHERE r.examdate IS NULL;

#----------------------------自身连接

CREATE TABLE fuzi(
id INT(4) UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
idname VARCHAR(6) NOT NULL,
parentid INT(4) UNSIGNED 
)CHARSET=utf8

INSERT INTO fuzi (id,idname) VALUES (1,‘软件开发‘),
(2,‘美术设计‘),
(3,‘java基础‘),
(4,‘oop基础‘),
(5,‘数据库技术‘),
(6,‘ps技术‘),
(7,‘色彩搭配技术‘)

#要求把父类子类信息分别显示出来
SELECT p.idname AS 父栏目,c.idname AS 子栏目 FROM fuzi p
INNER JOIN fuzi c
ON p.id=c.parentid


#-------------分页显示
#要求 分页显示学生信息 每页显示5条
SELECT * FROM student
ORDER BY stuid DESC
#第一页
LIMIT 0,5

SELECT * FROM student
ORDER BY stuid DESC
#第二页
LIMIT 5,5

SELECT * FROM student
ORDER BY stuid DESC
#第三页
LIMIT 10,5

#偏移量的算法是 当前页数减去一在乘 当前显示的条数 列如 第三页 偏移量=3-1*5(条数)


# 子查询 也叫嵌套查询 查询方式由里到外 子查询的结果一般是集合 建议使用in关键字


#查询比孙悟空小的学生信息
SELECT * FROM student
WHERE birthday>(
SELECT MAX(birthday) FROM student 
WHERE stuname=‘孙悟空‘
)


#使用子查询 查询参加最近一次 java考试成绩的学生最高分和最低分

 

#查询Logic Java的科目编号
SELECT subjectno FROM SUBJECT WHERE subjectname=‘LogicJava‘
#查询获得Logic Java最近一次的考试日期
SELECT MAX(DATE(examdate)) FROM result
WHERE subjectno IN(
SELECT subjectno FROM SUBJECT WHERE subjectname=‘LogicJava‘)
#根据课程编号获取考试成绩的最高分和最低分
SELECT MAX(studentresult),MIN(studentresult) FROM result
WHERE subjectno=(
SELECT subjectno FROM SUBJECT WHERE subjectname=‘LogicJava‘
)
AND
DATE(examdate)=(
SELECT MAX(DATE(examdate)) FROM result
WHERE subjectno=(
SELECT subjectno FROM SUBJECT WHERE subjectname=‘LogicJava‘)
)
---------------------------------------------------------------------
SELECT MAX(studentresult), MIN(studentresult) FROM result
WHERE subno IN(
SELECT subid FROM sub_kemu WHERE sunname=‘java‘
)
AND
DATE(examdate)=(
SELECT MAX(DATE(examdate)) FROM result
WHERE subno IN(
SELECT subid FROM sub_kemu WHERE sunname=‘java‘
)
)

 

#检查LogicJava课程最近一次考试。如果有成绩达到80分
#以上者,则显示分数排在前5名学员的学号和分数
SELECT studentno,studentresult FROM result
WHERE EXISTS(
SELECT * FROM result WHERE subjectno=(
SELECT subjectno FROM SUBJECT WHERE subjectname=‘LogicJava‘
) AND examdate=(
SELECT MAX(examdate) FROM result
WHERE subjectno=(
SELECT subjectno FROM SUBJECT WHERE subjectname=‘LogicJava‘)
) AND studentresult>80
)
AND 
subjectno=(
SELECT subjectno FROM SUBJECT WHERE subjectname=‘LogicJava‘
)
ORDER BY studentresult DESC
LIMIT 5

 

 

SELECT * FROM result WHERE EXISTS
(
SELECT * FROM result WHERE studentresult>80
)

--------------------------------------------------------------------------------------------------------------------
------HAVING子句是用来对分组后的数据进行筛选的 where不能对分组的进行筛选
执行顺序 WHERE---GROUP BY--HAVING

--DATEDIFF(date1,date2)返回1和2之间相隔的天数
--ADDDATE(date,n)计算date加上n天的日期

---数据类型 double(5,2)取值范围是-999.99~999.99
tinyint smallint mediumint int float double decimal
字符串类型
char 固定长度 varchar 可变长度

语法
where
group by
order by
limit 4 ,4
是从第五条数据开始显示的第一条数据的偏移量是0 8

--子查询作为where条件的一部分 当和比较运算符比较的时候子查询返回的值不能多于一个

--inner jion 。。。on 
--子查询必须在一个小括号里面

--模糊查询 %代替一个或者多个字符 _ 代表一个字符查询

--查询没有参加最近一次java考试的学生的学生信息 参加了用 in 没有参加就用 not in

--高级子查询
exists和not exists 子查询是将主查询字段传递到后边的查询作为条件 返回值true或者false

内连接 外链接(左右连接)
=和<>
使用inner join on 或者 where进行表之间的连接
inner jion 连接俩个表(inner可以省略)
on 用来设置条件

事务 原子性 一致性 隔离性 持久性
set autocommit=0 关闭自动提交 =1 开启自动提交 begin或者start transaction 开始事务 commit 提交事务 rollback 回滚事务

--------------《数据库设计》
建模
visio流程图 UML 图 ---》 数据库模型图、
powerdesigner 数据库模型图---》流程图 UML图
rose

数据库设计流程
需求分析 分析客户业务和数据处理需求
概要设计 设计数据库的E-R模型图确认需求信息的正确性和完整
详细设计 应用三大范式审核数据库结构
代码编写 物理实现数据库编写实现应用
软件测试。。。。
软件部署。。。

E-R图是实体关系图 数据库模型图 俩大图

entity实体 relationship实体之间的关系

实体 矩形 属性 椭圆 关系 菱形

后缀 .cdm 是E-R图的后缀
后缀 .pdm是数据库模型图

映射基数 一对多
一对一 一对多 多对一 多对多


第一范式 确保每列的原子性 (满足是不可再分的最小单元) 则就是第一范式
第二范式 确保每个表只描述一件事情
第三范式 满足了第二范式然后确保每列和主键列直接相关 而不是间接相关


创建索引
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER NOT NULL ,
`content` text CHARACTER NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
INDEX index_name (title(length))-------------------------------
)

修改表结构的方式添加索引

ALTER TABLE table_name ADD INDEX index_name ON (column(length))

删除索引
DROP INDEX index_name ON tabl    

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程