mysql表复制
复制表结构+复制表数据
mysql> create table t3 like t1; mysql> insert into t3 select * from t1;</div>
mysql索引
ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引 ALTER TABLE table_name ADD INDEX index_name (column_list) ALTER TABLE table_name ADD UNIQUE (column_list) ALTER TABLE table_name ADDPRIMARY KEY (column_list) Create Index CREATE INDEX index_name ON table_name (column_list) CREATE UNIQUE INDEX index_name ON table_name (column_list) drop index DROP INDEX index_name ON talbe_name alter table table drop ALTER TABLE table_name DROP INDEX index_name ALTER TABLE table_name DROP PRIMARY KEY</div>
mysql视图
创建视图
mysql> create view v_t1 as select * from t1 where id>4 and id<11; Query OK, 0 rows affected (0.00 sec)</div>
view视图的帮助信息
mysql> ? view ALTER VIEW CREATE VIEW DROP VIEW</div>
查看视图
mysql> show tables;</div>
删除视图v_t1
mysql> drop view v_t1;</div>
mysql内置函数
字符串函数
CONCAT (string2 [,… ]) //连接字串 LCASE (string2 ) //转换成小写 UCASE (string2 ) //转换成大写 LENGTH (string ) //string长度 LTRIM (string2 ) //去除前端空格 RTRIM (string2 ) //去除后端空格 REPEAT (string2 ,count ) //重复count次 REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替换search_str SUBSTRING (str , position [,length ]) //从str的position开始,取length个字符 SPACE(count) //生成count个空格</div>
数学函数
BIN (decimal_number ) //十进制转二进制 CEILING (number2 ) //向上取整 FLOOR (number2 ) //向下取整 MAX(num1 ,num2) //取最大值 MIN(num1,num2) //取最小值 SQRT(number2) //开平方 RAND() //返回0-1内的随机值</div>
日期函数
CURDATE() //返回当前日期 CURTIME() //返回当前时间 NOW() //返回当前的日期时间 UNIX_TIMESTAMP(date) //返回当前date的UNIX日间戳 FROM_UNIXTIME() //返回UNIX时间戳的日期值 WEEK(date) //返回日期date为一年中的第几周 YEAR(date) //返回日期date的年份 DATEDIFF(expr,expr2) //返回起始时间expr和结束时间expr2间天数</div>
mysql预处理语句
设置stmt1预处理,传递一个数据作为一个where判断条件
mysql> prepare stmt1 from 'select * from t1 where id>?';</div>
设置一个变量
mysql> set @i=1;
执行stmt1预处理
mysql> execute stmt1 using @i;
设置@i为5
mysql> set @i=5;
再次去执行stmt1
mysql> execute stmt1 using @i;
如何删除预处理stmt1
mysql> drop prepare stmt1;
mysql事务处理
--关闭自动提交功能 mysql> set autocommit=0; --从表t1中删除了一条记录 mysql> delete from t1 where id=11; --此时做一个p1还原点: mysql> savepoint p1; --再次从表t1中删除一条记录: mysql> delete from t1 where id=10; --再次做一个p2还原点: mysql> savepoint p2; --此时恢复到p1还原点,当然后面的p2这些还原点自动会失效: mysql> rollback to p1; --退回到最原始的还原点: mysql> rollback ;</div>
mysql存储
创建一个存储p1()
mysql> \d // mysql> create procedure p1() -> begin -> set @i=0; -> while @i<10 do -> select @i; -> set @i=@i+1; -> end while; -> end; -> //</div>
执行存储p1()
mysql> \d ; mysql> call p1(); --查看procedure p1()的status信息 mysql> show procedure status\G --查看procedure p1()的具体信息: mysql> show create procedure