mysql修改字段类型

让你的sql开启氮气加速

我的梦境 提交于 2019-12-03 11:17:11
事情的过程是:公司有一个上百行的sql 运行在MySQL数据库,速度奇慢无比,逻辑乱七八糟,我就不贴出来了,经过这次修改想总结一下如何写一个不被人骂的sql。 说一些被人诟病的问题: 一、子查询   把你的子查询全部改为 join!!! 把你的子查询全部改为 join!!! 把你的子查询全部改为 join!!! 不要搞子查询,因为子查询的速度真的很慢。 把你用到的表先准备出来,找好关联关系做成 left join 或者 inner join 别问我为什么不用 right join mysql里面没有啊~ 二、没索引    几个必须加索引的地方:   1.主键自动建立唯一索引   2. 频繁作为where条件语句查询的字段   3. 关联字段需要建立索引,比如join表 on的字段   4. 排序字段可以建立索引   5. 分组字段可以建立索引,因为分组的前提是排序   6. 统计字段,聚合函数 可以建立索引,例如count(),max()    当然索引也不是哪都合适的:   1.频繁更新的字段不适合建立索引   2.where条件中用不到的字段不适合建立索引   3.表数据可以确定比较少的不需要建索引 少于1000条   4.数据重复且发布比较均匀的的字段不适合建索引(唯一性太差的字段不适合建立索引),例如性别,状态   5. 参与列计算的列不适合建索引    索引什么时候会失效

数据库设计中一对一、多对一、多对多关系依据外键的实现条件及方法

▼魔方 西西 提交于 2019-12-03 11:13:51
作者:二歪求知iSk2y 链接:https://www.jianshu.com/p/2b27c7ba0653 来源:简书 下面以departments和staff_info表为例(为staff_info添加指向departments的外键) 一个表的字段作为外键的条件: 列值必须非空且唯一测试例子如下: mysql> create table departments (dep_id int(4),dep_name varchar(11)); Query OK, 0 rows affected (0.02 sec) mysql> desc departments; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | dep_id | int(4) | YES | | NULL | | | dep_name | varchar(11) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ rows in set

day36 学习小结

半世苍凉 提交于 2019-12-03 10:10:25
目录 一、python操作mysql 1. pymysql的安装 2. sql注入问题 3. 连接 4. 增 5. 查 6. 改 7. 删 二、索引 1. 为啥使用索引以及索引的作用 2. 索引的本质 3. 索引的底层原理 4. 索引的种类 5. 索引的创建与删除 5.1 创建主键索引 5.2 删除主键索引 5.3 创建唯一索引 5.4 删除唯一索引 5.5 创建普通索引 5.6 删除普通索引 6. 索引的优缺点 7. 不会命中索引的情况 三、慢查询日志 1. 查看慢sql的相关变量 2. 配置慢sql的变量 一、python操作mysql 1. pymysql的安装 pip install pymysql 2. sql注入问题 产生的原因 因为过于相信用户输入的内容,根本没有做任何的检验 解决的方法 sql = "select * from user where 字段1=%s and 字段2=%s" cursor.execute(sql, (值1, 值2)) 3. 连接 ### 连接数据库的参数 conn=pymysql.connect(host='localhost',user='root',password='123qwe',database='test',charset='utf8') # cursor = conn.cursor() ### 默认返回的值是元祖类型

mysql总复习

喜你入骨 提交于 2019-12-03 10:08:00
目录 数据库操作 库操作 表操作 数据行操作 表关系操作 单表操作 外键创建 多表联查 pymysql模块 索引 主键索引 唯一索引 普通索引 数据库操作 库操作 create database 库名 charset utf8; //创建表 show databases; //查看所有库 show create database 库名; // 查看创建库的语句 select database(); //查看当前的数据库 use 库名; //使用数据库 drop database 库名; //删除库 alter database 库名 charset utf8; //更改库字符编码 表操作 // 创建表 create table t1 ( id int primary key, name varchar(32) ) charset utf8; // 修改表名 alter table t1 rename t11; // 添加字段 alter table 表名 add 字段名 列类型 ; alter table 表名 add 字段名 列类型 first; alter table 表名 add 字段名 列类型 after 字段; // 修改字段名 alter table 表名 change 旧字段名 新字段名 数据类型; //修改字段属性 alter table 表名 modify 字段名

java-day20

浪子不回头ぞ 提交于 2019-12-03 07:32:28
注解:说明程序的,给计算机看的 注释:用文字描述程序的,给程序员看的 定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性、与类、接口、枚举是在同一个层次,它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 作用分类:    ①编写文档:通过代码里标识的注解生成文档【生成文档doc文档】 ②代码分析:通过代码里标识的注解对代码进行分析【使用反射】 ③编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】 JDK中预定义的一些注解 @Override:检测被该注解标注的方法是否是继承自父类(接口)的 @Deprecated:该注解标注的内容,表示已过时 @SuppressWarnings:压制警告 一般传递参数all @SuppressWarnings("all") 自定义注解   格式:     元注解     public @interface 注解名称{       属性列表;     } * 本质:注解本质上就是一个接口,该接口默认继承Annotation接口 * public interface MyAnno extends java.lang.annotation.Annotation {} 属性:接口中的抽象方法   要求:     1

