2.mysql基本知识(聚合函数,约束等等)

/*
2:小数位数
4:精度:小数位+整数位
decimal(4,2):100?//numeric 
char(6) 'hello '
varchar(6) 'hello'
*/
/*
主键(primary key):
1.不能为空(null)
2.必须唯一


创建外键,外键一定是创建在外键表上
*//*区分连接查询时两个表有同名的字段,指定表的限定名,
连接本质上是个笛卡尔乘积(查询学生号,学生名,考试成绩)*/


/*
    插入数据的顺序:先插入主键表记录,再插入外键表记录.
    删除数据的顺序:先删除外键表记录,再删除主键表记录.
*/
#字符串函数
SELECT concat('My','S','QL') as concat;#MySQL
SELECT insert('这是SQL Server数据库',3,10,'MySQL');#这是MySQL数据库
SELECT lower('MySQL');
SELECT upper('MySQL');
SELECT substring('JavaMySQLOracle',5,5);
SELECT replace('www.mysql.com', 'w', 'Ww');
#时间日期函数
SELECT CURDATE();
SELECT CURTIME();
select now(),current_timestamp;
SELECT WEEK(NOW());
SELECT YEAR('2008-08-08');
SELECT HOUR(NOW());
SELECT MINUTE(NOW());
SELECT DATEDIFF(NOW(),'2008-8-8');
SELECT ADDDATE(NOW(),-5);
select month(now());
select day(now());
select quarter(now()),quarter('2019-04-04');
#数学函数
SELECT ceil(3.14);
SELECT floor(3.14);
select rand();#[0,1)伪随机数

#聚合函数会忽略null值
avg(),max(),min(),sum()
/*
    select语句执行的逻辑顺序:
    1.from:查询表中的所有记录,生成结果集
    2.join:根据连接条件,生成结果集
    3.where:对第2步生成结果集用where后面的
      条件表达式对每一条记录进行筛选
    4.group by:分组后只能对组进行操作,select子句中只能出现分组的列
        或聚合函数
    5.having:对组进行筛选
    6.select:输出查询结果
    7.order by:对输出的查询结果进行排序
    
    引用自定义名要注意,在查询中不能引用,查询结果后可引用
    
    先看from,再select,
*/
/*查询年级总人数小于3的年级名称(having)----对组进行筛选,作用同where
输出(年级名称,人数)---where不能对组筛选,count里面不为空即可
*/

#可省略
as,inner,outer,asc
#不可省略
desc#降序

#2.子查询,先内后外,多条记录用in

#case语法
select studentname,#需要,

case
    when studentresult >=90 then 'A'#没有,
    when studentresult between 80 and 89 then 'B'
    when studentresult between 70 and 79 then 'C'
    when studentresult between 60 and 69 then 'D'
    else 'E'
end '等级'#相当于查询的字段

from student join result
on student.studentno=result.studentno
join course
on result.subjectno=course.subjectno
where  #result
result.subjectno=
(select subjectno from course where subjectname='java')

and 
examdate=
(select max(examdate) from result join course
on result.subjectno=course.subjectno
where subjectname='java'#Java课程最近一次考试时间
);


#limit的mysql特有
limit m#前m条记录
limit m,n#m代表开始的索引(从0开始),n-查询的记录数
#m=9,即从第10条开始


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值