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){
//处理异常
}
后续代码不会受影响
*/
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){
//处理异常
}
后续代码不会受影响
*/
相关文章推荐
- 【mysql5.6】数据类型
- 你可能不知道的mysql语句
- Mysql体系结构及sql执行过程总结
- mysql优化
- mysql的知识点整理
- mysql出现错误“ Every derived table must have its own alias”
- MySQL安装、备份与恢复思维导图
- 二 MySQL初步,数据类型及SQL语句
- MySQL安全配置
- mysql Could not initialize master info structure 解决方法
- 自己实现mysql “函数索引”
- 安装使用percona版本mysql
- MySQL集群搭建步骤详解
- mysql find_in_set 用法
- MySql 统计排名
- MySQL存储过程详解 mysql 存储过程
- mysql实现master-slave的replication方案
- MySQL数据库SQL语句整合
- mysql_li async 一步查询
- navicat for mysql 10.1.7注册码