-- 表类型和存储引擎
-- 查看所有存储引擎
SHOW ENGINES
-- innodb 存储引擎为默认 已使用过
-- 1. 支持事务,外键,行级锁
-- myisam 存储引擎
CREATE TABLE t28 (
id INT ,
`name` VARCHAR(32)) ENGINE MYISAM
-- 添加速度快,不支持外键和事务,支持表级锁
START TRANSACTION
SAVEPOINT t1
INSERT INTO t28 VALUES(1,'jack');
ROLLBACK TO t1 # 有警告,没有回滚成功
SELECT * FROM t28
-- memory 存储引擎
-- 数据存储在内存中[关闭mysql,数据丢失,表的结构还在]
-- 执行速度快(没有IO读写) 默认支持hash索引
CREATE TABLE t29 (
id INT ,
`name` VARCHAR(32)) ENGINE MEMORY
INSERT INTO t29
VALUES (1,'tom'),(2,'jack'),(3,'hsp');
SELECT * FROM t29
-- 视图view 重要信息隐藏
-- 视图是虚拟表,数据来自对应真实表(基表)
-- 视图 和 真实表是映射关系
-- 创建视图
-- 创建视图 emp_view01 ,只能查询emp的(empno,ename,job,deptno)信息
CREATE VIEW emp_view01
AS
SELECT empno ,ename, job, deptno FROM emp;
DESC emp_view01
SELECT ename,job FROM emp_view01
-- 更新视图
ALTER VIEW 视图名 AS SELECT语句
-- 查看创建视图的指令
SHOW CREATE VIEW emp_view01
-- 删除视图
DROP VIEW emp_view01
-- 视图细节
-- 视图与基表数据操作一直
UPDATE emp_view01
SET job = 'MANAGER'
WHERE empno = 7369
SELECT * FROM emp -- 查询基表 ,发现改变,修改基表,视图也会发生相应改变
-- 视图中可以在使用视图,从emp_view01中做出新视图
CREATE VIEW emp_view02
AS
SELECT empno,ename FROM emp_view01
-- 使用三张基表emp,dept,salgrade,创建视图emp_view03,
-- 显示雇员编号,雇员名和部门名称,薪水级别
CREATE VIEW emp_view03
AS
SELECT empno,ename,dname,grade
FROM emp,dept,salgrade
WHERE emp.deptno = dept.deptno
AND (sal BETWEEN losal AND hisal);
DESC emp_view03;
SELECT * FROM emp_view03;