mysql创建索引

第四课(难点)

不打扰是莪最后的温柔 提交于 2019-12-05 11:25:40
表的约束 1.主键约束 是通过 PRIMARY KEY 定义的,它可以唯一标识表中的记录,分为单字段主键、多字段主键。 (1)单字段主键指的是有 一个字段构成的主键 , 其基本格式: 字段名 数据类型 PRIMARY KEY; ,执行结果如下: 执行完每一个语句之后,都需要查看数据表,执行结果如下: (2)多字段主键指的是 多个字段组合而成的主键 ,其基本格式: PRIMARY KEY(字段名1,字段名2,......,字段名n); ,执行结果如下: /*每个数据表中最多只能有一个主键约束,定义为PRIMARY KEY的字段不能有重复值且不能为NULL值*/ 2.非空约束指的是字段的值不能为NULL,是通过NOT NULL定义的,其基本格式: 字段名 数据类型 NOT NULL; ,执行结果如下: /*在同一个数据表中可以定义多个非空字段*/ 3.唯一约束用于保证数据表中字段的 唯一性 (即表中字段的值不能重复出现)。唯一约束是通过 UNIQUE 定义的,其基本格式: 字段名 数据类型 UNIQN; ,执行结果如下: 4.默认约束用于给数据表中的字段 指定默认值 ,是通过 DEFAULT 关键字定义的,其基本格式: 字段名 数据类型 DEFAULT 默认值; ,执行结果如下: 在上述中, AUTO_INCREMENT 约束是实现表中插入的新记录自动生成唯一的ID,其字段可以是任何

MySQL学习笔记(1)

橙三吉。 提交于 2019-12-05 11:11:13
数据库概述 关系型数据库 E-R关系图 常见的数据库 MYSQL数据库服务器 MYSQL的SQL语句 登录数据库 数据库的CRUD操作 创建数据库 数据库明明规范 查看数据库 修改数据库的字符集 删除数据库 选择数据库 存储引擎 查看数据库管理系统支持的引擎 第一种 第二种 查询默认存储引擎 修改默认的存储引擎 选择存储引擎 表的CRUD操作 创建表 查看表 更新表 删除表 列的CRUD操作 列的类型 列的约束 设置外键约束 添加列 修改列 删除列 索引 创建索引 普通索引 创建表时创建普通索引 在已经存在的表上创建普通索引 通过SQL语句ALTER TABLE 创建普通索引 唯一索引 创建表时创建唯一索引 在已经存在的表中创建唯一索引 通过SQL语句ALTER TABLE创建唯一索引 全文索引 创建表时创建全文索引 在已经存在的表上创建全文索引 通过SQL语句ALTER TABLE 创建全文索引 多列索引 创建表时创建全文索引 在已经存在的表上创建全文索引 通过SQL语句ALTER TABLE 创建全文索引 删除索引 视图 创建视图 查看视图 查看视图定义信息 DESCRIBEDESC查看视图设计信息 删除视图 修改视图 触发器的操作 创建触发器 创建包含多条执行语句的触发器 查看触发器 删除触发器 数据的操作 插入数据记录 插入单条数据 插入多条数据 插入查询结果 更新数据

一、数据库:mysql 数据库

一世执手 提交于 2019-12-05 10:57:41
一、SQL,不区分大小写 在数据库中进行操作的脚本,称为sql,结构化查询语言,当前关系型数据库都支持使用sql语言进行操作,也就是说可以通过 sql 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库。 sql语句主要分为: 1 DQL:数据查询语言,用于对数据进行查询,如 select 2 DML:数据操作语言,对数据进行增、删、查、改,如 insert 、update 、delete 3 TPL:事物处理语言,对事物进行处理,包括 begin transaction 、commit 、rollback 4 DCL:数据控制语言,进行授权与权限回收,如 grant 、revoke 5 DDL:数据定义语言,进行数据库、表的管理,如 creat 、drop 6 CCL:指针控制语言,通过控制指针完成表的操作,如 declare cursor 对于web程序员来说,重点是数据的增删查改,必须熟练掌握DQL 、DML 、DDL SQL是一门特殊的语言,专门用来操作关系数据库,且不区分大小写 二、mysql 对数据库的相关操作 1、mysql -u root -p 进入mysql操作界面 mysql -h 192.168.126.128 -u root -p 访问该主机地址的mysql 2、查看数据库: show databases; 2

图解Elasticsearch的核心概念

