/
mysql4 表连接
SELECT DATE_FORMAT(NOW(),'%m-%d-%Y')
SELECT DATE_ADD(NOW(),INTERVAL 1 DAY)// 累加时间
SELECT DATEDIFF('2019-5-1',NOW());//前一个时间距离当前时间相差的时间
SELECT DATABASE()// 查询当前数据库的名字
SELECT USER()
// 数据库修改密码
SELECT * FROM mysql.user
SELECT PASSWORD('root')
// 生成密码
UPDATE mysql.user SET PASSWORD=PASSWORD('root') WHERE user='guozimo'
// if条件
SELECT IF(1>0,1,0)
//1>0?1:0
// case函数
CASE 要判断的字段或者表达式
WHEN 常量1 then 要显示的值
WHEN 常量2 then 要显示的值
ELSE 要显示的值
end
// 大于60分及格,小于60分不及格
SELECT * FROM score;
SELECT
CASE grade
WHEN 100 then `满分`
WHEN 90 then `优秀`
ELSE `其他`
END
FROM score;
// 下面是另一种写法
SELECT * FROM score;
SELECT
CASE
WHEN grade>90 then `优`
WHEN grade>80 then `良`
WHEN grade>70 then `中`
WHEN grade>60 then `及格`
ELSE `不及格`
END
FROM score;
// 把学生表中的邮箱由小写改成大写
UPDATE student SET email = UPPER(email);
// 自定义函数
// 创建格式化时间的自定义函数
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日 %H点%i分%s秒')
CREATE FUNCTION ZNOW(format VARCHAR(64)) RETURNS VARCHAR(64)
RETURN DATE_FORMAT(NOW(),format)
SELECT ZNOW('%Y年%m月%d日');
// 传入时间格式
// 函数体可能不止一行
CREATE FUNCTION ADD_USER(name VARCHAR(64)) RETURNS INT
BEGIN
INSERT INTO t2(name) VALUES(name)
return LAST_INSERT_ID()
END
SELECT ADD_USER('chenqi');
// 增加一个名字
SELECT * FROM score WHERE grade >70 AND grade<100;
SELECT * FROM score WHERE grade BETWEEN 70 AND 100;
// 聚合函数
// 加合
SELECT SUM(grade) FROM score;
SELECT SUM(grade) FROM score WHERE student_id = 1;
SELECT AVG(grade) FROM score WHERE student_id = 1;
SELECT COUNT(*) FROM score WHERE student_id = 1;
// 记录数
SELECT MAX(grade) FROM score WHERE student_id = 1;
SELECT MIN(grade) FROM score WHERE student_id = 1;
// GROUP BY 分组字段
// 统计每次学生的平均分 student_id 是一个学生
SELECT student_id,AVG(grade)
FROM score
GROUP BY student_id
// 统计每门课程的最高分,并按分数从高到低排序
SELECT coures_id,MAX(grade)
FROM score
GROUP BY course_id
ORDER BY MAX(grade) ASC
//多列分组
// 统计各省男女的总人数
SELECT province,gender,COUNT(*)
FROM student
GROUP BY province,gender
// 分组的筛选
HAVING COUNT(*)>1
// 统计不即可次数大于1的同学
SELECT student_id
FROM score
WHERE grade<60
GROUP BY student_id
HAVING COUNT(*)>1
// 返回此列不为null的记录数
// * 记录数的意思 有一列不为null即可
select COUNT(*)from t2
// 查询年龄大于平均年龄的学生
SELECT *
FROM student
WHERE age > (SELECT AVG(age) FROM student)
// any some all
// 年龄大于陕西省 任何一位同学
SELECT *
FROM student
WHERE age > ANY(SELECT age FROM student WHERE province='陕西')
// 加上any 意思是3 也可以 4也可以
FROM student
WHERE age > ALL(SELECT age FROM student WHERE province='陕西')
// 大于所有的
// 查询有考试成绩的同学 id是否在返回值中 在的话 有成绩 不在的话 没有成绩
SELECT *
FROM student
WHERE id in (SELECT student_id from score)
WHERE id not in (SELECT student_id from score) // 不在
// exist not exist
SELECT * FROM student
WHERE EXISTS(SELECT * FROM score where score.student_id=student.id)
SELECT * FROM student
WHERE NOT EXISTS(SELECT * FROM score where score.student_id=student.id)
///表连接 两个表的交叉关系
内连
左连
右连
全连