您的位置:首页 > 数据库 > MySQL

Mysql

2015-06-09 23:24 567 查看
2.MySQL高级:

a)表复制:

i.物理复制

1.一个数据库一个文件夹

2.一个myisam表,三个文件,t1.frm(表结构),t1.MYD(表数据),t1.MYI(表索引)

3.只需要将三个文件复制一份即可

ii.SQL语句复制

1.复制表结构

a)Create table t3 like t1;

2.复制表数据

a)Insert into t3 select * from t1;

b)MySQL数据表索引:

i.什么是索引?

1.就是一个向导,一个快速定位的工具

2.相当于一本书的目录

ii.为什么是要使用索引?

1.快速查询

2.提高查询效率

iii.什么时候使用索引:

1.要针对频繁查询的字段创建对应的索引

iv.索引的作用:

1.快速定位

v.索引的分类:

1.主键索引 Primary key

a)一张表只允许有一个主键

b)有唯一约束

2.唯一索引 Unique

a)具有唯一约束

3.全文索引 Full Text

a)通常情况下不去使用

b)只支持英文,只支持字符串的索引

c)使用Sphinx替换

4.常规索引 Index Key

a)只有定位功能

5.外键索引 Foreign key

a)外键一般不使用

b)只支持在innodb表类型上

c)效率偏低

vi.如何使用索引:(index)

1.索引的添加

a)常规索引:

i.Alter table 表名 add index [索引名称](字段名称);

ii.Alter table t3 add index t3_username ( username );

b)唯一索引:(unique)

i.Alter table 表名 add unique [索引名称](字段名称);

ii.Alter table t3 add unique t3_username ( username );

c)主键索引:(primary key)

i.Alter table 表名 add [索引名称] (字段名称);

2.索引的删除

a)常规索引:

i.Alter table 表名 drop index;

ii.Alter table t3 drop index t3_username;

b)唯一索引:

i.Alter table 表名 drop index;

ii.Alter table t3 drop index t3_username;

c)主键索引:

i.先删除auto_increment属性

1.Alter table t3 modify id int unsigned not null

ii.删除主键:

1.Alter table t3 drop primary key;

3.索引的查询

a)Show indexes from 表名

c)MySQL数据库视图:

i.什么是视图?

1.一个或者多个基本表的数据的结果映射

2.一个虚表

3.一个窗口

ii.为什么要使用视图?

1.提高查询的安全性,可以让不同的用户查看不同的视图结果

2.简化SQL查询,简化程序的逻辑性

3.视图的结构是比较清晰的

iii.如何使用视图:

1.Create view t2_view as select * from t2 where id > 1 and id < 7;

2.Drop view t2_view;

iv.注意:

1.视图不保存数据,只存储结构

d)MySQL内置函数:

i.字符串函数:

1.Concat
连接字符串

2.Lcase/ucase
小写/大写

3.Length
字符串长度

4.Rtrim/ltrim/trim
删除字符串左右两侧的空格

5.Repeat
重复使用字符串

6.Replace
字符串替换

7.Substring
字符串截取

8.Space
重复输出多个空格

ii.数学函数:

1.Max 最大值

2.Min 最小值

3.Rand
随机数

4.Count
求个数

5.Sum 求和

6.Avg 求平均值

iii.日期函数:

1.Curdate()
返回当前日期

2.Curtime()
返回当前时间

3.Now()
返回当前日期+当前时间

4.Unix_timestamp()
返回时间戳

5.From_unixtime()
返回时间戳对应的日期

6.Datediff()
返回两个日期相差的天数

e)MySQL的预处理:

i.什么是预处理?

1.提前将SQL语句发送MySQL进行处理解析

ii.为什么要使用预处理?

1.SQL语句只会解析一次,提高效率

2.防止SQL注入

iii.什么时候使用预处理?

1.能使用预处理的时候尽量使用预处理

iv.如何使用:

1.PDO

2.MySQL:

a)创建预处理对象

i.prepare 预处理对象名称 from ‘预处理语句’

ii.prepare stmt from ‘delete from t2 where id=?’

b)设置变量

i.Set @i = 5;

c)绑定变量并且执行

i.Execute 预处理对象名称 using 变量名称

ii.Execute stmt using @i;

d)删除预处理:

i.Drop prepare stmt;

f)MySQL事务处理:

i.什么是事务?

1.一系列、完整的、连续操作的队列我们称之为事务

ii.为什么要使用事务处理?

1.为了是程序具有更好的完整性和安全性

iii.什么时候使用事务处理?

1.金钱相关

2.重要的数据

iv.前提条件:

1.数据表必须是InnoDB

v.事务处理的步骤:

1.开启事务

a)begin

2.执行sql语句

a)Update….

3.回滚/提交

a)Rollback/commit

vi.PDO的事务处理:

1.设置错误模式为异常处理模式

a)$pdo->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

b)New PDO('dsn',’user’,’pass’,array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION))

2.开启事务

a)$pdo->beginTransaction()

3.执行sql语句

a)Prepare()

4.执行或者回滚

a)$pdo->commit()

b)$pdo->rollback() //异常处理

try{

//尝试执行的代码

//如果发生错误异常,抛出异常

//后续代码不会执行

//如果没有发生异常,不会抛出

//后续代码会正常执行

}catch(Exception $e){

//处理异常

}

后续代码不会受影响

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: