美文网首页
数据库-day04

数据库-day04

作者: 流云若雨 | 来源:发表于2019-11-14 20:37 被阅读0次

多表连接查询环境准备

CREATE DATABASE school CHARSET utf8mb4;
USE school

CREATE TABLE student(
sno INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
sname VARCHAR(20) NOT NULL COMMENT '姓名',
sage TINYINT UNSIGNED  NOT NULL COMMENT '年龄',
ssex  ENUM('f','m') NOT NULL DEFAULT 'm' COMMENT '性别'
)ENGINE=INNODB CHARSET=utf8;

CREATE TABLE course(
cno INT NOT NULL PRIMARY KEY COMMENT '课程编号',
cname VARCHAR(20) NOT NULL COMMENT '课程名字',
tno INT NOT NULL  COMMENT '教师编号'
)ENGINE=INNODB CHARSET utf8;

CREATE TABLE sc (
sno INT NOT NULL COMMENT '学号',
cno INT NOT NULL COMMENT '课程编号',
score INT  NOT NULL DEFAULT 0 COMMENT '成绩'
)ENGINE=INNODB CHARSET=utf8;

CREATE TABLE teacher(
tno INT NOT NULL PRIMARY KEY COMMENT '教师编号',
tname VARCHAR(20) NOT NULL COMMENT '教师名字'
)ENGINE=INNODB CHARSET utf8;

INSERT INTO student(sno,sname,sage,ssex)
VALUES 
(1,'zhang3',18,'m'),
(2,'zhang4',18,'m'),
(3,'li4',18,'m'),
(4,'wang5',19,'f'),
(5,'zh4',18,'m'),
(6,'zhao4',18,'m'),
(7,'ma6',19,'f'),
(8,'oldboy',20,'m'),
(9,'oldgirl',20,'f'),
(10,'oldp',25,'m');


INSERT INTO teacher(tno,tname) VALUES
(101,'oldboy'),
(102,'hesw'),
(103,'oldguo');



INSERT INTO course(cno,cname,tno)
VALUES
(1001,'linux',101),
(1002,'python',102),
(1003,'mysql',103);


INSERT INTO sc(sno,cno,score)
VALUES
(1,1001,80),
(1,1002,59),
(2,1002,90),
(2,1003,100),
(3,1001,99),
(3,1003,40),
(4,1001,79),
(4,1002,61),
(4,1003,99),
(5,1003,40),
(6,1001,89),
(6,1003,77),
(7,1001,67),
(7,1003,82),
(8,1001,70),
(9,1003,80),
(10,1003,96);
数据简要分析

多表连接说明:

1.通过查询需求,找到所需表
2.找到所有表之间的关联关系 
  语法:
    两表关联
    from a join b on a.x=b.y
    多表关联:
    from a join c on a.x=c.y
    join b on c.z=b.z
外连接
A  left join  B
A表所有的数据+B表满足关联条件的数据
  结论:left join 应用场景,
A  right join B
B表所有的数据+A 满足关联条件的数据

show语句

show databases; 查看所有库名
show tables;       查看当前库下的所有表明
show tables from world ; 查看world库下的所有表
show create database world;查看建库语句
show create tables city ; 查看建表语句
show variables like '%try%'  查看参数信息
show grants for root@'loocalhost';查看用户权限信息
show [full] processlist; 查看会话连接情况
show engines; 查看当前数据库支持的引擎
show charset; 查看当前数据库支持的字符集
show collation; 查看当前数据库支持的排序规则
show status; 查看当前数据库的状态信息
show status like '%lock%'\G 模糊查询数据库状态
show master status; 查看当前使用的二进制日志信息
show binary logs; 查看所有二进制日志信息
show binlog evnets in 'xxxx' ; 查看二进制日志事件信息
show relaylog events in 'xxxx' 查看中继日志事件信息
show slave status \G ; 查看从库复制状态信息
show engine innodb status \G 查看innodb引擎相关状态信息

元数据获取

什么是元数据?
库,表: 属性(字符集,校对规则,数据类型,存储引擎,约束,其他数据)
 权限:  
状态信息:
等。
元数据 回去方法
show语句:封装好的基础功能,可以实现大部分的元数据查询需求
information_schema<试图> 库:mysql给我们定义好的元数据查询方法。
information_schema<试图> 库
应用场景:做数据库资产统计
tables
    TABLE_SCHEMA:表所在的库
    TABLE_NAME:表名
    TABLE_ROWS:表的行数
    ENGINE:引擎
    AVG_ROW_LENGTH:平均行长度
    INSEX_LENGTH:索引长度
    TABLE_COMMENT:表的注释
例子:1.统计库的所有库下的表的数量
select table_schema,count(table_name) from information_schema.tables group by table_schema;
2.统计不同存储引擎的表名
    select engine,group_concat(table_name) from information_schema.tables group by engine;
3.统计所有非系统表,非innodb的表

columns

相关文章

网友评论

      本文标题:数据库-day04

      本文链接:https://www.haomeiwen.com/subject/ihglictx.html