数据库主键

mysql第二天

喜你入骨 提交于 2019-11-30 11:12:43
复习 """ 1、数据库导入 文件存储数据、多个文件放在一个文件夹中统一管理、管理的系统 2、数据库的分类 关系非关系:mysql | redis 硬盘内存:mysql | redis sql与nosql:mysql | redis 3、mysql安装与使用 数据库的基本操作:create、show、use、drop 表的基本操作:create、show、desc、drop 记录的基本操作:insert into、delete from、update set、select from """ 今日内容 """ 1、数据库与表的剩余操作 编码配置、引擎介绍 2、数据库字段的操作 3、数据库的数据类型 4、数据库字段的约束条件 """ 数据库配置 # 通过配置文件统一配置的目的:统一管理 服务端(mysqld) 、客户端(client) # 配置了 mysqld(服务端) 的编码为utf8,那么再创建的数据库,默认编码都采用utf8 # 配置流程 # 1)在mysql安装根目录下,创建配置文件:my.ini # mac下配置文件名叫 my.cnf # 2)设置配置文件内容并保存 [mysqld] # 服务器配置 port=3306 # 可以修改数据库默认端口(如果数据库端口被其他软件占用) character-set-server=utf8 # 编码格式 collation-server

数据库索引的所用,有点和缺点

时间秒杀一切 提交于 2019-11-30 11:01:13
为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。 第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点, 但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。 第一,创建索引和维护索引要耗费时间,这种时间随着数据 量的增加而增加。 第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。 第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列 上创建索引,例如: 在经常需要搜索的列上,可以加快搜索的速度;

IndexDB

旧街凉风 提交于 2019-11-30 09:44:11
参考:http://www.ruanyifeng.com/blog/2018/07/indexeddb.html cookie localStorage IndexedDB 大小 不超过4KB 2.5MB-10MB 存储大量数据(不少于250MB) 区别 每次请求都会发送回服务器 不提供搜索功能,不能建立自定义的索引 提供查找接口,还能建立索引 同步 异步 特点: 1)IndexedDB 不属于关系型数据库(不支持 SQL 查询语句) 2) 键值对储存 所有类型的数据都可以直接存入,包括 JavaScript 对象。 3) 异步 防止大量数据的读写,拖慢网页的表现。 4) 支持事务 (transaction) 这意味着一系列操作步骤之中,只要有一步失败,整个事务就都取消,数据库回滚到事务发生之前的状态,不存在只改写一部分数据的情况。 5) 同源限制 IndexedDB 受到同源限制,每一个数据库对应创建它的域名。网页只能访问自身域名下的数据库,而不能访问跨域的数据库。 6) 支持二进制储存。 IndexedDB 不仅可以储存字符串,还可以储存二进制数据(ArrayBuffer 对象和 Blob 对象) 一、API(indexDB各种对象接口) 数据库:IDBDatabase 对象 对象仓库:IDBObjectStore 对象 索引: IDBIndex 对象 事务:

MySQL—06—数据库三大范式

拟墨画扇 提交于 2019-11-30 09:43:01
第一范式: 确保每一列的原子性;每一列不能在拆分为两列; 第二范式: 表格中每一列都应和主键相关, 而不能和主键的某一部分相关; 解决: 第二范式主要是用来限制多对多的关系; 我们可以建立多个表, 把一个多对多的表变成两个一对多的表; 再引入一个中间表, 中间表是另外两个表的主键; 第三范式: 属性不能依赖其他非主属性; 解决:第三范式主要用来限制一对多的关系; 我们可以在从表中建立一个外键, 来引用主键中的信息; 来源: https://www.cnblogs.com/EricShen/p/11577053.html

MySQL—05—MySQL如何处理SQL语句;MySQL数据库存储引擎介绍;

孤街浪徒 提交于 2019-11-30 09:40:30
一、 MySQL 中的执行计划 1 MySQL 执行计划 在 MySQL 中可以通过 explain 关键字模拟优化器,执行 SQL 语句,从而知道 MySQL 是 如何处理 SQL 语句的。 2 MySQL 整个查询执行过程 • 客户端向 MySQL 服务器发送一条查询请求 • 服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段 • 服务器进行 SQL 解析、预处理、再由优化器生成对应的执行计划 • MySQL 根据执行计划,调用存储引擎的 API 来执行查询 • 将结果返回给客户端,同时缓存查询结果 3 启动执行计划 EXPLAIN SELECT 投影列 FROM 表名 WHERE 条件 4 EXPLAIN 列的解释 4.1ID 查询执行顺序: id 值相同时表示从上向下执行 id 值相同被视为一组 如果是子查询,id 值会递增,id 值越高,优先级越高 4.2select_type simple: 表示查询中不包含子查询或者 union primary: 当查询中包含任何复杂的子部分,最外层的查询被标记成 primary derived: 在 from 的列表中包含的子查询被标记成 derived subquery: 在 select 或 where 列表中包含了子查询,则子查询被标记成 subquery union: 两个 select

9.23 数据库相关内容

