1. Distinct(筛选不同)
2. Group by(注意select中的要全部group by)
3. Having(group by后的选择)
4. And & Or
5. Order by(降序desc,升序asc)
6. Select top问题(使用limit)
7. Like(通配符,%全部,_单个,[charList]字符列中任意一个,[^charList]不再字符列的,REGEXP和NOT REGEXP匹配正则 表达式)
8. IN(规定值)
9. Between(数据范围,可用为数值,文本或日期)
10. A join B on condition where condition
inner join(内连接,左右都匹配到,交集)
left join(左连接,左表所有,右表无匹配则空)
right join(右连接,右表所有,左表无匹配则空)
11. Union(合并多个select)
12. 约束:
NOT NULL:非空
UNIQUE:唯一
PRIMARY KEY:主键
FOREIGN KEY:外键(搭配references)
CHECK:限制列中的值的范围
DEFAULT:默认值
13. INDEX:索引(create (unique)indexon table(column))
14. Alter table:
添加:ALTER TABLE table_name ADD col_name type
删除:ALTER TABLE table_name DROP col_name
修改:ALTER TABLE table_name MODIFY col_name type
15. ATUO INCREMENT:自动递增
16. VIEW:视图(CREATE VIEW view_name(columnList)AS select… )
17. DATE函数(NOW(),CURDATE(),CURTIME())
18. NULL:需要用is或者is not来比较
19. IFNULL():函数,IFNULL(arg,value),arg是null时,值为value
20. AVG():平均值函数
21. COUNT():取行数的函数
22. MAX();最大值函数
23. MIN():最小值函数
24. SUM():取总和的函数
25. UCASE();把字段值转换称大写的函数
26. LCASE();把字段值转换称小写的函数
27. MID(column_name,start,length ):从文本字段中提取中间字符的函数
28. LEN();文本字段的长度函数
29. ROUND():四舍五入函数,ROUND(X,D)D位小数
30. FORMAT():格式化
31. Truncate table:没有日记,删除所有行,不触发触发器
32. Mysql索引
MyISAM引擎:索引与数据分离,索引的是数据地址
InnoDB引擎:索引的是数据,聚集索引,必须有主键,主键索引的结点是整行数据,辅助索引的结点是主键数据
查询优化:最左前缀原理,范围查询无优化,between和IN有优化
33. 存储过程
drop procedure if exists proadd;
delimiter ;;
create procedure proadd(IN a int,OUT b int)
begin
set b = a + a;
end
;;
delimiter ;
call proadd(2,@b);
select @b as b;
delimiter ;; 把结束符号改成;; 防止和sql的结束符;冲突
输出参数要以@开头
34.函数
drop function if exists funadd;
delimiter ;;
create function funadd(a int)
begin
return(a+a);
end
;;
delimiter ;
select funadd(5);
35.
触发器
CREATE TRIGGER <触发器名称>
--触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.
{ BEFORE | AFTER }
--触发器有执行的时间设置:可以设置为事件发生前或后。
{ INSERT | UPDATE | DELETE }
--同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。
ON <表名称>
--触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器。
FOR EACH
ROW
--触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句>
--触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。
drop trigger if exists trgadd;
delimiter ;;
create trigger trgadd before insert on student
for each row
begin
set new.sage = new.sage + 10;
end
;;
delimiter ;
36.
数据库备份与恢复
备份:
mysqldump基本语法:
mysqldump -u username -h 127.0.0.1 -p dbname table1 table2 ... > BackupName.sql
- dbname参数表示数据库的名称;
- table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
- BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;
恢复:
mysqldump基本语法:
mysqldump -u username -h 127.0.0.1 -p dbname table1 table2 ... < BackupName.sql
只要把>改成<即可