-
定义别名方法
1):表达式 as 别名;
2):表达式 空格 别名
3):别名=表达式
- 字符串拼接函数 :concat(str1,str2...)
- 升序倒序:order by 字段 默认asc 升序; desc 降序
- like
- 查询指定数据库中含有指定字段的所有表
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA. COLUMNS WHERE COLUMN_NAME IN ('site_id') AND TABLE_SCHEMA = 'lxserver';
- 分支结构:
case when 条件 then 值 when 条件 then 值 else 值 end 例:select (case t.sex when 1 then 男 end ) as '性别';select if(filed >10,0,1) newFiled from test 当字段filed值大于10的时候是0,否则是1;
- left join table on 后面 多个条件的时候,不管条件结果错与对,left表都出现在结果集中,join表中匹配到的数据才会出现在结果集中。即最少的结果集的个数是left表的数目。
- exists ,not exists,in,not in
where exists (select 1 form t where t.id = 1), 查出结果则为true,not exists相反。
以下没有特殊说明,均是Mysql下的合法操作,其他数据库并未测试
- mysql模糊查询
like %:替代一个或多个字符;_:仅替代一个字符
regexp: .:匹配一个多个字符 ?:匹配前面子表达式0|1次; +:匹配前面子表达式>0次; *:匹配前面子表达式>-1次; {}:表示重复的次数例 6{6},匹配666666; []:匹配括号里面的字符例:^[张]. 匹配张姓的人; ^ $:开始结束。
注:匹配默认是不区分大小写的,如果想区分大小写使用 BINARY 例where name like BINARY "%l";要匹配特殊符号,使用转意符 \
- DISTINCT 去重
- limit n,m 效果是从第n行取m条数据,计数始:0,MySQL5后也可以这样写limit m offset n,效果和limt n,m一样
- order by 后面跟多个字段并且这些字段都需DESC的时候需要给每个字段指定DESC关键字。
- BETWEEN n AND m 所包含区间[n,m]
- null值 用is null和is not null
- AND OR 组合使用这两个操作符的时候,要使用小括号明确的分组操作符,否则其默认的计算次序会查出意想不到的结果。
- not 支持对 in between exists条件取反。
- union 组合查询 效果是和多个where子句相同,如果需要返回符合条件的每一条数据(包括重复的)则需要使用union all。使用条件union连接的多个select 字段必须一致,列数据类型方面必须兼容。
- foreign key 外键约束(主表,从表)从表约束主表 语法 例:ALTER TABLE student add CONSTRAINT fk_teacher_student FOREIGN KEY (t_id) REFERENCES teacher(id),删除ALTER TABLE student drop FOREIGN KEY fk_teacher_student
- 触发器 对操作 update,insert,delete,触发时机 after 或 before。
例: DELIMITER $ create trigger newStudent after insert on student for each row begin declare c int; set c = (select stuCount from teacher t where t.id=new.t_id); update teacher t set stuCount = c+1 where t.id = new.t_id; end$ DELIMITER ; DROP TRIGGER newStudent;