设为首页 加入收藏

TOP

数据库知识整理(1)
2015-07-24 12:10:53 】 浏览:5280
Tags:数据库 知识 整理

MySQL 基础操作

1.1表复制
1.2索引
1.3视图
1.4内置函数
1.5预处理语句
1.6事务处理
1.7存储
1.8触发器
1.9重排auto_increment值

1.1表复制

mysql>create table t2 like t1;
mysql>desc t1;
mysql>desc t2;

表数据复制(!!!)
mysql>insert into t2 select * from t1;

1.2索引

索引分类:主键索引, 唯一索引,普通索引

mysql> index

Create 方法

mysql> create index index_name on table_name(column_name);
mysql>show index from table_name;
mysql>drop index_name from table_name;

mysql>create unique index unique_index on table_name(column_name);
drop index_name on table_name;

ALTER 方法

mysql>ALTER table table_name ADD index index_name(column_name)
mysql>ALTER table table_name drop index index_name;
mysql>ALTER table table_name ADD UNIQUE(column_name)
ALTER table table_name drop index column_name
mysql>ALTER table table_name ADD primary key(column_name)
mysql>ALTER table table_name DROP primary key;

1.3视图

mysql>  View
ALTER VIEW
CREATE VIEW
DROP VIEW
mysql>CREATE VIEW v_table AS select * FROM table_name WHERE id>10000 and id<20000;

mysql>Show tables;
mysql>drop view v_table;


被依赖的表被修改,使用view也会有相应的改变。

1.4内置函数

CONCAT :连接字符串参数
LCASE:字符小写化
UCASE:字符大写化
LENGTH:字符长度
LTRIM:去除左侧空格
RTRIM:去除右侧空格
REPEAT:重复
REPLACE:取代
SUBSTR:剪切文字
SPACE:重复的空格

BIN:转化为二进制数
CEILING:向上取整
FLOOR:向下取整
MAX:取最大值
MIN:取最小值
ROUND:四舍五入取整

CURDATE:当前日期
CURTIME:当前时间(不包括日期)
NOW:当前时间(包括日期)
UNIX_TIMESTAMP 时间差(单位毫秒)
WEEK:当前星期(一年的第几个星期)
YEAR:当前年
DATEDIFF:日期差

1.5预处理语句

mysql> Prepare
mysql>prepare stmt1 from “select * from t1 where id>”;
mysql>set @i=1;
mysql>execute stmt1 using @i;
mysql>drop prepare stmt1;

简单来说,预处理语句使用更少的资源,执行速度也就更快。查询只需要被解析(或准备)一次,但可以使用相同或不同的参数执行多次。当查询准备好(Prepared)之后,数据库就会分析,编译并优化它要执行查询的计划。对于复杂查询来说,如果你要重复执行许多次有不同参数的但结构相同的查询,这个过程会占用大量的时间,使得你的应用变慢。通过使用一个预处理语句你就可以避免重复分析、编译、优化的环节。

1.6事务处理

mysql>SET autocommit=0;
mysql>……
mysql>ROLLBACK;

没有执行COMMIT, 都可以回滚(退回上一状态)

mysql>savepoint point1;
mysql>rollback to point1;

在sql操作过程中设置锚点,可以回退到锚点时的状态

1.7存储

mysql>\d //
create procedure p()
begin
set @i=1;
while @i<10 do
Insert into table1 (user) values(concate(“user”,@i) ;
set @i=@i+1;
end while;
end //
mysql>show procedure status;//
mysql>\d ;
mysql>show create procedure p;
执行:
Mysql> call p();

1.8触发器

mysql>\d //
create tg1 before insert on t1 for each row
begin
insert into t2(id) values(new.id)
end//
mysql>show triggers;

delete & update

1.9重排auto_increment值

Mysql> delete from table_name;
mysql>alter table table_name auto_incement=1;

mysql>truncate table_name;

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇利用AMP(AlibabaMigrationPlatfro.. 下一篇dockerinit起步

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目