1,三元运算:if(ISNULL (),0,1)
如成真,输出0,否则输出1
2,join 左右连表(多列连表),union上下连接表(上下多行连表)
SELECT sid,sname FROM student
union
SELECT sid,sname FROM student
使用UNION ALL,不去重
3,视图
为某个查询语句设置别名,日后方便重复性使用
创建
create view 视图名称 as SQL
修改
alter view 视图名称 as SQL
删除
drop view 视图名称;
例:
select .. from v1 #创立视图v1
select asd from v1 #使用
4,触发器
当对某张表做:增删改操作时,可以使用触发器自定义关联行为
delimiter // #命令结束以//结尾,不以;分号结尾
create trigger t1 BEFORE INSERT on student for EACH ROW #在insert语句执行前触发
BEGIN
INSERT into teacher(tname) values(NEW.sname);
INSERT into teacher(tname) values(NEW.sname);
END //
delimiter ; #命令结束改回以;结尾
create trigger t1 AFTER INSERT on student for EACH ROW #在insert语句执行后触发。还可用于update\delete操作,用于增删改
NEW,代指新数据。OLD,代指老数据
EACH ROW,代表每操作一行,就触发一次
insert into student(gender,class_id,sname) values('女',1,'陈涛'),('女',1,'张根'); #触发了2次
5,函数
内置函数:
执行函数 select CURDATE();
select DATE_FORMAT(ctime, "%Y-%m"),count(1) from blog group DATE_FORMAT(ctime, "%Y-%m")
自定义函数(有返回值):
delimiter \\
create functio