查询实例:

1.创建数据库并使用:

create database school;

use school;

2.创建表并插入内容:

create table student(

Sno char(9) primary key,

Sname char(20) unique,

Ssex char(2),

Sage int,

Sdept char(20));

create table Course(

Cno char(4) primary key,

Cname char(40),

Cpno char(4),

Ccredit int

);

create table SC(

Sno char(9),

Cno char(4),

Grade int,

primary key(Sno,Cno),

foreign key (sno) references Student(sno),

foreign key (Cno) references Course(Cno));

insert into student values ('95001','李勇','男',20,'CS');

insert into student values ('95002', '刘晨','女',19,'IS');

insert into student values('95003', '王敏', '女',18, 'MA');

insert into student values('95004', '张立', '男',19, 'IS');

insert into Course values(1,'数据库', 5,4);

insert into Course values(2, '数学', 3 ,2);

insert into Course values(3, '信息系统', 1, 4);

insert into Course values('4', '操作系统', '6', 3);

insert into Course values('5', ' 数据结构', '7', 4);

insert into Course values('6', '数据处理', '', 2);

insert into Course values('7', 'PASCAL语言', '6', 4);

insert into SC values('95001', '1', 92);

insert into SC values('95001', '2', 85);

insert into SC values('95001', '3', 88);

insert into SC values('95002', '2', 90);

insert into SC values('95002', '3', 80);

3.查询实例:

1. 投影查询

(1) 查询SC表的sno的不重复记录。

select distinct * from SC;

