mysql4 表连接

/

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)


 

///表连接 两个表的交叉关系

内连

左连

右连

全连

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值