点点圈 提交于 2019-11-30 09:23:04
目录 9.23 数据库相关内容 数据库配置 数据库修改信息 用户操作:重点 表的修改 创建表的完整语法 数据库表的引擎:驱动数据的方式 - 数据库优化 数据库的模式 mysql支持的数据类型 约束 9.23 数据库相关内容 数据库配置 # 通过配置文件统一配置的目的:统一管理 服务端(mysqld) 、客户端(client) # 配置了 mysqld(服务端) 的编码为utf8,那么再创建的数据库,默认编码都采用utf8 # 配置流程 # 1)在mysql安装根目录下,创建配置文件:my.ini # mac下配置文件名叫 my.cnf # 2)设置配置文件内容并保存 [mysqld] # 服务器配置 port=3306 # 可以修改数据库默认端口(如果数据库端口被其他软件占用) character-set-server=utf8 # 编码格式 collation-server=utf8_general_ci # 排序方式(默认跟编码格式走) [client] # mysql自己的客户端叫[mysql],配置[client]即配置了[mysql],也配置了其他存在方式的客户端,比如Navicat可视化客户端 default-character-set=utf8 # 编码格式 # 3)重启数据库服务 数据库修改信息 # 修改字符编码 mysql>: alter database

day42

ぃ、小莉子 提交于 2019-11-30 08:21:39
今日内容 """ 1、数据库与表的剩余操作 编码配置、引擎介绍 2、数据库字段的操作 3、数据库的数据类型 4、数据库字段的约束条件 """ 数据库配置 # 通过配置文件统一配置的目的:统一管理 服务端(mysqld) 、客户端(client) # 配置了 mysqld(服务端) 的编码为utf8,那么再创建的数据库,默认编码都采用utf8 # 配置流程 # 1)在mysql安装根目录下,创建配置文件:my.ini # mac下配置文件名叫 my.cnf # 2)设置配置文件内容并保存 [mysqld] # 服务器配置 port=3306 # 可以修改数据库默认端口(如果数据库端口被其他软件占用) character-set-server=utf8 # 编码格式 collation-server=utf8_general_ci # 排序方式(默认跟编码格式走) [client] # mysql自己的客户端叫[mysql],配置[client]即配置了[mysql],也配置了其他存在方式的客户端,比如Navicat可视化客户端 default-character-set=utf8 # 编码格式 # 3)重启数据库服务 数据库修改信息 # 修改字符编码 mysql>: alter database 数据库名 charset=编码格式; 用户操作:重点 # 为特定的数据库分配有该数据库

day42 数据库基本操作

可紊 提交于 2019-11-30 07:58:46
目录 复习 今日内容 一、数据库配置 二、数据库修改信息 三、用户操作:重点 四、表的修改 五、创建表的完整语法 六、数据库表的引擎:驱动数据的方式 - 数据库优化 七、数据库的模式 八、mysql支持的数据类型 九、约束 复习 """ 1、数据库导入 文件存储数据、多个文件放在一个文件夹中统一管理、管理的系统 2、数据库的分类 关系非关系:mysql | redis 硬盘内存:mysql | redis sql与nosql:mysql | redis 3、mysql安装与使用 数据库的基本操作:create、show、use、drop 表的基本操作:create、show、desc、drop 记录的基本操作:insert into、delete from、update set、select from """ 今日内容 """ 1、数据库与表的剩余操作 编码配置、引擎介绍 2、数据库字段的操作 3、数据库的数据类型 4、数据库字段的约束条件 """ 一、数据库配置 # 通过配置文件统一配置的目的:统一管理 服务端(mysqld) 、客户端(client) # 配置了 mysqld(服务端) 的编码为utf8,那么再创建的数据库,默认编码都采用utf8 # 配置流程 # 1)在mysql安装根目录下,创建配置文件:my.ini # mac下配置文件名叫 my.cnf # 2

五:约束

不羁岁月 提交于 2019-11-30 07:16:36
1.约束 为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效。 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL 使用0填充 1. 是否允许为空,默认NULL.可设置NOT NULL,字段不允许为空,必须赋值 2. 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值 sex enum('male','female') not null default 'male' age int unsigned NOT NULL default 20 必须为正值(无符号) 不允许为空 默认是20 3. 是否是key 主键 primary key 外键 foreign key 索引 (index

数据库基础

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-30 06:36:01
数据库 MySQL初步 MySQL基础认知 (Oracle真的是走哪祸害到哪23333) Java多用MySQL和Oracle SQLServer也收费,但是还行,比Oracle便宜,一个差不多3w多 SQLite被嵌入到了安卓系统中,主要用于安卓开发,是完全免费的 关于MySQL收费的问题,这篇文章说的很透: 你使用开源软件并不受GPL约束,只有在你基于开源软件,修改开源软件的源码的时候才受 GPL约束。MySQL作为一个开源数据库,几乎所有的用户都只是通过自己的程序去操作这个数据库,不涉及到改动源码的问题,根本不用去考虑是否要遵循 GPL的问题。只有在你修改MySQL源码的情况下,才需要考虑GPL。 如果你只是使用MySQL而不是改写MySQL,那么在这些情况下你应该考虑购买Oracle的商业版本,一是Oracle的商用版本提供的附加组件(监控器、备份工具等)对你有价值,二是Oracle的年度技术支持是你需要的,三是各种潜规则。而不应该是你想合法的使用MySQL才去购买其商业版本。另外,如果你是基于MySQL的源码开发你自己的产品,那么你需要购买的是商业授权,而不是subscription这些商业版本。 除了以上情况,使用社区版就好 关闭服务需要使用管理员权限 服务器无法连接时,要检查服务是否正常开始了 登录MySQL: mysql -uroot -proot /