1、内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连 接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。所以外连接数据一般比内连接结果集要多。语法上on是可选语句。
2、用AS取别名,AS可以省略;DISTINCT去除重复数据,后面不需加()。
3、当一个成功的事务完成后,发出COMMIT命令应使所有参与表的更改才会有效。COMMIT(提交)
4、如果发生故障时,应发出一个ROLLBACK命令返回的事务中引用的每一个表到以前的状态。ROLLBACK(回滚)
5、数据库事务是指作为单个逻辑工作单元执行的一系列操作。它必须同时满足四个特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durabiliy)。
事务的特性( ACID )
(1)Atomicity 原子性
一个事务是一个不可分割的工作单位.要么所有的语句都执行成功,要么所有的语句都不执行.
(2)Consistency 一致性
事务必须是使数据库从一个一致性状态变到另一个一致性状态.
(3)Isolation 隔离性
一个事务的执行不能被其他事务干扰,在一个事务中添加修改的数据,不能被令一个事务读取或者修改.
(4)Durability 持久性
指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
6、事务开启,除了START TRANSACTION之外,DML语句中增加、修改、删除都会开启事务。
7、在缺省状态下处于autoCommit,每条SQL语句为一个事务,即此时Mysql是不支持事务的。
8、mysql的数据库事务隔离级别是:
Read Uncommitted(读取未提交内容)
在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。
Read Committed(读取提交内容)
这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。
Repeatable Read(可重读)
这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读(Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题。
Serializable(可串行化)
这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。
9、set autocommit = 0 禁止自动提交; set autocommit = 1 开启自动提交; 当用set autocommit = 0 的时候,你以后所有的sql都将作为事务处理,直到你用commit确认或 rollback结束。
10、MYSQL默认的表类型就是InnoDB ,InnoDB是把表的主键最大值放到内存里面,所以MYSQL重启之后就会丢失。MyISAM是把表的主键最大值放到文件里面,所以MYSQL重启之后不会丢失。因此:如果表的类型是MyISAM,那么是18。 因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。 如果表的类型是InnoDB,那么是15。 InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会导致最大ID丢失。
11、where 的条件不单只用在对字段里的数据进行比对,还可以用在其他的条件比对中。1=1的结果为true,所有记录都满足该条件,因此全部更新。
12、删除语句语法为:DELETE FROM ....WHERE 。