守給你的承諾、 提交于 2019-12-05 09:16:30
本文讲解大纲,分8个核心概念讲解说明: NRT Cluster Node Document&Field Index Type Shard Replica Near Realtime(NRT)近实时 Elasticsearch的核心优势就是(Near Real Time NRT)近乎实时,我们称之为近实时。 NRT有两个意思,下面举例说明下: 从写入索引数据到数据可以被搜索到有一个小延迟(大概1秒); 举个例子:电商平台新上架一个新商品,1秒后用户就可搜索到这个商品信息,这就是近实时。 基于Elasticsearch执行搜索和分析可以达到秒级查询 也举个例子说明,比如我现在想查询我在淘宝,最近一年都买过几件商品,总共花了多少钱,最贵的商品多少钱,哪个月买到东西最多,什么类型的商品买的最多这样的信息,如果淘宝说,你要等待10分钟才能出结果,你是不是很崩溃,这个延迟的时间就不是近实时,如果淘宝可以秒级别返回给你,就是近实时了。 下面画一个图,解释下三个基本概念的 Cluster:集群 包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认是elasticsearch)来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常。集群的目的为了提供高可用和海量数据的存储以及更快的跨节点查询能力。 Node:节点 集群中的一个节点,节点也有一个名称(默认是随机分配的)

图解Elasticsearch的核心概念

百般思念 提交于 2019-12-05 09:15:16
本文讲解大纲,分8个核心概念讲解说明: NRT Cluster Node Document&Field Index Type Shard Replica Near Realtime(NRT)近实时 Elasticsearch的核心优势就是(Near Real Time NRT)近乎实时,我们称之为近实时。 NRT有两个意思,下面举例说明下: 从写入索引数据到数据可以被搜索到有一个小延迟(大概1秒); 举个例子:电商平台新上架一个新商品,1秒后用户就可搜索到这个商品信息,这就是近实时。 基于Elasticsearch执行搜索和分析可以达到秒级查询 也举个例子说明,比如我现在想查询我在淘宝,最近一年都买过几件商品,总共花了多少钱,最贵的商品多少钱,哪个月买到东西最多,什么类型的商品买的最多这样的信息,如果淘宝说,你要等待10分钟才能出结果,你是不是很崩溃,这个延迟的时间就不是近实时,如果淘宝可以秒级别返回给你,就是近实时了。 下面画一个图,解释下三个基本概念的 Cluster:集群 包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认是elasticsearch)来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常。集群的目的为了提供高可用和海量数据的存储以及更快的跨节点查询能力。 Node:节点 集群中的一个节点,节点也有一个名称(默认是随机分配的)

MySQL 基础之二

