1.union操作符
MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions] UNION [ALL | DISTINCT] SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions];
2.group by
GROUP BY 语句根据一个或多个列对结果集进行分组。
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
3.连接
- INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
- LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
- RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
4.null值
- IS NULL: 当列的值是 NULL,此运算符返回 true。
- IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
5.索引
索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
创建索引:
CREATE INDEX indexName ON mytable(username(length));
添加索引:
ALTER table tableName ADD INDEX indexName(columnName)
删除索引:
DROP INDEX [indexName] ON mytable;
6.存储过程
关键语法:
1.DELIMITER // 声明语句结束符,用于区分;
因为MySQL默认以”;”为分隔 符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错CEATE
2.PROCEDURE demo_in_parameter(IN p_in int) 声明存储过程
3.BEGIN …. END 存储过程开始和结束符号4.SET @p_in=1 变量赋值
5.DECLARE l_int int unsigned default 4000000; 变量定义
IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
mysql > DELIMITER // mysql > CREATE PROCEDURE demo_in_parameter(IN p_in int) -> BEGIN -> SELECT p_in; -> SET p_in=2; -> SELECT p_in; -> END; -> // mysql > DELIMITER ;
1. mysql > SET @p_in=1; 2. mysql > CALL demo_in_parameter(@p_in); 3. +------+ 4. | p_in | 5. +------+ 6. | 1 | 7. +------+ 8. 9. +------+ 10.| p_in | 11.+------+ 12.| 2 | 13.+------+ 14. 15.mysql> SELECT @p_in; 16.+-------+ 17.| @p_in | 18.+-------+ 19.| 1 | 20.+-------+
OUT 输出参数:该值可在存储过程内部被改变,并可返回
1. mysql > DELIMITER // 2. mysql > CREATE PROCEDURE demo_out_parameter(OUT p_out int) 3. -> BEGIN 4. -> SELECT p_out; 5. -> SET p_out=2; 6. -> SELECT p_out; 7. -> END; 8. -> // 9. mysql > DELIMITER ;
1. mysql > SET @p_out=1; 2. mysql > CALL sp_demo_out_parameter(@p_out); 3. +-------+ 4. | p_out | 5. +-------+ 6. | NULL | 7. +-------+ 8. 9. +-------+ 10.| p_out | 11.+-------+ 12.| 2 | 13.+-------+ 14. 15.mysql> SELECT @p_out; 16.+-------+ 17.| p_out | 18.+-------+ 19.| 2 | 20.+-------+NOUT 输入输出参数:调用时指定,并且可被改变和返回