MySQL后记
MySQL后记
这篇博客的目的是记录一些容易被忽略的MySQL的知识点,以及部分pymysql模块的注意点。
MySQL中的DDL与DML
- DDL:数据定义语言(Data Definition Language),主要为create、alter、drop、truncate语句。
- DML:数据操控语言(Data Manipulation Language),包括:insert、update、delete。注意,select语句属于DQL(Data Query Language)。
这两个是我们接触最多的sql语言,除此之外还有数据控制语言(DCL)和事务控制语言(TCL),对于事务来说,DDL语句是立刻执行、无法回滚(rollback)的,DML只有提交(commit)了才会生效。
被忽略的“if not exists”
现在有一个sql脚本,里面的部分建表语句我们已经执行过了该怎么办呢?
# 可以使用以下语句忽略已经建好的表
create table `tablename` if not exists (fields) ;
# 若是已经存在,会有一条warning
show warnings;
不过这样的语句在pymysql模块中会抛错。
处理重复数据
在我们实际项目中很可能会遇到很多的重复数据,那么我们如何处理这些重复数据呢?
忽略:
insert ignore into `tablename` values(...);
替换:
raplace into ...; """
这样做实际上会有两条记录受影响
1: 先删除原有数据
2:再插入后来的数据
"""
更新:
insert into t1 (a,b,c) values (1,2,3) on duplicate key update c=c+1; # 等同于
update t1 set c=c+1 where a=1;
# 如果b也是唯一的
update t1 set c=c+1 where a=1 or b=2 limit 1;
mysql8的更新
无法在赋与权限的同时创建用户了!
# 8.0之前:
grant 权限们 on 数据库名.表名 to 用户名@主机名 identified by '密码'; # 8.0后 无法一步完成了
create user 用户名@主机名 identified by '密码';
grant 权限们 on 数据库名.表名 to 用户名@主机名 with grant option;
以后将取消
float(M,D)以及double(M,D)语法。以后将取消浮点型的
auto_incremen设置。不推荐使用
zerofill。
补充:rlike等同于regexp
MySQL后记的更多相关文章
- MySql新版本安装配置
版本:mysql-5.7.16-winx64 平台Windows 7 x64 1.进入mysql主目录(建议将其移到C或D盘的根目录,并改名为mysql) 2.配置path环境变量(如D:\JAVA\ ...
- MYSQL注入天书之后记
后记 对于工具的看法: 我之所以在每个例子中只写了几个示例,是因为我希望你能通过这一两个示例举一反三将其他的列出来.如果让我来完成每一次完整的注入,应该在知道原理的情况下,必然使用工具或者自己写代码实 ...
- 连接数从异常到 300 到 5(RDS MySQL 的一个大坑•后记)
在 <记 RDS MySQL 的一个大坑> 中,我提到遇到 User juxxxxxxxxxx already has more than 'max_user_connections' a ...
- mysql join 和left join 对于索引的问题
今天遇到一个left join优化的问题,搞了一下午,中间查了不少资料,对MySQL的查询计划还有查询优化有了更进一步的了解,做一个简单的记录: select c.* from hotel_info_ ...
- MySQL 常用命令总结
http://blog.csdn.net/hanxin1987216/article/details/5976860 一.总结 1.Linux系统下启动MySQL的命令: mysqladmin sta ...
- 【转】MySQL索引背后的数据结构及算法原理
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- [转]MySQL索引背后的数据结构及算法原理
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- mysql添加索引命令
创建脚本 1.PRIMARY KEY(主键索引)mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.UNI ...
- mysql 性能优化方案
网 上有不少MySQL 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...
随机推荐
- 链家网 + gevent
import gevent from gevent import monkey monkey.patch_all() from gevent.queue import Queue import tim ...
- java 中有几种类型的流?
字节流,字符流. 字节流继承于 InputStream \ OutputStream, 字符流继承于 InputStreamReader \ OutputStreamWriter. 在 java.io ...
- Ement 学习
<!DOCTYPE html><html lang="en"><head> <meta http-equiv="Content- ...
- BUAA_OO_2020_Unit1_总结博客
BUAA_OO_2020_Unit1_总结 2020年春季学期第四周,OO第一单元落下帷幕,几多欢喜几多愁,现做如下总结(按每次作业的递进顺序) 一.第一次作业(基础的幂函数求导) 基于度量的程序结构 ...
- android中获取其他应用的SharedPreferences
在android中获取其他应用的SharedPreferences,需要其他应用设置的Mode为MODE_WORLD_READABLE或者MODE_WORLD_WRITABLE两种模式.要获取其他应用 ...
- 科学计算:Python 分析数据找问题,并图形化
对于记录的数据,如何用 Python 进行分析.或图形化呢? 本文将介绍 numpy, matplotlib, pandas, scipy 几个包,进行数据分析.与图形化. 准备环境 Python 环 ...
- 【JMeter_03】JMeter GUI操作界面介绍
JMeter主界面主要分为 标题栏.菜单栏.工具栏.测试计划树形目录.内容展示区 标题栏:主要展示JMeter的程序版本.当前脚本的名称.脚本的储存路径 菜单栏:程序基本上所有功能的所属分类目录,基本 ...
- cino伟斯 A770键盘界面快速设定记录后缀删除添加换行回车操作方法
http://www.cinoscan.com/upload/2016063033256485.pdf cino A770键盘界面快速设定记录后缀删除添加换行回车操作方法
- Page "页面路径" has not been registered yet.
网上找了很多方法,但和我遇到的都不一样,我这个页面是我路由接口更改时遇到的错误,原因是我移动了文件,js里引用的文件找不到了 解决方法:更改引用路径即可
- TestNG配合catubuter统计单元测试的代码覆盖率
build-testNG.xml对应的ant脚本为 <?xml version="1.0" encoding="UTF-8"?> <proje ...