MySQL的ALTER变更、正则查询、分组查询、排序查询以及事务查询的概
2024-08-24 17:24:21
MySQL的表和字段信息的变更
ALTER TABLE table-name DROP column-name; #删除某个字段
ALTER TABLE table-name ADD column-name INT;#添加某个字段(需要指定数据类型),还可以添加未知信息,FIRST , AFTER xxxx
ALTER TABLE table-name CHANGE source-column-name new-column-name DATATYPE;#更换字段名字和类型
ALTER TABLE table-name MODIFY column-name DATATYPE NOT NULL DEFAULT 100;# 变更字段约束条件
ALTER TABLE table-name ALTER column-name SET DEFAULT 1000;# 变更字段约束条件,当然也可以DROP DEFAULT
ALTER TABLE table-name ENGINE = MYISAM;#变更引擎
ALTER TABLE old-table-name RENAME TO new-table-name;#修改表名
ALTER TABLE table-name DROP FOREIGN KEY key-name;#删除外键
正则表达式
SELECT * FROM table-name WHERE column-name REGEXP '正则表达式内容';#正则的使用
分组查询和排序查询
SELECT * FROM table-name ORDER BY column-name ASC;#也可以是DESC,排序查询,表名和字段名都可以多个
SELECT * FROM table-name GROUP BY column-name;#分组查询
MySQL事务
事务是MySQL保障数据一致性的重要机制,MySQL的事务具备四种基本属性
1、原子性
每一个事务只能完全提交或者回滚,不存在事务执行一般的情况。
2、一致性
数据一致性状态只能从一中状态成为另外一种一致性状态。
3、隔离性
事务与事务的操作相互隔离,这种特性通过锁机制实现。
4、持久性
改变了状态就是改变了,不会因为其他原因例如重启等二变动,事务状态改变了,这种改变是永久性的。
MySQL事务控制语句
BEGIN
DO SOMETHING
COMMIT/ROLLBACK
MySQL的事务隔离级别
1、未提交读
SET GLOBAL TRANSATION ISOLATION LEVEL READ UNCOMMITTED;
性能没有显著提高,很少用;
2、提交读
SET GLOBAL TRANSATION ISOLATION LEVEL READ COMMITTED;
大多数数据库的默认事务隔离级别,但是不是MySQL的,会有问题存在;
3、可重复读
SET GLOBAL TRANSATION ISOLATION LEVEL REPEATEABLE READ;
MySQL的默认事务隔离级别,但理论上有可能导致一个问题,幻读。InnoDB和Flacon存储引擎通过并发控制解决了这个问题。
4、可串行化
SET GLOBAL TRANSATION ISOLATION LEVEL SERIALIZABLED;
最高级别,有锁机制实现,强行排序事务,会导致大量的超时和锁竞争。
InnoDB的锁机制
1、共享锁
锁行或者多行,获得锁进行读取;
2、排它锁
锁行或者多行,获得锁进行写入;
3、意向锁
锁表,可读可写;
最新文章
- 【.NET深呼吸】动态类型(扩充篇)
- log4net位置与使用方法
- 优化MySchool数据库(存储过程)
- [Tool] PLSQL使用技巧
- MFC中添加消息响应函数
- 操作SQLite的dbhelper
- SQL:每年每月最高的两个温度
- oracle插入例子
- HDOJ 2442 -bricks 状态压缩DP 一直TLE.打表过的..
- 企业架构研究总结(29)——TOGAF架构内容框架之概述及架构工作产品分类
- 关于JSON.parse在ie6,ie7下未定义的issue
- 用mp3stego来加密与解密文件的几次尝试
- Manacher’s Algorithm (神啊)
- alpha冲刺第七天
- WPF利用附加属性修改ShowGridLines效果
- jQuery实现单击某个标签改变样式
- js获取时间戳的三种方法
- C#执行JavaScript脚本代替Compute
- Django 模板格式化日期
- ubuntu11.10 64bit 编译android 4.0