事务
事务指一组操作,要么都成功,要么都不成功
/* start transaction sql语句 commit(提交)/rollback(回滚到start之前的状态)
特性
原子性
原子意为最小的粒子,即不能再分的事务,要么全部执行,要么全部取消
一致性
指事务发生前和发生后,数据的总额依然匹配
隔离性
某个事务的操作对其他事务不可见
持久性
当事务完成后,其影响应当保留下来,不能撤销;只能通过“补偿性事务”抵消之前的错误
存储引擎
MyIsam:辣鸡
InnoDB:牛逼
create table user( id int auto_increment primary key, name varchar(255) not null default'' )engine=Innodb charset utf8; # mysql 5.5 以上默认Innodb #MyIsam 不支持事务,InnoDB支持事务 #MyIsam 支持表锁,InnoDB支持行锁
视图
-- create view 视图名 as SQL语句 #删除 drop view 视图名 -- 限制权限 grant select on 视图名 to 用户名 -- 所有权限 grant all privileges on 视图名 to 用户名
触发器
delimiter // create trigger 触发器名 before sql语句 begin sql语句 end // delimiter ; #查看 show triggers \G #删除 -- drop trigger 触发器名
存储过程
像一个函数
delimiter // create procedure p1() begin select * from user where id = 2; end // delimiter; call(p1) #删除 drop procedure p1;
函数
CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。 对于一个包含五个二字节字符集, LENGTH()返回值为 10, 而CHAR_LENGTH()的返回值为5。 CONCAT(str1,str2,...) 字符串拼接 如有任何一个参数为NULL ,则返回值为 NULL。 FORMAT(X,D) 将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形式返回。若 D 为 0, 则返回结果不带有小数点,或不含小数部分。 例如: SELECT FORMAT(12332.1,4); 结果为: '12,332.1000' INSTR(str,substr) 返回字符串 str 中子字符串的第一个出现位置。 LEFT(str,len) 返回字符串str 从开始的len位置的子序列字符。 LOWER(str) 变小写 UPPER(str) 变大写 LTRIM(str) 返回字符串 str ,其引导空格字符被删除。 RTRIM(str) 返回字符串 str ,结尾空格字符被删去。 SUBSTRING(str,pos,len) 获取字符串子序列 LOCATE(substr,str,pos) 获取子序列索引位置 REPEAT(str,count) 返回一个由重复的字符串str 组成的字符串,字符串str的数目等于count 。 若 count <= 0,则返回一个空字符串。 若str 或 count 为 NULL,则返回 NULL 。 REPLACE(str,from_str,to_str) 返回字符串str 以及所有被字符串to_str替代的字符串from_str 。 REVERSE(str) 返回字符串 str ,顺序和字符顺序相反。 RIGHT(str,len) 从字符串str 开始,返回从后边开始len个字符组成的子序列
数据库备份
-- MySQLdump -h服务器 -u用户名 -p密码 数据库名 表名,... 文件名.sql #单库备份 mysqldump -uroot -p123 db1 > db1.sql mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql #多库备份 mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql #备份所有库 mysqldump -uroot -p123 --all-databases > all.sql #重新导入 source D:/test3.sql;