痞子三分冷 提交于 2019-12-05 08:52:10
设计范式:   第一范式:字段是原子性   第二范式:存在可用主键   第三范式:任何表都不应该有依赖于其它表非主键的字段 创建数据库、设计数据表   字段:字段名、数据类型、约束(通过键来实现,而键其实可以当做索引来用) DDL:CREATE、DROP、ALTER DML:INSERT(REPLACE)、DELETE、UPDATE 、SELECT DCL:GRANT、REVOKE 数据类型: datatype 字符: 定长字符: 不区分大小写 char(#) 用或不用,给1个占10个 区分大小写 binary(#) 变长字符: 不区分大小写 varchar(#) 有结束符,占用一个, 给1个,占2个 区分大小写 varbinary(#) 对象存储:大文本存储 TEXT 不区分大小写 BLOB 区分----二进制的大对象 内置类型: ENUM 枚举(给你几种,最多有几种选择) SET 集合 数值: 精确:整型[int]、十进制[decimal] int tinyint 1byte smallint 2bytes mediumint 3bytes int 4bytes bigint 8bytes 范围: 0 - 2^64-1 近似: 单精度浮点[float]、双精度浮点[double]    日期时间型:       日期:DATE       时间:TIME       日期时间

redis数据类型及应用场景

血红的双手。 提交于 2019-12-05 08:13:15
0.key的通用操作 KEYS * keys a keys a* 查看已存在所有键的名字 **** TYPE 返回键所存储值的类型 **** EXPIRE\ PEXPIRE 以秒\毫秒设定生存时间 *** TTL\ PTTL 以秒\毫秒为单位返回生存时间 *** PERSIST 取消生存时间设置 *** DEL 删除一个key EXISTS 检查是否存在 RENAME 变更KEY名 ---例子: 127.0.0.1:6379> set name zhangsan 127.0.0.1:6379> EXPIRE name 60 (integer) 1 127.0.0.1:6379> ttl name (integer) 57 127.0.0.1:6379> set a b ex 60 OK 127.0.0.1:6379> ttl a 127.0.0.1:6379> PERSIST a (integer) 1 127.0.0.1:6379> ttl a (integer) -1 View Code Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 redis5.0版本以后增加了新的数据类型:流数据类型 1.strings 应用场景 session 共享 常规计数:微博数,粉丝数,订阅、礼物

mysql查漏补缺

十年热恋 提交于 2019-12-05 07:37:42
Mysql查漏补缺 存储引擎 数据库使用存储引擎来进行CRUD的操作,不同的存储引擎提供了不同的功能。Mysql支持的存储引擎有InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE等,默认使用InnoDB作为存储引擎。 存储引擎列表 功能 MylSAM MEMORY InnoDB Archive 存储限制 256TB RAM 64TB None 支持事务 No No Yes No 支持全文索引 Yes No No No 支持树索引 Yes Yes Yes No 支持哈希索引 No Yes No No 支持数据缓存 No N/A Yes No 支持外键 No No Yes No 其中MEMORY,由于存储是在内存,可以把一些临时数据存放进使用这种存储引擎的Mysql中,当然在目前也有类似功能的项目出现,如Redis,Memcache。 索引 索引就是表的目录,相当于书的目录,可以更快的查找到想要的记录。而索引本身,会单独保存在一个文件中。 优化索引 1、数据类型越小越好:数据类型越小,占用的空间更小,处理速度就会变快。 2、数据类型越简单越好:比如整型,相比于字符型,比较起来的复杂度更低。 3、避免NULL:有NULL值的列很难进行查询优化。 不适合索引的场景 1、查询中很少用到的列。比如student表中的性别列

Cassandra开发入门文档第一部分

蹲街弑〆低调 提交于 2019-12-05 07:10:44
Cassandra的特点 横向可扩展性: Cassandra部署具有几乎无限的存储和处理数据的能力。当需要额外的容量时,可以简单地将更多的机器添加到集群中。当新机器加入集群时,Cassandra需要对现有数据进行重新平衡,以使扩展集群中的每个节点具有大致相等的份额。而且,Cassandra集群的性能与集群内的节点数成正比。当您继续添加实例时,读写吞吐量将保持线性增长。 高可用性: Cassandra集群中的所有节点都是没有主节点的对等节点。如果一台机器变得不可用,Cassandra将继续向与该机器共享数据的其他节点写入数据,并在失败的节点重新加入集群时对操作进行排队和更新。这意味着在一个典型的配置中,多个节点必须同时发生故障,才能在Cassandra的可用性中出现任何应用程序可见的中断。 写优化: 传统的关系数据库和文档数据库针对读取性能进行了优化。将数据写入关系数据库通常涉及对磁盘上的复杂数据结构进行就地更新,以便维护能够高效灵活地读取的数据结构。从磁盘I/O的角度来看,更新这些数据结构是一项非常昂贵的操作,而磁盘I/O通常是数据库性能的限制因素。由于写操作比读操作更昂贵,因此通常会避免对关系数据库进行任何不必要的更新,即使以额外的读操作为代价。 另一方面,Cassandra对写吞吐量进行了高度优化,事实上,它从不修改磁盘上的数据;它只附加到现有文件或创建新文件。这在磁盘I

【0.4】mysql版本特性(5.6-8.0)

拥有回忆 提交于 2019-12-05 06:54:28
【1】Innodb 与 Myisam 的区别 1.InnoDB支持事物,而MyISAM不支持事物 2.InnoDB支持行级锁,而MyISAM支持表级锁 3.InnoDB支持MVCC, 而MyISAM不支持 4.InnoDB支持外键,而MyISAM不支持 5.InnoDB不支持全文索引,而MyISAM支持。 6.InnoDB不能通过直接拷贝表文件的方法拷贝表到另外一台机器, myisam 支持 7.InnoDB表支持多种行格式, myisam 不支持 8.InnoDB是索引组织表, myisam 是堆表 【2】Innnodb 四大特性 (1)插入缓冲,(2)二次写,(3)自适应哈希,(4)预读 【2.1】插入缓冲(insert buffer) 插入缓冲(Insert Buffer/Change Buffer):提升插入性能,change buffering是insert buffer的加强,insert buffer只针对insert有效,change buffering对insert、delete、update(delete+insert)、purge都有效   只对于非聚集索引(非唯一)的插入和更新有效,对于每一次的插入不是写到索引页中,而是先判断插入的非聚集索引页是否在缓冲池中,如果在则直接插入;   若不在,则先放到Insert Buffer 中,再按照一定的频率进行合并操作