首页 / MYSQL / MySQL中的DML和DQL
MySQL中的DML和DQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL中的DML和DQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3099字,纯文字阅读大概需要5分钟。
内容图文
插入数据记录:INSERT insert into ... values ...可以同时插入多条记录;
更新数据记录:UPDATE
删除数据记录:DELETE/TRUNCATE
MySQL中的SELECT语句
SELECT语法:查询所有、查询部分;查询使用别名、查询空值、查询使用常量
WHERE子句:对拆线呢结果进行限定;
LIMIT子句:对查询结果进行限定
常用函数分类:聚合函数、字符串函数、时间日期函数、数学函数
子查询:将一个查询嵌套在另一个查询中。
1、简单子查询
例如,查看年龄比“李斯文”小的学生。
分析:先查出“李斯文”的出生日期;然后,利用where语句筛选出生日期比“李斯文”大的学生
SELECT studentNo,studentName,sex,birthday,address FROM student
WHERE birthday>
(SELECT birthday FROM student WHERE studentName=‘李斯文‘);
这里,括号内的子查询返回的是李斯文的生日:1993-07-23——一个DATA类型的数据。
子查询使用的比较运算符有>、=、<、>=、<=,执行时,先执行子查询,返回值;再执行整个父查询,返回最后结果。(比较运算符后面的子查询只能返回单个数值)
子查询作为WHERE条件的一部分,还可以和UPDATE、INSERT、DELETE一起使用。
建议在编写查询语句时,直接指定要显示的列名,而不是用*,因为后者占用的资源大,可维护性低。
2、使用子查询在多表间查询符合条件的数据
例如,查询Logic Java课程至少一次考试刚好等于60分的学生名单。
分析:
(1)查询subject表,获得课程的课程ID;
(2)根据课程ID,查询result表中成绩是60分的学生的编号;
(3)根据,学号,查询student表得到学生姓名;
select studentName from student where studentNo=
(select studentNo from result
inner join Subject on result.subjectNo=subject.subjectNo
where studentResult=60 and subjectName=‘Logic Java‘);
3、IN和NOT IN子查询:后面可跟随返回多条记录的子查询,用于检测某字段的值是否存在于某个范围中。
现在,有多个学生的Logic Java课程考试成绩为60分,采用简单的子查询就会出现编译错误“Subquery returns more than 1 row”,即子查询返回值不唯一。
现在使用IN子查询:
select studentName from student
where studentNo IN
(select studentNo from result where subjectNo =
(select subjectNo from subject where subjectName =‘Logic Java‘)
AND studentResult = 60);
另一个梨例子,查询参加Logic Java课程最近一次考试的在读学生名单(四层嵌套):
(1)获得课程编号;
(2)根据课程编号得到最近的一次课程考试日期;
(3)根据课程编号和最近一次的考试日期查询学生信息;
SELECT studentNo,studentName FROM student where studentNo
IN(
select studentNo from result where subjectNo=
(select subjectNo from subject where subjectName=‘Logic Java‘)
AND examDate=
(select MAX(examDate) from result where subjectNo=
(select subjectNo from subject where subjectName=‘Logic Java‘)
)
);
4、NOT IN查询
如何查询得到没有参加Logic Java课程最近一次考试的在读学生名单?
SELECT studentNo,studentName FROM student where studentNo
NOT IN(
select studentNo from result where subjectNo=
(select subjectNo from subject where subjectName=‘Logic Java‘)
AND examDate=
(select MAX(examDate) from result where subjectNo=
(select subjectNo from subject where subjectName=‘Logic Java‘)
)
)AND gradeID=(...);
还可以在NOT IN的条件外继续AND() 添加条件~~
MySQL中的DML和DQL
标签:sel col 获得 log 括号 插入数据 返回值 mda 字段
本文系统来源:https://www.cnblogs.com/bigbigbigo/p/8403334.html
内容总结
以上是互联网集市为您收集整理的MySQL中的DML和DQL全部内容,希望文章能够帮你解决MySQL中的DML和DQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。