SELECT teacher.tname,student.sname,sc.score FROM teacher JOIN course ON teacher.tno = course.tno JOIN sc ON course.cno = sc.cno JOIN student ON sc.sno = student.sno WHERE sc.score<60; ↓ createview aa as SELECT teacher.tname,student.sname,sc.score FROM teacher JOIN course ON teacher.tno = course.tno JOIN sc ON course.cno = sc.cno JOIN student ON sc.sno = student.sno WHERE sc.score<60;
-- 显示所有库和表信息: USE information_schema; SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.`TABLES`; -- 合并一下结果 SELECT TABLE_SCHEMA,GROUP_CONCAT(TABLE_NAME) FROM information_schema.tables GROUPBY TABLE_SCHEMA;
-- 查询所有innodb引擎的表 SELECT TABLE_NAME FROM information_schema.tables WHERE ENGINE='innodb';
-- 统计每个库的总占用大小 SELECT table_schema,SUM(TABLE_ROWS*AVG_ROW_LENGTH+INDEX_LENGTH)/1024AS used FROM information_schema.tables GROUPBY table_schema ORDERBY used DESC; -- 排序并从大到小查看
concat函数的拼接操作
concat的作用是,可以使用concat在数据库中,生成所需要的一些命令,来完成一些需求
在concat执行完成后,只需要将生成的结果复制出来,就可以拿来做脚本,非常方便
1 2 3 4 5 6 7 8 9 10 11 12 13 14
-- 对数据库进行分库分表备份 原:mysqldump -uroot -proot school student >/BACKUP/school_student.sql ↓ SELECT CONCAT("mysqldump -uroot -proot",table_schema," ",table_name,">/backup/",table_schema,"_",table_name,".sql") FROM information_schema.tables;
-- 批量对school库下所有表进行操作 例:ALTERTABLE school.student DISCARD TABLESPACE; ↓ select concat("alter table ",table_schema,".",table_name," discard tablespace;") from information_schema.tables where table_schema='school';