美文网首页
Mysql练习-索引的操作

Mysql练习-索引的操作

作者: A04 | 来源:发表于2018-04-23 21:01 被阅读0次

一、练习要求

① 登录MySQL数据库
② 创建数据库index_test
③ 创建表test_table1
④ 创建表test_table2,存储引擎为MyISAM
⑤ 使用ALTER TABLE语句在表test_table2的birth字段上建立名为ComDataIdx的普通索引
⑥ 使用ALTER TABLE语句在表test_table2的id字段上添加名为UniqIdx2的唯一索引,并以降序排列。
⑦ 使用CREATE INDEX语句在firstname、middlename和lastname三个字段上建立名为MultiColIdx2的组合索引。
⑧ 使用CREATE INDEX语句在title字段上建立名为FTIdx的全文索引。
⑨ 使用ALTER TABLE语句删除表test_table1中名为UniqIdx的唯一索引
⑩ 使用DROP INDEX语句删除表test_table2中名为MultiColIdx2的组合索引

test_table1

字段名 数据类型 主键 外键 非空 唯一 自增
id int(11)
name CHAR(100)
address CHAR(100)
description CHAR(100)



test_table2

字段名 数据类型 主键 外键 非空 唯一 自增
id int(11)
firstname CHAR(50)
middlename CHAR(50)
lastname CHAR(50)
birth DATE
title CHAR(100)

二、操作记录


创建数据库index_test

mysql> CREATE database index_test;
Query OK, 1 row affected (0.00 sec)

mysql> USE index_test;
Database changed
mysql>


创建表test_table1

mysql> CREATE TABLE test_table1
    -> (
    -> id          INT NOT NULL  PRIMARY KEY AUTO_INCREMENT,
    -> name       CHAR(100) NOT NULL,
    -> address     CHAR(100) NOT NULL,
    -> description  CHAR(100) NOT NULL,
    -> UNIQUE INDEX UniqIdx(id),
    -> INDEX MultiColIdx(name(20), address(30)),
    -> INDEX ComIdx( description(30) )
    -> );
Query OK, 0 rows affected (0.33 sec)
mysql>
mysql> SHOW CREATE table test_table1 \G
*************************** 1. row ***************************
       Table: test_table1
Create Table: CREATE TABLE `test_table1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(100) NOT NULL,
  `address` char(100) NOT NULL,
  `description` char(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `UniqIdx` (`id`),
  KEY `MultiColIdx` (`name`(20),`address`(30)),
  KEY `ComIdx` (`description`(30))
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql>


创建表test_table2,存储引擎为MyISAM

mysql> CREATE TABLE test_table2
    -> (
    -> id         INT NOT NULL  PRIMARY KEY AUTO_INCREMENT,
    -> firstname   CHAR(100) NOT NULL,
    -> middlename CHAR(100) NOT NULL,
    -> lastname   CHAR(100) NOT NULL,
    -> birth      DATE NOT NULL,
    -> title       CHAR(100) NULL
    -> ) ENGINE=MyISAM;
Query OK, 0 rows affected (0.04 sec)

mysql> SHOW CREATE table test_table1 \G
*************************** 1. row ***************************
       Table: test_table1
Create Table: CREATE TABLE `test_table1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(100) NOT NULL,
  `address` char(100) NOT NULL,
  `description` char(100) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `MultiColIdx` (`name`(20),`address`(30)),
  KEY `ComIdx` (`description`(30))
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql>


使用ALTER TABLE语句在表test_table2的birth字段上建立名为ComDataIdx的普通索引

mysql> ALTER TABLE test_table2 ADD INDEX ComDateIdx(birth);
Query OK, 0 rows affected (0.10 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>


使用ALTER TABLE语句在表test_table2的id字段上添加名为UniqIdx2的唯一索引,并以降序排列。

mysql> ALTER TABLE test_table2 ADD UNIQUE INDEX UniqIdx2 (id DESC) ;
Query OK, 0 rows affected (0.09 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>
mysql>


使用CREATE INDEX语句在firstname、middlename和lastname三个字段上建立名为MultiColIdx2的组合索引。

mysql> CREATE INDEX MultiColIdx2 ON test_table2(firstname, middlename, lastname);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>
mysql>


使用CREATE INDEX语句在title字段上建立名为FTIdx的全文索引。

mysql> CREATE FULLTEXT INDEX FTIdx ON test_table2(title);
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>


使用ALTER TABLE语句删除表test_table1中名为UniqIdx的唯一索引

mysql> ALTER TABLE test_table1 DROP INDEX UniqIdx;
Query OK, 0 rows affected (0.18 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>


使用DROP INDEX语句删除表test_table2中名为MultiColIdx2的组合索引

mysql> DROP INDEX MultiColIdx2 ON test_table2;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>

相关文章

  • Mysql练习-索引的操作

    一、练习要求 ① 登录MySQL数据库② 创建数据库index_test③ 创建表test_table...

  • 【转】MySQL索引操作命令小结

    MySQL索引操作命令小结 这篇文章主要介绍了MySQL索引操作命令小结,本文讲解了创建索引、查询索引、删除索引等...

  • Mysql 相关

    MySQL索引 MySQL索引背后的数据结构及算法原理 覆盖索引和回表操作 MySQL性能优化 MySql表分区详...

  • MySQL操作索引

    MySQL操作索引 增加普通索引 增加唯一索引 删除索引

  • MySQL之索引大法

    1.什么是索引? MySQL索引的建立针对于数据查询操作,索引可以大大提高MySQL的检索速度 Mysql目前几种...

  • Mysql索引进阶入门

    Mysql索引进阶入门 1. 索引操作 MySQL 索引 菜鸟 2. 索引类型 PRIMARY唯一且不能为空;一张...

  • Mysql索引的设计、使用和优化

    Mysql索引概述 所有MySQL列类型可以被索引。对相关列使用索引是提高SELECT操作性能的最佳途径。根据存储...

  • 索引 - MySQL / NoSQL

    文集主页 Ubuntu 安装 MySQL 和 mysqlclientMySQL 基本操作MySQL 约束与索引My...

  • mysql 索引操作

    一、什么是索引?为什么建立索引 索引用于快速找出在某个列中有一特定值的行,不使用索引,mysql必须从第一条记录开...

  • 基于Linux的MySQL操作实例(修改表结构,MySQL索引,

    基于Linux的MySQL操作实例(修改表结构,MySQL索引,MySQL数据引擎) 前言 本篇是基于Linux下...

网友评论

      本文标题:Mysql练习-索引的操作

      本文链接:https://www.haomeiwen.com/subject/npcrlftx.html