mysql比较常用到的一些操作

守給你的承諾、 提交于 2019-12-03 07:11:28
1.新建数据库 create database 数据库名; 2.选中数据库 user 数据库名; 3.导出某张表数据 在服务器界面如: root@iXZj9XZ:~# 执行:mysqldump -u 用户名 -p 数据库名 数据表名 > 导出的文件名和路径 4.查看数据库表有哪些索引 show index from 数据库表名; 5.给某张表添加索引 ALTER TABLE table_name ADD INDEX 索引名称 (要添加索引的列) 6.给某张表添加字段 ALTER TABLE 数据库表名 ADD 添加的字段名称 添加的字段类型(长度); 7.修改某张表的字段类型和长度 alter table 数据库表名 modify column 修改的字段名 修改的类型(长度) 8.查询数据库中运行速度较慢的sql语句 show full processlist; 来源: https://www.cnblogs.com/lswzt/p/11782461.html

MySQL操作(三)数据表

为君一笑 提交于 2019-12-03 06:33:13
一、创建数据表 方式1 CREATE TABLE IF NOT EXISTS user( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT, sex TINYINT NOT NULL DEFAULT 0 )ENGINE=MyISAM DEFAULT CHARSET=utf8; 方式2 --1、 创建一个临时的新表,首先复制旧表的结构(包含索引) CREATE TABLE new_table LIKE old_table; -- 2、把旧表的数据复制过来 INSERT INTO new_table(filed1,filed2…) SELECT filed1,filed2,… FROM old_table; 二、删除数据表 DROP TABLE IF EXISTS user; -- 删除表中所有的数据 DELETE FROM ebn_roomsms; -- 删除表中指定条件的数据(带条件的删除都不是真删除,数据库文件大小没有变化,需加第二条命令) DELETE FROM `dh_user` where id > 15; OPTIMIZE TABLE dh_user; 三、表数据操作 1、添加数据 -- 1、插入单条 INSERT INTO user(id,name,sex,age)values(null,

MySQL的数据类型

随声附和 提交于 2019-12-03 05:15:29
一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。 扩展后增加了TINYINT,MEDIUMINT,BIGINT这3种长度不同的整形,并增加了BIT类型,用来存放位数据。 整数类型 字节 范围(有符号) 范围(无符号) 用途 TINYINT 1字节 (-128,127) (0,255) 小整数值 SMALLINT 2字节 (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值 INT或INTEGER 4字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值 BIGINT 8字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值 FLOAT 4字节 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3

1031 回顾

会有一股神秘感。 提交于 2019-12-03 05:13:25
目录 pymysql 介绍 安装 连接 执行 查 增删改 sql注入 原因 解决的方式 csrf攻击 索引 索引的作用 类比:字典中的目录 底层采用的数据结构 索引本质 索引的分类 主键索引 唯一索引 普通索引 联合(组合)索引 索引命中 explain 慢日志 查询 tee pymysql 介绍 python操作mysql的模块 安装 pip install pymysql 连接 import conn = pymysql conn = pymysql.connect(host= 主机名,user = 用户名, password = 密码,database = 数据库名) cursor = conn.cursor() // 返回的是元组中套元组 cursor = conn.cursor(cursor=pymysql.cursors.dictcursor) // 返回的是列表中套字典 执行 执行sql语句 cursor.execupt(sql) 查 fetchcall() :获取多个,返回 列表套字典 fetchone() :获取一个,返回 字典 fetchmany(size) :获取指定数量,返回 列表套字典 增删改 sql='' cursor.execute(sql,(1,2,3)) // 添加1个 cursor.executemany(sql,[(1,2,3),(1,2,3)

小组分享

不羁岁月 提交于 2019-12-03 04:59:26
操作数据库 增 create database 数据库名称 charset utf8; 命名规范: 可以由字母、数字、下划线、@、$ 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数字 最长128位 删 drop database 数据库名称; 改 删除再添加 如果数据库中有数据的话,直接drop会导致数据库中的数据丢失 在线上环境,不能直接删除数据,在删除之前,需要进行备份 alter database db1 charset utf8; 查 show databases;有哪些数据库 +--------------------+ | Database | +--------------------+ | information_schema | | f | | feng | | mysql | | performance_schema | | test | +--------------------+ show create database 数据库名; +----------+-----------------------------------------------------------------+ | Database | Create Database | +----------+--------------------------