MySql语句记录

truncate table tablename;

效果同不带where子句的delete相同,仅会删除表数据,不删除表结构;但是truncate table语句属于DDL语句,不会在删除时加事务,删除后也不可恢复。另一个区别是delete后不会真正释放表空间,而truncate table后会把表空间释放至低位水平。

select SQL_CACHE / select SQL_NO_CACHE
select SQL_CACHE xxx

如果查询结果可被缓存并且query_cache_type是ON或者DEMAND,查询的结果将被mysql缓存。

select SQL_NO_CACHE xxx

mysql服务器不对这条语句使用缓存,即:既不查看这个查询是否存在缓存,也不把查询结果缓存在服务器内。

join … on / join … using(col1, col2, …)
join .. on

常规join语句写法,on后边添加join的条件。

join .. using(col1, col2, ...)

如果被join的两个表的列名相同且使用等于条件来join,则可以简化为这种写法。
等价于

join .. on a.col1 = b.col1 and a.col2 = b.col2 and ...
insert… on duplicate key update…

插入数据时,如果发生主键/唯一键冲突,则执行后边的update语句。
需要注意的是,如果有多个唯一键,那么任何一个唯一键冲突都会触发update语句,此外,如果有多个列匹配了唯一键冲突,那么只会有一个列做更新,所以有多个唯一列的表不适合使用这个语句。
此外,若innodb的auto_increment列如果重复,那么innodb将会把auto_increment列的自增值并且不会执行更新语句。

alter table … alter/change/modify column …
  1. alter column
    alter column仅仅用于修改列的默认值(default),此语句并不会造成表的重建,而是只修改表的.frm文件,所以执行速度很快。
    例子:
alter table film alter column rental_duration set default 5; 
alter table film alter column rental_duration drop default;
  1. change column / modify column
    change column和modify column都是对某一列进行修改的语句,可以理解为重新定义某一列。它们的区别仅仅在于change column可以修改列名,而modify column不可以修改列名。同时,可以通过在定义最后加上first或者after col_name,来定义这一列的位置。
    例子:
ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;
ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz;
start transaction / commit / rollback

start transaction:开始一个事务
commit:提交事务
rollback:回滚事务

select … for update

在select过程中获取所查数据的写锁;如果有另一个select … for update获取同一行记录或者想要更新相关记录,那么就会阻塞。
值得注意的是,因为innodb实现了MVCC,所以获取了某行记录的写锁不影响正常的select语句。sql服务器

设置只读
SET GLOBAL read_only = ON/OFF

当设置为ON时,MySQL服务器只读;注意,这个参数对于具有super权限的用户不受影响。

锁全部表

1.flush tables with read lock;
2.UNLOCK tables;
第一个语句获取一个全局读锁,以禁止数据库内所有的写操作。
第二个语句对这个全局读锁进行解锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值