联接与多张表的操作
- AS会引用某个查询的结果来安插至另一个表中
CREATE TABLE prossion
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
profession VARCHAR(10)
)
AS
SELECT profession FROM my_contact
GROUP BY profession
ORDER BY profession;
子查询
- 关联子查询是指内层查询的解析需要依赖外层查询的结果。(一般使用IN或NOT IN)
如果子查询可以独立运行且不会引用外层查询的任何结果,即称为非关联子查询。内层查询先被RDBMS解释,然后才输出到外层查询。
事务
- 事务是一群可完成一组工作的SQL语句
- ACID原则
ATOMICITY原子性。事务里的每一个步骤都必须完成,否则只能都不完成。
CONSISTENCY一致性。事务完成后应该维持数据库的一致性。
ISOLATION隔离性。表示每次事务都会看到具有一致性的数据库,无论其他事务有什么行动。
DURABILITY持久性。事务完成后,数据库需要正确的存储数据并保护数据免受断电或其他威胁的伤害。 - 有三种SQL事务工具可以保障账户的安全
START TRANSACTION
持续追踪后续所有SQL语句,直到你输入COMMIT
或ROLLBACK
为止。
COMMIT如果所有语句都已妥当,改变后的结果也不错,输入COMMIT让一切成真
ROLLBACK可以逆转,让每件事回到START TRANSACTION前的状态。 - 存储引擎必须是BDB或InnoDB,两种支持事务的引擎之一
安全性
- GRANT TO授予权限
GRANT SELECT ON
`table`
TO user
(WITH GRANT OPTION)
括号内的表示让用户能把刚刚获得的权限授予其他用户
* REVOKE撤销权限
REVOKE SELECT ON
`table`
FROM
user
也可以WITH GRANT OPTION