返回顶部
首页 > 资讯 > 数据库 >MySQL索引概述
  • 491
分享到

MySQL索引概述

2024-04-02 19:04:59 491人浏览 八月长安
摘要

Mysql索引概述索引的优点:1.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2.可以加快数据的检索速度。索引缺点:1.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据

Mysql索引概述
索引的优点:
1.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
2.可以加快数据的检索速度。
索引缺点:
1.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。
2.索引需要占据物理空间。

索引的类型:
1.INDEX:普通索引
2.PRIMARY KEY:主键
3.UNIQUE:唯一索引
4.FOREIGN KEY:外键
5.FULLTEXT:群文索引

1.INDEX:普通索引
1.1一个表中可以有多个INDEX字段。
1.2字段的值允许有重复,且可以赋NULL值。
1.3经常把做查询条件的字段设置为INDEX字段。
1.4INDEX字段的KEY标志是MUL。

insert into 库名.表名 values(值列表); #插入表记录
select * from 库名.表名; 查看表的所有记录

例:建表的时候指定索引字段
-INDEX(字段1),INDEX(字段2)...
mysql>create database ku;
mysql>create table ku.abc(
>id    int(2) not null,
>name  varchar(4)  not null,
>age   int(3)  not null,
>index(name),index(age)               
>);

mysql>desc ku.abc;
Field  Type  Null  Key   Default   Extra
..   ..     ..      MUL    ..     ..

mysql>insert into ku.abc values(1,"wang",23);
mysql>select * from ku.abc;

在已有创建的表中设置INDEX字段
格式:create index 索引名 on 库名.表名(字段);

删除指定表的索引字段
格式:drop index 索引名 on 库名.表名;

例:
mysql>create index  xixi on ku.abc(id);
mysql>drop  index  xixi on ku.abc;

查看表的索引信息
格式:show index from 库名.表名;

例:
mysql>show index from ku.abc\G;
......
Index_type: BTREE(默认使用B树算法)
......

默认使用的索引类型:BTREE(二叉树) hash B+Tree

2.PRIMARY KEY:主键
2.1一个表中只能有一个primary key字段
2.2对应字段的值不允许有重复,且不允许赋NULL值。
2.3如果有多个字段都作为primary key,称为复合主键,必须一起创建。
2.4主键字段的KEY标志是PRI。
2.5通常与AUTO_INCREMENT连用。
2.6经常把表中能够唯一标示记录的字段设置为主键字段。(如记录编号字段)

注释:
主键与auto_increment 连用
字段值自动增长 +1
主键 并且 数值类型

例:建表的时候指定主键字段
-PRIMARY KEY(字段名)
mysql>create table ku.abc2(
>id  int(3)  auto increment,
>name  varchar(5)  not null,
>age   int(2)  not null,
>primary key(id)
>);

mysql>desc ku.abc2;
 Field  Type  Null  Key  Default    Extra
..    ..    ..     PRI     ..      ..

mysql>insert into ku.abc2 values(2,"wang",23);
mysql>select * from ku.abc2;

在已创建的表中设置PRIMARY KEY字段
格式:alter table 库名.表名 ADD PRIMARY KEY(字段名);

删除指定表的PRIMARY KEY字段
格式:alter table 库名.表名 DROP PRIMARY KRY;
注意:如果有自增属性(AUTO_INCREMENT),必须先删除。

例:
mysql>alter tabel ku.abc2  drop primary key;
mysql>alter table ku.abc2 add primary key(id);

3.UNIQUE:唯一索引
3.1一个表中可以有多个UNIQUE字段。
3.2对应字段的值不允许有重复。
3.3UNIQUE字段的KEY标志是UNI。
3.4UNIQUE字段的值允许为NULL,当将其修改为不允许为NULL时,则此字段限制于主键相同,KEY会变为PRI。

例:建表的时候指定UNIQUE字段
-UNIQUE(字段1),UNIQUE(字段2)...
mysql>create table ku.abc3(
>id char(6),
>name  varchar(4)  not null,
>age int(3)  not null,
>unique(id),unique(name),unique(age)
>);

mysql>desc ku.abc3;
Field   Type    Null      Key    Default   Extra
..     ..    YES    UNI     ..      ..

mysql>insert into ku.abc3 values(3,"wang",23);
mysql>insert into ku.abc values(4,"lisi",23);
mysql>select * from ku.abc3;

在已创建的表中设置UNIQUE字段
格式:create unique index unique字段名 on 库名.表名(字段名);

删除指定表的UNIQUE字段
格式:drop index unique字段名 on 库名.表名(字段名);

例:
mysql>drop  index name on  ku.abc3; #于删除INDEX索引的方法相同。
mysql>create unique  index name on ku.abc3(age);

4.FOREIGN KEY:外键
4.1让当前表字段的值在另一个表字段的值中的范围内选择。

外键的使用条件:
1.表的存储引擎必须是innodb。
2.两表的字段类型要一致。
3.被参照字段必须要是主键类型(PRIMARY KEY)。

基本用法:
格式:foreign key(表A的字段名) references 表B(字段名)
on update cascade on delete cascade #参照表为B,即从B表字段的值中的范围内选择。

例:
提示:被参照字段必须要是主键类型(PRIMARY KEY)。
mysql>create table  ku.abc4(
>id  int(4),
>name char(5),
>foreign key(name),
>references  abc3(name),
>on update  cascade
>on  delete cascade
>engine=innodb
>);

删除外键字段
格式:alter table 表名 drop foreign key 约束名;

