插入数据
INSERT INTO `table_name`(field1,filed2,field2.....fieldN)
VALUES
(valus1,value2.....valueN),
(valus1,value2.....valueN);
获取当前时间可以用 now()
查询
语法
SELECT field1,field2... FROM table_name;
condition为查询条件
查询所有信息
SELECT * FROM table_name;
WHERE子句
语法
SELECT * FROM table_name WHERE condition;
condition为条件
应用
SELECT
*
FROM
timi_adc
where
win_rate > 0.5;
Limit子句
在世纪查询时需要返回查询结果的前多少个结构,,这时可以使用limit子句来约束。
语法
SELECT * FROM table_name LIMIT parameter;
parameter是LIMIT语句的参数,例以下几种情况:
查询第 x-y 行
SELECT
*
FROM
table_name
LIMIT
5, 6;
这句表示查询表的 6-11 行
第一个参数5表示从第六行开始查询第二个参数6表示一共查询6条记录
数据库计数也是从0开始,所以5代表第六行
LIMIT语句一般配合分页进行使用。
查询 0-x 行
SELECT
*
FROM
timi_adc
LIMIT
5;
意思为查询表的第0-5行,等价于
SELECT * FROM timi_adc LIMIT 0,5;
查询第 x 行
SELECT
*
FROM
timi_adc
LIMIT
4, 1;
LIMIT子句通常与WHERE一同使用
SELECT
*
FROM
timi_adc
WHERE
appearance_rate > 0.1
LIMIT
5;
排序(ORDER BY子句)
语法
SELECT * FROM table_name ORDER BY field_name;
默认排序是按照升序
DESC关键字
ORDER BY默认是正序,关键字为ASC(一般不写),可以加上DESC关键字变成倒序。
SELECT
*
FROM
timi_adc
ORDER BY
win_rate DESC
LIMIT
3;
更新/删除
UPDATE语法
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
必须加入WHERE限定条件,否则会对整列起作用
例
UPDATE
timi_adc
SET
ban_rate = 0.01
WHERE
hero_name = '艾琳';
DELETE语法
DELETE FROM table_name [WHERE Clause]
例一
删除 user 表中 id 为 4 的行
DELETE FROM USER WHERE id=4;
例二
删除 user 表中 id 小于20的数据
DELETE FROM `user` WHERE id<20;
例三
删除表中所有数据
DELETE FROM user;
优化查询
LIKE查询
sql语句中 LIKE 子句可以达到模糊查询
语法
SELECT * FROM table_name WHERE condition LIKE condition;
%
SQL LIKE 子句中用百分号 % 来代替任何任意字符,若没有使用任意%,则LIKE相当于=
例
SELECT
*
FROM
timi_adc
WHERE
hero_name LIKE '%孙%';
%孙%表示字符串中含有孙字
%孙 表示以孙结尾
孙% 表示以孙开头
_
例如查询孙尚香,但我们只记得叫 某尚香 时,可以采用 _尚香 来进行查询。
SELECT
*
FROM
timi_adc
WHERE
hero_name LIKE '_尚香';
但若想要查询的例如是 公孙尚香 则上面语句无法查询到 但 %孙% 可以查询到。
And & Or
日常查询中会涉及到多个条件,此时会使用and&or
语法
SELECT * FROM table_name WHERE conditionA AND/OR condtionB;
例
SELECT
*
FROM
timi_adc
WHERE
win_rate > 0.5
AND win_rate < 0.51
OR win_rate < 0.47;
有时多个条件需要加括号
SELECT
*
FROM
timi_adc
WHERE
(
win_rate > 0.5
OR win_rate < 0.47
)
AND win_rate < 0.51;
IN/NOT IN
语法
SELECT * FROM table_name WHERE column IN (condtionA,condtionB);
查询热度为 T0 和 T3
SELECT
*
FROM
timi_adc
WHERE
fever IN ('T0', 'T3');
等价于
SELECT
*
FROM
timi_adc
WHERE
fever = 'T0'
OR fever = 'T3';
NOT IN/NOT LIKE
例:热度不是 T0 的所有英雄
SELECT
*
FROM
timi_adc
WHERE
fever NOT IN ('T0');
例
SELECT
*
FROM
timi_adc
WHERE
hero_name NOT LIKE '%孙%';
NULL值的处理
运用 WHERE 可以根据提供的字段进行查询,但提供 NULL 时,该指令可能就无法正常工作。
NULL值的概念
NULL值对应的是 NOT NULL,它们是 MySQL 字段的数据类型的属性,本身不属于任何数据类型,NULL值也不等于空值,空值不占用储存空间,NULL会占用。
如何处理NULL
MySQL 提供了三种运算符:
IS NULL :当列的值为NULL时,这个运算符返回 true
IS NOT NULL :不为NULL 时,返回 true
<=> :当两边值都为 NULL 时或者两边相等时返回 true
语法
SELECT field_name1,field_name2
FROM table_name
WHERE field_name2 IS NOT NULL/IS NULL;