一、MYSQL表复制
【复制表结构】CREATE TABLE t2 LIKE t1 【复制表内容】INSERT INTO t2 SELECT * FROM t1
二、索引
【查看索引】 SELECT INDEX FROM table_name; 【创建索引】 CREATE INDEX index_name ON table_name(column); CREATE UNIQUE INDEX index_name ON table_name(column); ALTER TABLE table_name ADD INDEX index_name(column); ALTER TABLE table_name ADD UNIQUE index_name(column); ALTER TABLE table_name ADD PRIMARY KEY(column); 【删除索引】 ALTER TABLE table_name DROP INDEX index_name;
三、MYSQL视图
【创建】 CREATE VIEW v_t1 AS SELECT * FROM t1 WHERE id < 4 and id <11; ALTER VIEW CREATE VIEW DROP VIEW
四、MYSQL内置函数
【字符串函数】 CONCAT(STRING) 连接字符串 LCASE(STRING) 转换小写 UCASE(STRING) 转换大写 LENGTH(STRING) 长度 LTRIM(STRING) 去除左边空格 RTRIM(STRING) 去除右边空格 REPEAT(STRING,COUNT) 重复count次 REPLACE(STR,SEARCH_STR,REPLACE_STR) 替换字符串 SUBSTRING(STR,POSITION,LENGTH) 字符串截取 SPACE(COUNT) 生成count个空格 【数学函数】 BIN(NUM) 十进制转二进制 CEILING(NUM) 向上取整 FLOOR(NUM) 向下取整 MAX(COLUMN) 聚合时取最大值 MIN(COLUMN) 聚合时取最小值 SQRT(NUM) 开平方 RAND() 返回0-1内的随机数 【时间函数】 CURDATE() 返回当前日期 CURTIME() 但会当前时间 NOW() 返回当前日期时间 UNIX_TIMESTAMP(DATE) 返回date的unix时间戳
FROM_UNIXTIME(TIMESTAMP) 返回timestamp的日期
WEEK(DATE) 返回一年中的第几个星期
YEAR(DATE) 返回年份
DATEDIFF(DATE1,DATE2) 返回2个时间之间的天数差
五、MYSQL预处理语句
PREPARE stmt_name FROM preparetable_stmt; exp: PREPARE stmt1 FROM 'SELECT * FROM t1 WHERE id > ?'; SET @i=1; EXECUTE stmt1 USING @i; 【删除预处理】 DROP PREPARE stmt1;
六、MYSQL事务处理
SET AUTOCOMMIT = 0; ROLLBACK; COMMIT; 【创建还原点】 SAVEPOINT p1; ROLLBACK TO p1;
七、MYSQL触发器
修改定界符为// MySQL> \d // 创建一个名字为tg1的触发器 当t1表插入数据时就向t2中插入数据 MySQL> CREATE TRIGGER tg1 BEFORE INSERT ON t1 FOR EACH ROW; MySQL> BEGIN; MySQL> INSERT INTO t2(id) VALUES (new.id); MySQL> END//
八、重排AUTO_INCREMENT值
ALTER TABLE table_name AUTO_INCREMENT = 1;