MYSQL查询基础(一)

Mysql高级查询语句

Exists子查询

Exists的特点

1.在执行create或drop语句前,可以使用exists语句来判断数据库对象是否存在,返回值是true或false
drop table if exists student; 意思是如果存在表student则删除!否则不删除!
Create table if not exists student; 意思是如果不存在表student则创建,否则不创建!
2.exists还可以作为where条件的子查询

 Select  ..... from  表名  where  exists (子查询);

意思是:
如果子查询有结果,则返回值为true,继续执行外层的查询语句;

如果子查询没有结果,则返回值是false,外层的查询语句不会执行。

查询语句

1.查询“数学” 课程 对应的编号

SELECT subjectNo FROM subject WHERE SubjectName=‘数学’;

2.查询最近的考试成绩

SELECT MAX(ExamDate)
FROM result
WHERE SubjectNo=(SELECT subjectNo
FROM subject
WHERE SubjectName=‘数学’)

3. 在02的基础上 加条件 成绩大于80

SELECT * FROM result
WHERE ExamDate=(SELECT MAX(ExamDate)
FROM result
WHERE SubjectNo=(SELECT subjectNo FROM subject
WHERE SubjectName=‘数学’))
AND StudentResult>80)

查询语句中的聚合函数

#聚合函数:
/*
sum:求和
count:求总数
avg:平均值
max:最大值
min:最小值
*/

分组

#分组:group by having
#where:对于分组前的数据进行筛选 、
#having:对于分组以后的结果进行筛选
#查询各个年纪的男女生的人数
#分组语句的注意事项:查询内容仅限于分组的列和聚合函数

查询女生人数超过2的年纪编号

SELECT gradeid,COUNT(1) FROM student WHERE sex='女' GROUP BY gradeid HAVING COUNT(1)>2;

SQL语句中的日期函数

#日期函数
#获取年月日信息
SELECT CURDATE();
#获取时分秒信息
SELECT CURTIME();
#获取详细的时间和日期信息
SELECT NOW();
#获取某个时间是一年中的第几周
SELECT WEEK(NOW());
#计算两个时间之间间隔的天数
SELECT DATEDIFF(NOW(),‘1949-10-1’);
#推算日期
SELECT ADDDATE(NOW(),‘2019-6-17’);
#数学函数
#向上取整
SELECT CEIL(24.1);
#向下取整
SELECT FLOOR(24.1);
#随机小数:0-1
SELECT RAND();

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值