COUNT
COUNT(*) = COUNT(1) > COUNT(字段)
尽量使用COUNT(*),当然如果你要统计的是就是某个字段的非空数据行数,那另当别论。
尽量在数据表上建立二级索引,系统会自动采用key_len小的二级索引进行扫描。
分类目录归档:技术栈
COUNT(*) = COUNT(1) > COUNT(字段)
尽量使用COUNT(*),当然如果你要统计的是就是某个字段的非空数据行数,那另当别论。
尽量在数据表上建立二级索引,系统会自动采用key_len小的二级索引进行扫描。
含义 | 运算符 |
---|---|
等于 | = |
不等于 | <>或 != |
小于 | < |
小于等于(不大于) | <= 或 !> |
大于 | > |
大于等于(不小于) | >= 或 !< |
不小于 | !< |
在指定的两个数值之间 | BETWEEN |
为空值 | IS NULL |
含义 | 运算符 |
---|---|
并且 | AND |
或者 | OR |
在指定范围内 | IN |
非(否定) | NOT |
含义 | 运算符 |
---|---|
匹配任意字符串出现任意次数 | % |
匹配单个字符 | - |
eg1:
SELECT nam
下面列举了常见的 DDL 建表、修改表结构的语句
CREATE DATABASE IF NOT EXISTS nba;
USE nba;
DROP TABLE IF EXISTS player;
CREATE TABLE player (
`player_id` INT(11) NOT NULL AUTO_INCREMENT,
`team_id` INT(11) NOT NULL,
`player_name` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`height` fl
算术处理、字符串处理、日期处理、数据类型转换
SELECT ABS(-2);
SELECT MOD(101,3);
SELECT ROUND(37.25,1);
SELECT CONCAT('abc', 123);
SELECT LENGTH('你好');
SELECT CHAR_LENGTH('你好');
SELECT LOWER('ABC');
SELECT UPPER('abc');
SELECT REPLACE('fabcd', 'abc'
1、 字段值唯一
2、 Where条件
3、 Group by 和order by
4、 Update、delete的where条件
5、 Distinct字段
6、 多表join操作时,表尽量不超过3个,对where条件创建索引,对连接的字段创建索引且类型一致
7、 多个单列索引在多条件查询时只会生效一个索引(MySQL 会选择其中一个限制最严格的作为索引),所以在多条件联合查询的时候最好创建联合索引。
1、 WHERE 条件(包括 GROUP BY、ORDER BY)里用不到的字段不需要创建索引
2、 如果表记录太少,比如少于 100
-- 创建
CREATE VIEW view_name AS
SELECT column1, column2
FROM table
WHERE condition
-- 修改
ALTER VIEW view_name AS
SELECT column1, column2
FROM table
WHERE condition
-- 删除
DROP VIEW view_name
笛卡尔乘积是一个数学运算。假设我有两个集合X和Y,那么X和Y的笛卡尔积就是X和Y的所有可能组合,也就是第一个对象来自于X,第二个对象来自于Y的所有可能。 笛卡尔积也称为交叉连接,英文是CROSS JOIN,它的作用就是可以把任意表进行连接,即使这两张表不相关。
SELECT * FROM player, team;
SELECT player_id, player.team_id, player_name, height, team_name FROM player, team WHERE player.team_id = team.tea
如果子查询需要执行多次,即采用循环的方式,先从外部查询开始,每次都传入子查询进行查询,然后再将结果反馈给外部,这种嵌套的执行方式就称为关联子查询。
-- 查找最高身高的球员的身高和名字
SELECT player_name, height FROM player WHERE height = (SELECT max(height) FROM player);
子查询从数据表中查询了数据结果,如果这个数据结果只执行一次,然后这个数据结果作为主查询的条件进行执行,那么这样的子查询叫做非关联子查询。
eg1:
-- 查找每个球队中大于平均身高的球员有哪些,并显示他