sql笔记

where子句要放在order by子句之前

通配符通过LIKE,单字符匹配通过_,多字符匹配通过%,eg:select * from T_Employee where Fname LIKE '_erry'; select * from T_Employee where Fname LIKE 'DEV%';

select * from T_Employee where Fname is NULL;对于NULL不能使用=等其他来筛选,只能通过is或is not

select * from T_Emplyee where Fage between 20 and 30;

GROUP BY子句必须放在WHERE子句后面

WHERE子句中不能出现聚合函数,这种情况可用HAVING,eg:HAVING count(*)>2
WHERE是在分组前原表的数据过滤

HAVING是在分组后新建表的数据过滤
HAVING跟在GROUP BY后面

UNION会删除重复行,UNION ALL不会

CASE
WHEN a>b then a
WHEN b>a then b
ELSE 0
END
CASE可如上所示是比较时,后面不跟变量

DELETE只能删除行,不能删除列,因此DELETE的语句为DELETE FROM table WHERE *

 事务在数据库中执行有两种模式。第一种为自动提交模式:每条sql语句就是一个事务;第二种为直到用户执行COMMIT或者ROLLBACK为止算作一个事务。通常的数据库都可以选择其中任意一种模式。默认使用自动提交模式的数据库有SQL Server,PostgreSQL和MySQL等。自动提交模式下,每条SQL语句都被括在事务的开始语句和结束语句中。自动提交模式中,需要特别注意DELETE语句,因为在该模式下,执行了DELETE操作,即使再回滚也无济于事了。

原文地址:https://www.cnblogs.com/ningjing213/p/11956464.html