一、格式及作用
1.查询的SQL结构
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ... LIMIT ...;
2.写SQL时需按如下顺序写
FROM,WHERE,GROUP BY,SELECT HAVING,ORDER BY,LIMIT
3.FROM的作用
FROM Stu : 将Stu表中的数据都获取过来
JOIN ... 后续补充
4.WHERE的作用
对在FROM中获取的数据进行过滤: 可以用下面的做连接: AND, OR , = ,!=
符合条件的数据留下,不符合提交件的数据丢弃
5.GROUP BY作用
GROUP BY classid : 安装classid进行分组
分组后,如果遇到SELECT,那么输出的代表是每一组的第一行数据
GROUP BY还可以和聚集函数放在一起,主要的聚集函数为:
COUNT():计数
SUM():和
MAX():最大值
MIN():最小值
AVG():平均值
GROUP_CONCAT():
二、练习示例
2.1 创建数据库(schema)
2.1.1 格式
CREATE DATABASE 库名;
2.1.2 示例
CREATE TABLE `l_live_broadcast_indicators` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Date` date DEFAULT NULL,
`Provider` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`FirstFrameTimesValue` float(10,4) DEFAULT NULL,
`FirstFrameTimesRanking` int(11) DEFAULT NULL,
`FirstFrameTimesDiff` float(10,4) DEFAULT NULL,
`FirstFrameTimesScore` float(10,4) DEFAULT NULL,
`PullSeiDelaysValue` float(10,4) DEFAULT NULL,
`PullSeiDelaysRanking` int(11) DEFAULT NULL,
`PullSeiDelaysDiff` float(10,4) DEFAULT NULL,
`PullSeiDelaysScore` float(10,4) DEFAULT NULL,
`PullSuccessRatesValue` float(10,4) DEFAULT NULL,
`PullSuccessRatesRanking` int(11) DEFAULT NULL,
`PullSuccessRatesDiff` float(10,4) DEFAULT NULL,
`PullSuccessRatesScore` float(10,4) DEFAULT NULL,
`StallCountHundredSecsValue` float(10,4) DEFAULT NULL,
`StallCountHundredSecsRanking` int(11) DEFAULT NULL,
`StallCountHundredSecsDiff` float(10,4) DEFAULT NULL,
`StallCountHundredSecsScore` float(10,4) DEFAULT NULL,
`StallTimeHundredSecsValue` float(10,4) DEFAULT NULL,
`StallTimeHundredSecsRanking` int(11) DEFAULT NULL,
`StallTimeHundredSecsDiff` float(10,4) DEFAULT NULL,
`StallTimeHundredSecsScore` float(10,4) DEFAULT NULL,
`VideoRenderStallCountHundredSecsValue` float(10,4) DEFAULT NULL,
`VideoRenderStallCountHundredSecsRanking` int(11) DEFAULT NULL,
`VideoRenderStallCountHundredSecsDiff` float(10,4) DEFAULT NULL,
`VideoRenderStallCountHundredSecsScore` float(10,4) DEFAULT NULL,
`VideoRenderStallTimeHundredSecsValue` float(10,4) DEFAULT NULL,
`VideoRenderStallTimeHundredSecsRanking` int(11) DEFAULT NULL,
`VideoRenderStallTimeHundredSecsDiff` float(10,4) DEFAULT NULL,
`VideoRenderStallTimeHundredSecsScore` float(10,4) DEFAULT NULL,
`ClaritysValue` float(10,4) DEFAULT NULL,
`ClaritysRanking` int(11) DEFAULT NULL,
`ClaritysDiff` float(10,4) DEFAULT NULL,
`ClaritysScore` float(10,4) DEFAULT NULL,
`EveryScore` float(10,4) DEFAULT NULL,
`ProviderScore` float(10,4) DEFAULT NULL,
`Uepdate_time` datetime DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
2.2 创建表
2.2.1 格式
CREATE TABLE 表名 (设置主键及其他字段格式);
2.2.2 示例
use py2;
CREATE TABLE stu (id int primary key,name char(10),classid int) default charset=utf8mb4;
2.3 插入数据
2.3.1 格式
INSERT INTO 表名 (表内各字段) VALUES (对应表内各字段的值)
2.3.2 示例
INSERT INTO stu (id,name,classid) VALUES (1,'甲1',20);
INSERT INTO stu (id,name,classid) VALUES (2,'甲2',20);
INSERT INTO stu (id,name,classid) VALUES (3,'甲3',20);
INSERT INTO stu (id,name,classid) VALUES (4,'乙1',21);
INSERT INTO stu (id,name,classid) VALUES (5,'乙2',21);
INSERT INTO stu (id,name,classid) VALUES (6,'乙3',21);
INSERT INTO stu (id,name,classid) VALUES (7,'丙1',22);
INSERT INTO stu (id,name,classid) VALUES (8,'丙2',22);
INSERT INTO stu (id,name,classid) VALUES (9,'丙3',22);
INSERT INTO stu (id,name,classid) VALUES (1,'甲1',20),(2,'甲2',20),(3,'甲3',20),(4,'乙1',21),(5,'乙2',21),(6,'乙3',21),(7,'丙1',22),(8,'丙2',22),(9,'丙3',22);