模糊查询,字符串,聚合函数 使用方法:

模糊查询:

查询某一列中内容为空的记录。


-- 模糊查询 (项目中尽量不要使用)
-- 张x
SELECT * FROM student WHERE student_name LIKE '张_';
-- % 不限长度的字符
-- 手机号中有 23 0或多个
SELECT * FROM student WHERE phone LIKE '%23%'
-- 名字包含'铮'的学生
SELECT * FROM student WHERE student_name LIKE '%铮%';
-- 60到80的成绩
SELECT * FROM result WHERE student_result>=60 &&student_result<=80;
 
SELECT * FROM result WHERE student_result BETWEEN 60 AND 80;
 
-- '阿斯达''张试''张三丰'
SELECT * FROM student WHERE student_name in('阿斯达','张试','张三丰')
 
SELECT * FROM result WHERE subject_id not in (1,2);
 
-- 所有不是张姓的学生信息
SELECT * FROM student WHERE student_name not LIKE '张%'
 
-- 排序 ORDER BY 默认是升序 升序ASC
SELECT *FROM student ORDER BY birthday ASC;
 
-- DESC
SELECT *FROM student ORDER BY birthday DESC;
 
-- 根据多个字段经行排序
SELECT * FROM student ORDER BY birthday DESC ,sex ;
 
-- 获取成绩前2名的信息 分页语句一定放在最后
SELECT *FROM result ORDER BY student_result DESC LIMIT 2;

字符串:

-- 拼接字符串
SELECT CONCAT('糯米','啊啊啊撒','删掉');
-- 字符长度
SELECT LENGTH('asssssssggg');
-- 转大写
SELECT UPPER('asdf');
-- 转小写
SELECT LOWER('ASDFG');
-- 去除左边空格
SELECT LTRIM('  aaaasdrf  ');
-- 去除右边空格
SELECT RTRIM(' aaaasdff  ');
-- 去除两端空格
SELECT TRIM( 'asd sddsds    ');
-- 替换
SELECT REPLACE('hello word','word','世界');
-- 有条件的替换
SELECT INSERT('hello word',6,1,'世界');
-- 系统日期
SELECT CURDATE();
-- 日期的时间
SELECT now();
-- 时间
SELECT CURTIME();
-- 添加日期
SELECT DATE_ADD(NOW(),INTERVAL 5 MONTH )
-- 减少时间
SELECT DATE_SUB(NOW(),INTERVAL 5 day) 
-- 日期的格式化 y完整年 y两位数的年
SELECT DATE_FORMAT(CURDATE(),'%y年%m月%d日');

SELECT DATE_FORMAT(NOW(),'%y年%m月%d日 %H点%i分%s秒')

-- 返回从0到1之间的随机
SELECT RAND();
-- 取数值表达绝对值
SELECT ABS(-45);
-- 取大于或小于指定数值,表达最小整数
SELECT CEILING(43.5);
-- 取小于或者等于指定表达的最大整数、
SELECT FLOOR(43.5);
-- 取数值表达幂值
SELECT POWER(5,2);
-- 数值表达式四舍五入指定精度
SELECT ROUND(43.543,1);
-- 对于正数发回+去,对于负数返回-1
SELECT SIGN(-43);
-- 取浮点表达平方根
SELECT SQRT(9);

update student set login_pwd=REPLACE(login_pwd,'o','0')

-- 查询年龄超过20周岁的Y2的学生信息
SELECT * FROM student WHERE 
birthday<=DATE_ADD(CURDATE(),INTERVAL 20 YEAR);
-- 获取月份
SELECT MONTH(NOW())

-- 查询1月份过生日的学生信息
SELECT * FROM student WHERE MONTH(birthday)='01';

-- 今天生日的学生


-- 翻转
SELECT REVERSE('123@qq.com');
-- 获取字符的位置
SELECT INSTR('moc.qq@321','.');
-- 截取字符串
SELECT RIGHT ('1234@qq.com',3);

SELECT RIGHT (email,INSTR(REVERSE(email),'.')-1) FROM student
10000~99999999
SELECT  RAND()*(99999999-10000)+10000;

-- 取整
SELECT FLOOR(RAND()*(99999999-10000)+10000);
-- 拼接
SELECT CONCAT(FLOOR(RAND()*(99999999-10000)+10000),'@qq.com');

聚合函数使用方法:

聚合函数:

 聚合函数 sum,avg,max,min,count
-- 总分
SELECT Eventssum(student_result) FROM result;
SELECT student_no,SUM(student_result)FROM
result WHERE student_no='bq0010';
 
-- 平均分 avg
SELECT AVG(student_result) FROM result;
 
-- 最大值 max 最小值min
SELECT MAX(student_result),MIN(student_result) 
FROM result;
-- 计算 count
SELECT COUNT(*) FROM student;
SELECT COUNT(*) FROM student WHERE grade_id=1;
SELECT COUNT(*) FROM result WHERE student_result>40;
 
-- 查询学生总人数
SELECT COUNT(*) FROM student;
-- 查询java初级的总学时
SELECT SUM(class_hour)FROM
subjects WHERE subject_name='html';
-- 学号为s1101004的学生第一期考试总成绩
SELECT student_no,SUM(student_result)FROM
result WHERE student_no='1004';
 
SELECT SUM(student_result) FROM result WHERE 
student_no='1004' AND subject_id=1;
-- 学号为s1101004的学生第一期所有考试的平均值
SELECT AVG(student_result) FROM result WHERE student_no='1004';
 
SELECT AVG(student_result) FROM result WHERE 
student_no='1004' AND subject_id=1;
-- 查询2013年3月22日科目“c#"语言和数据
SELECT MAX(student_result),MIN(student_result) ,AVG (student_result)FROM result WHERE examDate='2023-05-06';
 
SELECT MAX(student_result),MIN(student_result) ,AVG (student_result)FROM result WHERE YEAR(exmdate)=2013 AND MONTH(examdate)=3 AND
DAY(examdate)=22 AND subject_id=1
 
-- 查询2013
SELECT AVG(student_result) FROM result WHERE YEAR(exmdate)=2013 AND MONTH(examdate)=3 AND
DAY(examdate)=22 AND subject_id=1;
 
SELECT AVG(student_result)FROM result WHERE subject_id=1;
 
SELECT result_id,student_result
CASE
WHEN student_result<60 AND student_result>=0 THEN '不及格'
WHEN student_result>=60 AND student_result<=80 THEN ' 及格'
WHEN student_result>80 AND student_result<=100 THEN ' 优秀'
ELSE '作弊'
END AS '成绩等级'
FROM result
 
# 分组查询
# 每个班级的学生的总人数
SELECT grade_id, COUNT(*) FROM student GROUP BY grade_id;
 
SELECT grade_id,sex, COUNT(*)FROM student GROUP BY grade_id,sex
ORDER BY grade_id;
 
-- 每个科目的平均分
SELECT AVG (student_result) FROM result
SELECT subject_id, AVG (student_result) FROM result GROUP BY subject_id;
 
# 班级的学生的总人数>15的班级
SELECT grade_id,COUNT(*),sex FROM student GROUP BY grade_id,sex;
 
 
SELECT grade_id,COUNT(*) FROM student GROUP BY grade_id
HAVING COUNT(*)>3;
 
SELECT grade_id,COUNT(*) FROM student GROUP BY grade_id,sex
HAVING COUNT(*)>3 AND sex='男';
 
SELECT grade_id,COUNT(*) FROM student WHERE sex='男'
GROUP BY grade_id HAVING COUNT(*)>3;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值