1、数据库定义
(1)数据定义语言(DDL):DROP(删除)、CREATE(创建)、ALTER(更新)等语句。
隐形提交事务不能回滚
(2)数据操作语言(DML):INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
增删改,都需要提交事务
(3)数据查询语言(DQL):SELECT语句。
(4)数据控制语言(DCL):GRANT、REVOKE、COMMIT、ROLLBACK等语句。
Data Control Language
2、SQL语句(数据库操作null值很危险,if null 判断)
主键,又称主码,是表中一列或多列的组合。主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空。
select
select * from testdb.test001 where id=#{id}
update value
update testdb.test002 set pwd=#{userPwd} where id=#{userId}
inset into
insert into testdb.test001 (id,name) values (#{id},#{name})
delete
delete from testdb.test001 where id=#{id}
3、聚合函数
count:统计制定列不为空的记录行数
max、min、avg、sum
先条件过滤再分组
Group By 分组
order By(ASC、DESC)排序
HAving 先分组再条件过滤
4、事务(一组逻辑操作单元)
原子性:事务不可分割,要么全部成功,要么全部失败
持久性:事务一旦提交,数据库的数据改变是永久性的
一致性:在事务开始和事务结束时,数据都保持一致状态(状态转换)
隔离性:事物的执行不被其他事物干扰
出现这种问题,就是隔离级别不够
脏读:t1执行更新但未提交(回滚) t2 读取的是t1更改的数据,但是数据出错
不可重复读:一个事务对一行数据重复读取两次,可是得到了不同的结果。在两次读取数据的中途,有可能存在另外一个事务对数据进行了修改。
幻读:事务在操作过程中进行两次查询,第二次查询结果包含了第一次没有出现的数据。出现幻读的主要原因是,两次查询过程中另一个事务插入新的数据
5、隔离级别
数据库隔离级别包括未提交读(Read uncommitted)、已提交读(Read committed)、可重复读(Repeatableread)、可序列化(Serializable),事务的隔离级别越严格,并发副作用就越小,但付出的代价也越大。
6、视图
数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的行和列数据。行和列数据来自由定义视图查询所引用的表,并且在引用视图时动态生成。
7、存储过程
创建存储过程和函数使用的语句分别是CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句来调用存储过程,只能用输出变量返回值。