事务:用于处理操作量大,复杂度高的数据。
1. 用 BEGIN, ROLLBACK, COMMIT来实现
- BEGIN 开始一个事务
- ROLLBACK 事务回滚
- COMMIT 事务确认
2、直接用 SET 来改变 MySQL 的自动提交模式:
- SET AUTOCOMMIT=0 禁止自动提交
- SET AUTOCOMMIT=1 开启自动提交
ALTER命令:修改数据表名或修改数据表字段。
删除字段:ALTER TABLE tb1 DROP i;
添加字段:ALTER TABLE tb1 ADD i INT;
添加指定位置,可以用FIRST(定位第一列)或AFTER(某个字段之后)
ALTER TABLE tbl ADD i INT FIRST;
ALTER TABLE tbl ADD i INT AFTER c;
修改字段类型及名称:MODIFY 或 CHANGE
把字段 c 的类型从 CHAR(1) 改为 CHAR(10)
ALTER TABLE tb1 MODIFY c CHAR(10);
在 CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型:
ALTER TABLE tb1 CHANGE i j BIGINT;
修改字段默认值:ALTER TABLE tb1 ALTER i SET DEFAULT 1000;
删除字段默认值:ALTER TABLE tb1 ALTER i DROP DEFAULT;
修改表名:ALTER TABLE tb1 RENAME TO tb2;
临时表:保存临时数据,只在当前连接可见,关闭连接,会自动删除并释放空间。
创建:CREATE TEMPORARY TABLE tablename1();
删除:DROP TABLE tablename1;
复制表:
1.进入数据库,先用SHOW CREATE TABLE获取数据表的结构
2.修改数据表名,CREATE TABLE `clone_tablename1`
3.在数据库中创建新的克隆表 clone_tablename1,用INSERT INTO clone_tablename1(.....) SELECT.......FROM tablename1
序列使用:一张数据表只有一个字段自增主键,如想实现其它字段自增,可以通过序列使用。
MySQL AUTO_INCREMENT
处理重复数据:
防止表中出现重复数据:设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性
统计重复数据:
mysql> SELECT COUNT(*) as repetitions, last_name, first_name(确定哪一列包含的值可能会重复)
-> FROM person_tbl(在列表中选择列表使用COUNT(*)列出的列)
-> GROUP BY last_name, first_name(列)
-> HAVING repetitions > 1;(设置重复数大于1)
过滤重复数据:使用DISTINCT关键字过滤
mysql> SELECT DISTINCT last_name, first_name
-> FROM person_tbl;
删除重复数据:
mysql> CREATE TABLE tmp SELECT last_name, first_name, sex FROM person_tbl GROUP BY (last_name, first_name, sex);
mysql> DROP TABLE person_tbl;
mysql> ALTER TABLE tmp RENAME TO person_tbl;