Mysql 操作技巧
- 复制表结构 + 表数据
Mysql> create tables t2 like t1;
Mysql> insert into t2 select * from t1; - mysql 索引
a、Alert Table 用来创建普通索引、Unique 唯一索引 (当前列数值不可重复) 或 Primary Key 主键索引
Mysql> alter table table_name add index index_name(column_list);
Mysql> alter table table_name add Unique(column_list);
Mysql> alter table table_name add Primary Key(column_list);b、creat index (不可处理主键索引)
Mysql> create index index_name on table_name(column_list);
Mysql> create Unique index index_name on table_name(column_list);c、drop index(不可处理主键索引)
Mysql> drop index index_name on table_name;d、alter table drop
Mysql> alter table table_name drop index index_name;
Mysql> alter table table_name drop primary key; - mysql 视图
创建视图 (视图可根据主表实时更新)
Mysql> create view v_t1 as select * from t1 where id>4 and id <11;
Mysql> show tables;
Mysql> show create view v_t1;
Mysql> drop view v_t1; - Mysql 内置函数
concat ("string1","string2") // 链接字符串
lcase(STRING) // 转换小写
ucase(string) // 转换大写
length(string) //string 长度
ltrim(string) // 去除 string 前面空格
rtrim(string) // 去除 string 后面空格
repeat(string,count) // 重复 string count 次
replace(str,search_str,replace_str) //str 中用 replace_str 替换 search_str - mysql 预处理语句
设置 stmt1 预处理,传递一个数据作为 where 判断条件
Mysql> prepare stmt1 from 'select * from t1 where id>?';
设置一个变量
Mysql> set @i=5;
执行 stmt1 预处理
Mysql> execute stmt1 using @i;
删除预处理 stmt1
Mysql> drop prepare stmt1; - mysql 事务处理 (Engine=MyISAM 表引擎不支持事务机制)
查看表引擎是否支持
Mysql> show create table t1;
设置表引擎为 innodb
Mysql> alter table t1 engine=innodb;
关闭自动提交功能
Mysql> set autocommit=0;
查看当前 autocommit 设置
Mysql> select @@autocommit;
提交
Mysql> commit;
从表 t1 中删除了一条记录
Mysql> delete from t1 where id =11;
此时做一个 p1 还原点
Mysql> savepoint p1;
再次从表 t1 中删除一条记录
Mysql> delete from t1 where id =10;
再次做一个 p2 还原点
Mysql> savepoint p2;
此时恢复到 p1 还原点,当然后面 p2 这些还原点自动失效
Mysql> rollback to p1;
退回到最原始的还原点
Mysql>roolback; - Mysql 存储 (批量处理)
例子:创建存储 P1, 创建 100 个用户;
Mysql> \d // 执行 “;” 临时替换为 “//”
Mysql> create proceduce p1()
->begin
->set @i=1;
->while @i<100 do
->insert into t1(name) value(concat("user",@i));
->set @i=@i+1;
->end while;
->end//
Mysql> \d ;
查看存储
Mysql> show procedure status\G
Mysql> show create procedure p1\G
执行
Mysql> call p1(); - Mysql 触发器
修改 delimiter 为 //
Mysql> \d //
例子:创建触发器 tg1,当向 t1 表插入数据时,t2 表也被插入数据
Mysql> create trigger tg1 before insert on t1 for each row
->begin
->insert into t2(name) values(new.name);
->end//
Mysql> \d ;
查看触发器
Mysql> show triggers;
删除触发器
Mysql> drop trigger tg1;
创建触发器 tg2,当向 t1 表删除数据时,t2 表也被删除数据
Mysql> create trigger tg2 before delete on t1 for each row
->begin
->delete from t2 where name=old.name;
->end//创建触发器 tg3,当向 t1 表更新数据时,t2 表也被更新数据
Mysql> create trigger tg3 before update on t1 for each row
->begin
->update t2 set name=new.name where name=old.name;
->end// - 重排 auto_increment
Mysql 数据库自动增长的 ID 恢复重新排序
Mysql> alter table tablename auto_increment = 1;Other:
联合查询
Mysql> select * from t1 union select *from t2
快速删除
Mysql> truncate table tablename;
Mysql 操作技巧的更多相关文章
- (转)防止人为误操作MySQL数据库技巧一例
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://oldboy.blog.51cto.com/2561410/1321061 防止人 ...
- 您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧
转载至: http://www.cnblogs.com/Imaigne/p/4153397.html 您的项目引用了最新实体框架:但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mys ...
- mysql操作1
一.连接MYSQL.格式: mysql -h主机地址 -u用户名 -p用户密码1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root - ...
- 用Excel做出比肩任务管理软件的操作技巧
用Excel做出比肩任务管理软件的操作技巧 在项目管理中,网上有各种各样的工具可以选择,到底用哪个,曾一度困扰着我.我是一个有轻度强迫症的人,总是喜欢试用各种各样的系统,以比较他们之间的不同,试图选择 ...
- Mysql操作初级
Mysql操作初级 本节内容 数据库概述 数据库安装 数据库操作 数据表操作 表内容操作 1.数据库概述 数据库管理系统叫做DBMS 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建 ...
- python学习道路(day12note)(mysql操作,python链接mysql,redis)
1,针对mysql操作 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 设置密码 update user set password ...
- 学习笔记:MySQL操作初步
对数据库的操作:SQL语言 一:SQL:Structured Query Language,结构化查询语言! 二:DDL:Data Definition Language,数据定义语言 三:DML:D ...
- ecshop的Mysql操作类
摘要,这是直接摘抄的ecshop的mysql操作类:不过他这里的缓存是用的文件缓存,我们如果想直接使用,可以替换成memcache的或者redis的! <?php /** * ECSHOP MY ...
- MySQL常用技巧
1.查看MySQL版本信息: 1,登上 mysql>status; 2,登上 mysql>select version(); 3,登上 mysql> select @@version ...
随机推荐
- eclipse、myeclipse写类时,自动生成注释
在类的上边/**+enter自动生成注释. 设置方法:Window--Prefences--Java--Code Style--Code Templates--Comments--Types--Edi ...
- IBM的淘汰之路
BM曾经在计算领域独领风骚,但是90年被PC产业链上的微软.英特尔等厂商围殴,遭遇最严重的危机; 今天在云计算市场,IBM曾在遭遇同样的危机,这一次不知道它能否安然度过; IBM收购红帽转向混合云,是 ...
- Python_面向对象_单例模式
class A(object): pass a1 = A() a2 = A() print(a1 == a2)print(id(a1))print(id(a2)) 结果: False 23257231 ...
- 课程存储校对:程序设计思想、源程序代码、运行结果截图,以及开发过程中的项目计划日志、时间记录日志、缺陷记录日志(PSP0级记录)。
1.程序设计思想 ⑴将JDBC驱动jar包导入到WEB-INF的lib文件夹下 ⑵建立数据库,在数据库中建表,分别将课程名称.任课教师及上课地点录入到列中 ⑶首先写出加载驱动.关闭资源的工具类和异常处 ...
- Java面试题详解一:面向对象三大特性
一,多态:1.面向对象四大基本特性:抽象,封装,继承,多态抽象,封装,继承是多态的基础.多态是抽象,封装,继承的表现.2.什么是多态不同类的对象对同一消息作出不同的响应叫做多态3.多态的作用简单来说: ...
- 使用redis限制ip访问次数
策略1: 在redis中保存一个count值(int),key为user:$ip,value为该ip访问的次数,第一次设置key的时候,设置expires. count加1之前,判断是否key是否存在 ...
- linux如何查看所有的用户(user)、用户组(group)、密码(password/passwd)
linux如何查看所有的用户和组信息_百度经验https://jingyan.baidu.com/article/a681b0de159b093b184346a7.html linux添加用户.用户组 ...
- jdk环境变量配置注意事项
cmd 运行java -version 显示错误 Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'has ...
- python3 Tkinter GUI 试水
from tkinter import * #导入tkinter下所有包,用于GUI开发#窗口创建tk=Tk()cans=Canvas(tk,width=400,height=400)#定义窗口规格c ...
- [转帖]批处理-For详解
批处理-For详解 https://www.cnblogs.com/DswCnblog/p/5435300.html for 循环的写法 感觉非常好. 今天下午的时候简单测试了下. 多学习提高 非常重 ...