sql语法sql语法

首先复杂的sql都是一个一个简单的sql拼的, 一个大的业务需要先拆分成小的业务来实现.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
SELECT emp_no FROM employees.salaries union select emp_no from employees.salaries;

EXPLAIN SELECT emp_no FROM employees.salaries union select emp_no from employees.salaries;

EXPLAIN SELECT emp_no FROM employees.salaries union all select emp_no from employees.salaries;

select count(*) from employees.salaries;

explain select * from (select * from employees.salaries) as Pp;

select cc.first_name, cc.salary from (select salaries.emp_no, salaries.salary, employees.first_name from employees.salaries join employees.employees on salaries.emp_no=employees.emp_no where salary > (select avg(salaries.salary) from employees.salaries)) as cc;

select avg(salaries.salary) from employees.salaries;

desc select salaries.emp_no, salaries.salary, employees.first_name from employees.salaries join employees.employees on salaries.emp_no=employees.emp_no;

explain select count(distinct salary) from employees.salaries;

show indexes from employees.salaries;
alter table employees.salaries add index keke(salary);
explain select distinct salary from employees.salaries order by salary ;

show variables like 'slow%';

set global slow_query_log='ON';
set global slow_launch_time=1;
use employees;
CREATE TABLE employees.t1 (s1 INT, s2 CHAR(5), s3 FLOAT);

INSERT INTO employees.t1 VALUES (1,'1',1.0);
INSERT INTO employees.t1 VALUES (2,'2',2.0);
explain SELECT sb1,sb2,sb3
FROM (SELECT s1 AS sb1, s2 AS sb2, s3*2 AS sb3 FROM employees.t1) AS sb
WHERE sb1 > 1;

SELECT AVG(SUM(column1)) FROM t1 GROUP BY column1;

explain SELECT AVG(sum_column1)
FROM (SELECT SUM(s1) AS sum_column1
FROM t1 GROUP BY s1) AS t1;
-- 没有用临时表
explain SELECT AVG(sum_column1)
FROM (SELECT SUM(s1) AS sum_column1
FROM t1) AS t1;