标签:
1.复制表结构+数据
create table t3 like t1;
insert into t3 select * from t1;
desc 查看表结构信息
2.mysql索引
1)普通索引、唯一索引、主键索引、全文索引
2)? index
3)创建索引
CREATE INDEX index_name ON table_name(column_list);
CREATE UNIQUE INDEX index_name ON table_name(column_list);
4)删除索引
DROP INDEX index_name ON table_name;
5)通用方法
ALTER TABLE table_name ADD INDEX index_name(column_list);
ALTER TABLE table_name ADD UNIQUE index_name(column_list);
ALTER TABLE table_name ADD PRIMARY KEY(column_list);
ALTER TABLE table_name DROP INDEX index_name;
ALTER TABLE table_name DROP PRIMARY KEY;删除主键索引前先要删掉自增长
查看索引 SHOW INDEX FROM table_name;
3.mysql视图
1)? view
2)创建视图
CREATE VIEW view_name AS SELECT * FROM t1;
3)查看视图
SHOW TABLES;
4)删除视图
DROP VIEW view_name;
4.mysql内置函数
1)字符串函数
CONCAT
LCASE
UCASE
LENGTH 字符串长度
LTRIM
RTRIM
REPEAT(string,count) 重复count次
REPLACE(str, search_str, replace_str) 在str中使用replace_str替换search_str
SUBSTRING(str, position[,length]) SUBSTR(str, position[,length])
SPACE(count)生成count个空格
2)数学函数
BIN 十进制转二进制
CEILING(number)向上取整
FLOOR(number)
MAX
MIN
RAND() 0-1内的随机值
3)日期函数
CURDATE() 当前日期,不包含时分秒
CURTIME() 当前时间,不包含年月日
NOW() 当前的日期和时间
UNIX_TIMESTAMP(date)date的时间戳
WEEK(date)date为一年中的第几周
YEAR(date)date的年份
DATEDIFF(date1,date2)相差多少天
5.mysql预处理语句
设置预处理语句:PREPARE stmt1 FROM ‘SELECT * FROM t1 WHERE id>?‘;
设置一个变量: SET @i=1;
执行预处理语句:EXECUTE stmt1 using @i;
SET @i=5;
EXECUTE stmt1 using @i;
删除预处理:DROP PREPARE stmt1;
6.mysql事务处理
1)关闭自动提交功能
SET AUTOCOMMIT=0;
select @@autocommit; 查看它的值
2)从表中删除一条记录
DELETE FROM t1 where id=1;
3)做一个还原点
SAVEPOINT p1;
4)再次从表中删除一条记录
DELETE FROM t1 where id=2;
5)再次做一个还原点
SAVEPOINT p2;
6)此时恢复到p1还原点,当然P2还原点会失效
ROLLBACK TO p1;
7)退回到最原始的还原点
ROLLBACK;
8)SHOW CREATE TABLE t1;查看t1表的创建语法,myisam不支持事务回滚
9)提交操作,commit;提交之后不能再回滚。
7.mysql存储
1)? procedure
2)创建存储
CREATE PROCEDURE p1()
BEGIN
set @i=1;
while @i<=100 do
insert into t1(name) values(concat(‘user‘, @i));
set @i=@i+1;
end while;
END//
存储中也要用到分号,有可能写的时候mysql认为是要结束,所以要将结束符修改为其他
语句定界符默认是分号,可以使用 \d // 修改定界符为// 再使用\d ;恢复
3)查看存储 SHOW PROCEDURE STATUS\G;查看存储的具体信息 SHOW CREATE PROCEDURE p1;
4)执行存储 call p1();
8.触发器
...
9.重排auto_increment
TRUNCATE TABLE table_name;或者清空表内容后ALTER TABLE table_name AUTO_INCREMENT=1;
标签:
原文地址:http://www.cnblogs.com/houwentoa/p/4625408.html