1. 修改表的列结构
1.1 alter table 命令 alter table 命令用来修改表的列的构造。根据修改的种类有modify,change,add,drop
修改列的定义: alter table ... modify
追加列: alter table ... add
修改列的名称与定义 : alter table ... change
删除列: alter table ... drop
1.2 修改列的数据类型 alter table 表名 modify 列名 数据类型;
-- 将nam 列的数据类型改为varchar(30); alter table vistor modify nam varchar(30);
1.3 追加新列 alter table 表名 add 列名 数据类型;
--追加年龄(old)列到vistor表最后 alter table vistor add old int;
-- 在表的开头处追加 alter table vistor add old int first;
-- 在任意位置追加 [在nam列的最后追加old列] alter table vistor add old int after nam;
1.4 改变列的位置 如果想改变已经定义的列的位置,就可以使用前面介绍的[modify]关键字
--将vistor 表中的 old 列移动到nam列的后面
alter table vistor modify old int alter nam;
-- 追加新列到 sex 后 alter table visitor add old int after sex;
-- 修改已经存在的列
alter table visitor MODIFY old int(3) after nam;
1.5 改变列名与类型
alter table 表名 change 修改前的列名 修改后的列名 修改后的数据类型;
-- 修改生日列的数据类型
alter TABLE visitor CHANGE birth birthday date;
1.6 删除列
alter table 表名 drop 列名;
-- 删除年龄(old) 列
alter table vistor drop old;
DESC visitor; 2 复制表和删除表 2.1 表的列构造与数据复制 2.1.1 表的列构造+数据的复制
-- 复制表的列构造以及数据来创建新的表
create table customer2 select * from customer;
2.1.2 复制表的列构造
create table 新表 like 旧表
-- 复制表的列构造
create table customer3 like customer;
2.1.3 数据的复制
inster into 表名 select * from 含有数据的表
inster into customer3 select * from customer;
2.2 表的删除
drop table 表名;
3 锁定与事务处理分离水平
3.1 为什么锁定
3.2 锁定的种类
共享锁定(shared lock) :当用户参照数据时,将数据变为只读的形式。当用户A对数据实施了共享锁后,用户B只能对数据进行参照而不能更新。
排他锁定(eXclusive lock) :使用insert,update,delete 对数据进行更新时使用的锁定。其他进程(或事务)一律不能对读取该数据也不能更新。
3.3 锁定的粒度
行
表
数据库
3.4 多用户数据更新中理解事务处理的分离水平 /************************事务 分离水平**************************************************/
分离水平 | 非提交读取 | 不可重复读 | 幻象读取 |
read UNCOMMITTED | 1 | 1 | 1 |
read COMMITTED | 0 | 1 | 1 |
REPEATABLE read | 0 | 0 | 1 |
SERIALIZABLE | 0 | 0 | 0 |
非提交读取:也称为胀读,即能从别的事务处理中独具还没有提交的更新数据。