mysql修改字段类型

二十三、mysql索引管理详解

…衆ロ難τιáo~ 提交于 2019-12-03 04:47:00
一、索引分类   分为 聚集索引 和 非聚集索引 。   聚集索引     每个表有且一定会有一个聚集索引,整个表的数据存储在聚集索引中,mysql索引是采用B+树结构保存在文件中,叶子节点存储主键的值以及对应记录的数据,非叶子节点不存储记录的数据,只存储主键的值。当表中未指定主键时,mysql内部会自动给每条记录添加一个隐藏的rowid字段(默认4个字节)作为主键,用rowid构建聚集索引。     聚集索引在mysql中又叫 主键索引 。   非聚集索引(辅助索引)     也是b+树结构,不过有一点和聚集索引不同,非聚集索引叶子节点存储字段(索引字段)的值以及对应记录主键的值,其他节点只存储字段的值(索引字段)。     每个表可以有多个非聚集索引。     mysql中非聚集索引分为     单列索引 即一个索引只包含一个列。     多列索引(又称复合索引) 即一个索引包含多个列。     唯一索引 索引列的值必须唯一,允许有一个空值。   数据检索的过程           左边为innoDB( 聚簇 )表分布         上面的表中有2个索引:id作为主键索引,name作为辅助索引。     innodb我们用的最多,我们只看图中左边的innodb中数据检索过程:     如果需要查询id=14的数据,只需要在左边的主键索引中检索就可以了。    

2019.10.9php进阶

人走茶凉 提交于 2019-12-03 01:26:51
<?php header("Content-type:text/html;charset:utf-8"); if ($_FILES["file"]["error"]>0) { echo $_FILES["file"]["error"]."<br>"; } else { echo " 文件名 :".$_FILES["file"]["name"]."<br>"; echo " 类型 :".$_FILES["file"]["type"]."<br>"; echo " 大小 :".$_FILES["file"]["size"]."<br>"; echo " 临时位置 :".$_FILES["file"]["tmp_name"]."<br>";} echo " 文件后缀名 :".@end(explode(".",$_FILES["file"]["name"])); ?> explode( 标识 , 字符串 ), 按照标识将字符串分割为数组 explode(".","test.te.png") == array("test","te","png"); end( 数组 ) 取出数组中最后一个值 . 上传文件完整代码 html: <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> </head> <body>

常见变量和约束(五)

匿名 (未验证) 提交于 2019-12-02 23:48:02
字节范围 特点: ①都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号 ②如果超出了范围,会报out or range异常,插入临界值 ③长度可以不指定,默认会有一个长度 长度代表显示的最大宽度,如果不够则左边用0填充,但需要搭配zerofill,并且默认变为无符号整型 定点数:decimal(M,D) 浮点数: float(M,D) 4 double(M,D) 8 字节范围 特点: ①M代表整数部位+小数部位的个数,D代表小数部位 ②如果超出范围,则报out or range异常,并且插入临界值 ③M和D都可以省略,但对于定点数,M默认为10,D默认为0 ④如果精度要求较高,则优先考虑使用定点数 char、varchar、binary、varbinary、enum、set、text、blob char 固定长度的字符,写法为char(M),最大长度不能超过M,其中M可以省略,默认为1 varchar 可变长度的字符,写法为varchar(M),最大长度不能超过M,其中M不可以省略 Enum 说明:又称为枚举类型哦,要求插入的值必须属于列表中指定的值之一。 如果列表成员为1~255,则需要1个字节存储 如果列表成员为255~65535,则需要2个字节存储 最多需要65535个成员! set 说明:和Enum类型类似,里面可以保存0~64个成员

SQL优化

匿名 (未验证) 提交于 2019-12-02 23:38:02
对表的设计合理化(符合3NF) 添加适当的索引(index)[普通索引,主键索引,唯一索引,全文索引] 分表技术(水平分割,垂直分割) 读写(update/delete/add)分离 存储过程(模块化编程) 对MySQL配置优化(配置最大并发数 my.ini , 调整缓存大小) MySQL服务器硬件升级 定时清除不需要的数据,定时进行碎片整理 1NF:对属性的原子性约束,即表的列具有原子性,不可再分解。 2NF:表中的记录是唯一的,实体属性完全依赖于主键,每张表只描述一件事情。 3NF:表中不能有冗余数据,任何非主属性不依赖于其他非主属性,从表的外键必须使用主表的主键。 反三范式:某些业务场景下,为了提高效率,可能会适当降低范式标准,增加字段,允许冗余。 主键索引:当一张表把某个列设为主键的时候,该列就是主键索引 普通索引:一般先创建表,再创建普通索引 create index 索引名 on 表(列) alter table 表名 add index 索引名 (列) 全文索引:全文索引主要针对文件,文本的检索,比如文章,全文索引只针对myisam引擎有效 create table test ( )engine=myisam charset utf-8; 使用全文索引: select * from test where match(xxx,yyy) against('aaa');

python数据库基础

