Mysql


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){
//处理异常
}
后续代码不会受影响
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值