(2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。

select sno as "学号", sname as "姓名", ssex as "性别", sdept as "系名" from student;

(3) 查询STUDENT表的前3条记录。

select * from student limit 3;

2. 选择查询

(1) 查询成绩在60-80之间的姓名、系名和成绩。

select sname,sdept,grade from student, SC where grade > 60 and grade < 90;

(2) 查询信息系和计算机系的姓名和成绩。

select grade, sname from student join sc on student.sno = sc.sno join course on course.cno = sc.cno

where sdept = 'cs' or sdept = 'is';

(3) 查询计算机系或女同学的记录。

select * from student join sc on student.sno = sc.sno join course on course.cno = sc.cno where sdept = 'cs' or ssex = '女';

(4) 查询李姓同学的记录。

select * from student join sc on student.sno = sc.sno join course on course.cno = sc.cno where sname like '%李%';

(5) 查询计算机系女同学的记录。

select * from student join sc on student.sno = sc.sno join course on course.cno = sc.cno where sdept = 'cs' and ssex = '女';

3. 排序查询

(1)查询STUDENT表的所有字段和记录按年龄由大到小排序。

select * from student order by sage;

(2)查询STUDENT表的所有字段和记录按年龄由小到大排序。

select * from student order by sage desc;

4. 结合统计函数

(1) 查询SC表的最高分。

select max(grade) from sc;

(2) 统计SC表95001学生的平均分。

select avg(sc.grade) from student join sc on student.sno = sc.sno where student.sno='95001';

(3)统计SC表各课程的最低分。

select min(grade) from sc join course on sc.cno=course.cno where course.cname='数据库';

select min(grade) from sc join course on sc.cno=course.cno where course.cname='数学';

select min(grade) from sc join course on sc.cno=course.cno where course.cname='信息系统';

(4)查询超过平均分的学生姓名和系名。

select sname, sdept from student join sc on student.sno=sc.sno where sc.grade>87;

(5)查询低于平均分的学生姓名、系名和课程名。

select sname, sdept, cname from student join sc on student.sno=sc.sno join course on sc.cno=course.cno where sc.grade<87;

5.其他

(1)查询其他系中比信息技术系某一学生小的学生姓名和年龄。

select sname,sage from student where sno not in (select sno from student where sdept='is' or sage >=19);

**由于使用mysql,无except语句,于是用not in代替。

(2) 查询其他系中比计算机系所有学生年龄都小的学生姓名和年龄。

select sname,sage from student where sno not in (select sno from student where sdept='cs' or sage>=20);

(3) 查询每一门课的间接先修课(先修课的先修课)。

select cname from course,sc where course.cpno=sc.cno;

***SQL和mysql语法有些是不一样的,如查询前几条数据的 top 和 limit,mysql中也没有except的用法,用 not in 替代。

mysql查询笔记_MySQL学习笔记(一):查询相关推荐

  1. mysql 分组链接_MySQL学习笔记(四)——分组函数,分组查询,链接查询

    MySQL学习笔记(四)--分组函数,分组查询,链接查询 做者:就叫易易好了 日期:2020/11/18 1.分组函数 功能:用做统计使用,又称为聚合函数或统计函数mysql 分类:web sum函数 ...

  2. mysql 快速查询变更记录_MySQL学习笔记(7)—— MySQL 查询/更新数据记录

    除非最终检索它们并利用它们来做点事情,否则将记录放入数据库没什么好处.这就是数据记录查询的用途,即帮助取出数据,也是 Python API 与 MySQL 交互的重要部分.SELECT 大概是 SQL ...

  3. mysql 临时表 事务_MySQL学习笔记十:游标/动态SQL/临时表/事务

    逆天十三少 发表于:2020-11-12 08:12 阅读: 90次 这篇教程主要讲解了MySQL学习笔记十:游标/动态SQL/临时表/事务,并附有相关的代码样列,我觉得非常有帮助,现在分享出来大家一 ...

  4. mysql三大范式_MySQL学习笔记

    1.数据库结构设计 1.总-总体流程图 2.分-[提取属性]业务分析 评价的属性:{用户,课程主标题,内容,综合评分,内容实用,简洁易懂,逻辑分析,发布时间} 问答评论属性:{类型,标题,内容,关联章 ...

  5. mysql分页概念_MySQL学习笔记之数据定义表约束,分页方法总结

    本文实例讲述了MySQL学习笔记之数据定义表约束,分页方法.分享给大家供大家参考,具体如下: 1. primary key 主键 特点:主键是用于唯一标识一条记录的约束,一张表最多只能有一个主键,不能 ...

  6. Mysql成语数据库_mysql学习笔记

    今天开始学习mysql数据库了,也是第一次在这里写技术笔记,相信好记忆不如烂笔头,就以此来见证自己的成长吧! 首先安装mysql服务器的过程这里就不啰嗦啦,相信大家都懂的,直接进入主题吧,欢迎那些也是 ...

  7. MySQL编程技巧_MySQL学习笔记---MySQL开发技巧

    SQL语句分类 DDL:数据定义语言 --- CREATE.ALTER.DROP.TRUNCATE TPL:事务处理语言 --- COMMIT.ROLLBACK.SAVEPOINT.SET TRANS ...

  8. mysql数据类型选择_MySQL学习笔记(二):MySQL数据类型汇总及选择参考

    本文主要介绍了MySQL 的常用数据类型,以及实际应用时如何选择合适的类型. ******几个通用的简单原则:******* 1. 更小的通常更好.但是要确保没有低估需要存储的值的范围,如果无法确定哪 ...

  9. mysql iif函数_MySQL学习笔记七:常用函数

    一.字符串函数 1.1.CONCAT(str1,str2,...) 作用:将传入的字符连接成一个字符串,任何字符与null进行连接结果都是null. SELECT CONCAT(`name`,'-', ...

最新文章

  1. 三层交换机原理:02怎么用三层交换机?
  2. Windows启动过程
  3. Vue第三部分(2):Vue-CLI构建前后端分离项目以及打包部署
  4. Oracle 使用DBMS_SCHEDULER创建定时任务
  5. 寒假培训1.20 位运算
  6. 案例:实现第一个Filter程序
  7. 解决Vscode提示bodyparser已被弃用的问题
  8. 翻译 | 上手 Webpack ? 这篇就够了!
  9. -ia utopia 里的乌托邦
  10. 机器学习笔记(二十):逻辑回归(2)
  11. Visual Studio 2008 安装失败(“Web 创作组件”)安装失败
  12. 在struts中实现验证码
  13. oracle查询一年的第几周,Oracle--计算某一日期为一年中的第几周
  14. 写给理工科人看的乐理(二)十二平均律与五线谱
  15. 谷歌翻译api_解救科研民工!史上最强大的翻译神器,助你日读10篇不是梦~~
  16. 代码审计-凡诺CMS 2.1文件包含漏洞
  17. octobercms mysql_OctoberCMS插件形成数据库关系(OctoberCMS plugin form database relationships)...
  18. C/C++程序员简历
  19. 【webGoat】Path traversal
  20. BAT公司 or 创业公司,选择哪个更好?

热门文章

  1. Android高德地图poi检索仿微信发送位置
  2. 互动媒体技术A1作业报告
  3. 简单xss接收cookie平台的搭建以及xss拿cookie的一些总结
  4. 两个cgi的莫名其妙的core dump问题的解决
  5. 微软推出游戏服务器,成为云玩家 微软将推出“Project xCloud”云游戏服务
  6. 键盘各个键所对应的键值
  7. 强化学习实践四:编写通用的格子世界环境类
  8. python实战笔记之(8):下载知乎视频
  9. 疫情下的职场生存记:从写简历到面试谈薪的那些技巧和防坑指南
  10. 创业者不能盲目的跟风,不然结局很凄凉