匿名 (未验证) 提交于 2019-12-02 22:51:30
1.数据类型:(使用原则:够用就行,尽量使用范围小的) 整数:int,bit 小数:decimal 字符串:varchar(可变长度),char(固定长度字符串) 日期时间:date,time,datetime 枚举类型(enum) 特别说明2.约束(限制)主要: 主键primary key:物理存储的顺序 非空 not null 不允许填写空格 唯一 unique:不允许重复 默认default:数据项的默认值 外键 foreign key:存储其他表的主键的字段其他: unsigned 无符号 auto increment 自增4.常用术语: 数据库: 数据库是一些关联表的集合。 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。 外键:外键用于关联两个表。 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。 参照完整性:

Mysql支持的数据类型(总结)

北慕城南 提交于 2019-12-02 22:14:20
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://mrxiong.blog.51cto.com/287318/1651098 一.数值类型 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

MySQL/MariaDB基础

匿名 (未验证) 提交于 2019-12-02 22:06:11
数据库管理系统很早就有了,在最开始时,数据库管理的结构是层次化的,即层次模型,它是一个树形结构,可以通过有限次的查找来定位需要的数据,然而,这种查找还是需要遍历才能实现,所以这种模型应用时间不长久;之后有了网状模型,也就是多个树的集合;层次模型和网状模型都称为非关系型数据库。之后由Edgar Frank Codd提出了一个关系型数据库的模型,从此之后就有了关系模型,其中Oracle公司就是以此为原型开发了Oracle数据库;到现在又提出了反关系模型――No-SQL,它是非关系型的数据库,例如:键值对存储(memcached,redis),HBASE文档数据库等; 大致来讲数据库管理系统发展历程就是: 层次模型 --> 网状模型 --> 关系模型 --> No-SQL 这里我们主要来说说关系型数据库: 1.表 对于关系型数据库而言,最基本的数据管理单位为表,也称为二维表,一个表是由行跟列组成的: 行(row):实例实体,记录,记录数据的特征;(例如:某学生的成绩信息;); 列(column):字段,域;记录数据的某种属性;(例如:默认的身高;) 其中,任何一张RDBMS的表中,可以没有行,但至少要保证要有一列;否则它就不是表,也存储不了数据; 对表的操作是通过关系运算完成的: 选择:从指定表中检索符合条件的行; SELECT * FROM tbl_name WHERE clause;

Mysql基础2-数据定义语言DDL

匿名 (未验证) 提交于 2019-12-02 22:06:11
数据库操作语句 数据表操作语句 视图定义语句 数据库表设计原则    数据库操作语句   创建库    create database dbname [charset 字符编码] [collate 排序规则]; 如: create database db charset utf8 collate utf8_general_ci;   查询库   1   2)   3) 显示所有数据库:   4) 显示一个数据库的创建语句:   删除库   4) drop database [if exists] 数据库名 drop database if exists db;   5) 修改数据库(只能修改数据库的选项): alter database 数据库名 charset 新的编码 collate 新的排序规则     数据库修改只能修改: 修改编码,修改排序规则   选择库   8) 选择数据库: use dbname; 表操作语句   基本形式: -- 形式1: create table [if not exists] 表名 (字段列表[, 索引或约束列表])[表选项] -- 形式2: create table [if not exists] 表名 (字段1, 字段2, ..... [, 索引1, 索引2,...., 约束1, 约束2, ......])       字段属性    

MySQL命令大全(值得一看)

匿名 (未验证) 提交于 2019-12-02 22:06:11
1、连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1、连接到本机上的MYSQL。 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql> 2、连接到远程主机上的MYSQL。 假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令: mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样) 3、退出MYSQL命令 : exit (回车) 2、修改密码 格式:mysqladmin -u用户名 -p旧密码 password 新密码 1、给root加个密码ab12。 首先在DOS下进入目录mysql\bin,然后键入以下命令 mysqladmin -u root -password ab12 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 2、再将root的密码改为djg345。 mysqladmin -u root -p ab12 password

MySQL基础操作

匿名 (未验证) 提交于 2019-12-02 22:06:11
DDL: 一、创建数据库 create database 数据库名字; 二、删除数据库 drop database 数据库名字; 三、使用数据库 use 数据库名字; 用show tables;展示数据库中的表。 四、创建表 create table 表名(变量名1 变量类型1(约束条件), 变量名2 变量类型2(约束条件), …… 变量名n 变量类型n(约束条件)); desc 表名;(简略查看表信息) show create table emp \G;(详细查看表信息) 五、删除表 drop table 表名; 六、修改表 (1)修改表字段类型 alter table 表名 modify 字段名 字段类型; (2)修改表字段 alter table 表名 add column 字段名 字段类型; (3)删除表字段 alter table 表名 drop column 字段名; (4)修改字段名 alter table 表名 change 原字段名 目标字段名 目标字段类型 (5)修改字段排列顺序 alter table 表名 add 字段名 字段类型 after 字段名; 放在最前面: alter table 表名 modify 字段名 字段类型 first; (6)修改表名 alter table 表名 rename 目标表名; DML: (1)插入记录 insert