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


只要把>改成<即可