例:
mysql>show create table  ku.abc4\G;
...
CONSTRaiNT `xxx`    #`xxx`里面是约束名
.....

mysql>alter table ku.abc4 drop foreigen key xxx ;
您可能感兴趣的文档:

--结束END--

本文标题: MySQL索引概述

本文链接: https://lsjlt.com/news/36464.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL索引概述
    MySQL索引概述索引的优点:1.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2.可以加快数据的检索速度。索引缺点:1.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据...
    99+
    2024-04-02
  • mysql btree索引概述
    今天研究下,mysql中的B-tree索引,通过这篇文章你可以了解到,mysql中的btree索引的原理,检索数据的过程,innodb和myisam引擎中btree索引的不同,以及btree索引的...
    99+
    2024-04-02
  • oracle btree索引概述
       今天研究下oracle的btree索引,通过这篇文章你会了解到,oracle btree索引都有哪几种类型、oracle btree索引的实现原理,oracle通过btree索...
    99+
    2024-04-02
  • Innodb存储引擎索引概述
    Innodb存储引擎索引概述该存储引擎支持两种常见的索引:B+索引、Hash索引。Hash索引Innodb存储引擎支持的Hash索引是自适应的,引擎会根据表的使用情况自动生成Hash索引,不能人为干预是否在...
    99+
    2024-04-02
  • MySQL优化--概述以及索引优化分析
    一、MySQL概述 1.1、MySQL文件含义 通过如下命令查看 show variables like ‘%dir%‘; MySQL文件位置及含义 名称 值 备注 basedir /usr/ 安装路径 charact...
    99+
    2020-07-19
    MySQL优化--概述以及索引优化分析 数据库入门 数据库基础教程 数据库 mysql
  • Mysql索引概述(用于个人学习与回顾)
    Mysql索引概述索引介绍索引是对记录集的多个字段进行排序的方法。类似于书的目录索引类型包括:Btree,B+tree,hash索引优缺点 索引优点-通过创建唯一性索引,可以保证数据库中每一行数据的唯一性-...
    99+
    2024-04-02
  • MySQL概述
    MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(Gen...
    99+
    2021-04-11
    MySQL概述
  • MYSQL索引的基本概念
    本篇内容介绍了“MYSQL索引的基本概念”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! &nbs...
    99+
    2024-04-02
  • MySQL 程序概述
    MySQL 安装中有许多程序。让我们来看看一些程序的概述。有些程序是特定于平台的,这意味着它们并不存在于所有 MySQL 发行版中。每个 MySQL 程序都有不同的选项。有一个“- - help”选项可用于获取程序不同选项的描述。通过在命令...
    99+
    2023-10-22
  • MySQL索引概念及七种索引类型分享介绍
    目录1 索引的概念2 索引的类型1 索引的概念 索引(在mysql中也叫做“键(key)”)是存储引擎用于快速找到记录的一种数据结构,这也是索引最基本的功能。 索引对于良好的性能非常关键。数据量越...
    99+
    2022-08-22
    MySQL索引类型 MySQL索引
  • MySQL的几个概念:主键,外键,索引,唯一索引
    概念: 主键(primary key) 能够唯一标识表中某一行的属性或属性组。一个表只能有一个主键,但可以有多个候选索引。主键常常与外键构成参照完整性约束,防止出现数据不一致。主...
    99+
    2024-04-02
  • MySQL约束与索引概念详解
    目录一、关系型数据库设计规则二、数据完整性和约束与索引的概念三、约束的应用一、关系型数据库设计规则 遵循ER模型和三范式 E entity 代表实体的意思 对应到数据库当中的一张表R relationship 代表关系的...
    99+
    2023-04-07
    MySQL约束与索引 MySQL约束 MySQL索引
  • MySQL授权表的概述
    这篇文章主要介绍“MySQL授权表的概述”,在日常操作中,相信很多人在MySQL授权表的概述问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL授权表的概述”的疑惑有所帮...
    99+
    2024-04-02
  • MySQL约束与索引概念是什么
    这篇“MySQL约束与索引概念是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQ...
    99+
    2023-04-14
    mysql
  • mysql全文索引的概念是什么
    这篇“mysql全文索引的概念是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysq...
    99+
    2023-05-25
    mysql
  • mysql锁表机制的概述
    这篇文章主要介绍“mysql锁表机制的概述”,在日常操作中,相信很多人在mysql锁表机制的概述问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql锁表机制的概述”的疑惑...
    99+
    2024-04-02
  • sparksql 概述
      什么是Spark SQL? Spark SQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQL查询引擎的作用。     我们已经学习了Hive,它是将...
    99+
    2016-07-22
    sparksql 概述
  • CXL 概述
    CXL 概述 前言1. 什么是CXL1.1 背景1.1.1 PCIE 的现状1.1.2 技术背景 1.2 特点1.3 是什么 2. Flex Bus2.1 特性2.2 Flex Bu...
    99+
    2023-09-01
    CXL PCIe 服务器 内存 计算
  • IGMPv3概述
    源特定组播除了要求网络端到端地支持网络组播和SSM 模式外,同时还要求网络和应用支持IGMP V3 协议栈。 IGMP V3 在IGMP V1/V2 的基础上提供了额外的源过滤组播功能(SFM:Source-Filtered Multica...
    99+
    2023-01-31
  • mysql索引基数概念与用法示例
    本文实例讲述了mysql索引基数概念与用法。分享给大家供大家参考,具体如下: Cardinality(索引基数)是mysql索引很重要的一个概念 索引基数是数据列所包含的不同值的数量。例如,某个数据列包含值...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作