MySQL数据库——索引练习

news2024/12/23 22:08:43

一、练习题目

1、建立一个utf8编码的数据库test1

2、建立商品表goods和栏目表category(要求:按如下表结构创建表,并且存储引擎engine myisam 字符集charset utf8)

 

3、删除 goods 表中的 goods_desc 字段及货号字段,并增加 click_count 字段

4、在 goods_name 列上加唯一性索引(用alter table方式)

5、在 shop_price 列上加普通索引(用create index方式)

6、在 click_count 上增加普通索引,然后再删除 (分别使用drop index和alter table删除)

二、参考答案

(个人所写,仅供参考)

/* 1、建立一个utf8编码的数据库test1 */
mysql> create database test1;
Query OK, 1 row affected (0.00 sec)
mysql> use test1;
Database changed


/* 2、建立商品表goods和栏目表category(要求:按如下表结构创建表,并且存储引擎engine myisam 字符集charset utf8)*/
--创建表goods
mysql> create table goods(
    -> goods_id int(11) primary key auto_increment,
    -> goods_name varchar(20) not null,
    -> cat_id int(11) not null default 0,
    -> brand_id int(11) not null default 0,
    -> goods_sn char(12) not null default '',
    -> shop_price float(6,2) not null default 0.00,
    -> goods_desc text
    -> ) engine=MyISAM charset=utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> desc goods;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| goods_id   | int(11)     | NO   | PRI | NULL    | auto_increment |
| goods_name | varchar(20) | NO   |     | NULL    |                |
| cat_id     | int(11)     | NO   |     | 0       |                |
| brand_id   | int(11)     | NO   |     | 0       |                |
| goods_sn   | char(12)    | NO   |     |         |                |
| shop_price | float(6,2)  | NO   |     | 0.00    |                |
| goods_desc | text        | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

--创建表category
mysql> create table category(
    -> cat_id int(11) primary key auto_increment,
    -> cate_name varchar(20) not null default '',
    -> parent_id int(11) not null default 0
    -> ) engine=MyISAM charset=utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> desc category;
+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| cat_id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| cate_name | varchar(20) | NO   |     |         |                |
| parent_id | int(11)     | NO   |     | 0       |                |
+-----------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)


/* 3、删除 goods 表中的 goods_desc 字段及货号字段,并增加 click_count 字段 */
mysql> alter table goods drop goods_desc;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table goods add click_count int;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc goods;;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| goods_id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| goods_name  | varchar(20) | NO   |     | NULL    |                |
| cat_id      | int(11)     | NO   |     | 0       |                |
| brand_id    | int(11)     | NO   |     | 0       |                |
| goods_sn    | char(12)    | NO   |     |         |                |
| shop_price  | float(6,2)  | NO   |     | 0.00    |                |
| click_count | int(11)     | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)


/* 4、在 goods_name 列上加唯一性索引(用alter table方式) */
mysql> alter table goods add unique index UniqIdx(goods_name);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table goods \G
*************************** 1. row ***************************
       Table: goods
Create Table: CREATE TABLE `goods` (
  `goods_id` int(11) NOT NULL AUTO_INCREMENT,
  `goods_name` varchar(20) NOT NULL,
  `cat_id` int(11) NOT NULL DEFAULT '0',
  `brand_id` int(11) NOT NULL DEFAULT '0',
  `goods_sn` char(12) NOT NULL DEFAULT '',
  `shop_price` float(6,2) NOT NULL DEFAULT '0.00',
  `click_count` int(11) DEFAULT NULL,
  PRIMARY KEY (`goods_id`),
  UNIQUE KEY `UniqIdx` (`goods_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)


/* 5、在 shop_price 列上加普通索引(用create index方式) */
mysql> create index NormalIdx on goods(shop_price);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table goods \G
*************************** 1. row ***************************
       Table: goods
Create Table: CREATE TABLE `goods` (
  `goods_id` int(11) NOT NULL AUTO_INCREMENT,
  `goods_name` varchar(20) NOT NULL,
  `cat_id` int(11) NOT NULL DEFAULT '0',
  `brand_id` int(11) NOT NULL DEFAULT '0',
  `goods_sn` char(12) NOT NULL DEFAULT '',
  `shop_price` float(6,2) NOT NULL DEFAULT '0.00',
  `click_count` int(11) DEFAULT NULL,
  PRIMARY KEY (`goods_id`),
  UNIQUE KEY `UniqIdx` (`goods_name`),
  KEY `NormalIdx` (`shop_price`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)


/* 6、在 click_count 上增加普通索引,然后再删除 (分别使用drop index和alter table删除)*/

--方法一:使用drop index删除
            /* 先增加索引 */
mysql> create index NormalIdx2 on goods(click_count);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table goods \G
*************************** 1. row ***************************
       Table: goods
Create Table: CREATE TABLE `goods` (
  `goods_id` int(11) NOT NULL AUTO_INCREMENT,
  `goods_name` varchar(20) NOT NULL,
  `cat_id` int(11) NOT NULL DEFAULT '0',
  `brand_id` int(11) NOT NULL DEFAULT '0',
  `goods_sn` char(12) NOT NULL DEFAULT '',
  `shop_price` float(6,2) NOT NULL DEFAULT '0.00',
  `click_count` int(11) DEFAULT NULL,
  PRIMARY KEY (`goods_id`),
  UNIQUE KEY `UniqIdx` (`goods_name`),
  KEY `NormalIdx` (`shop_price`),
  KEY `NormalIdx2` (`click_count`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

          /* drop index删除 */
mysql> drop index NormalIdx2 on goods;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table goods \G
*************************** 1. row ***************************
       Table: goods
Create Table: CREATE TABLE `goods` (
  `goods_id` int(11) NOT NULL AUTO_INCREMENT,
  `goods_name` varchar(20) NOT NULL,
  `cat_id` int(11) NOT NULL DEFAULT '0',
  `brand_id` int(11) NOT NULL DEFAULT '0',
  `goods_sn` char(12) NOT NULL DEFAULT '',
  `shop_price` float(6,2) NOT NULL DEFAULT '0.00',
  `click_count` int(11) DEFAULT NULL,
  PRIMARY KEY (`goods_id`),
  UNIQUE KEY `UniqIdx` (`goods_name`),
  KEY `NormalIdx` (`shop_price`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

--方法二:使用alter table删除
            /* 先增加索引 */
mysql> create index NormalIdx2 on goods(click_count);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table goods \G
*************************** 1. row ***************************
       Table: goods
Create Table: CREATE TABLE `goods` (
  `goods_id` int(11) NOT NULL AUTO_INCREMENT,
  `goods_name` varchar(20) NOT NULL,
  `cat_id` int(11) NOT NULL DEFAULT '0',
  `brand_id` int(11) NOT NULL DEFAULT '0',
  `goods_sn` char(12) NOT NULL DEFAULT '',
  `shop_price` float(6,2) NOT NULL DEFAULT '0.00',
  `click_count` int(11) DEFAULT NULL,
  PRIMARY KEY (`goods_id`),
  UNIQUE KEY `UniqIdx` (`goods_name`),
  KEY `NormalIdx` (`shop_price`),
  KEY `NormalIdx2` (`click_count`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.01 sec)

           /* alter table删除 */
mysql> alter table goods drop index NormalIdx2;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table goods \G
*************************** 1. row ***************************
       Table: goods
Create Table: CREATE TABLE `goods` (
  `goods_id` int(11) NOT NULL AUTO_INCREMENT,
  `goods_name` varchar(20) NOT NULL,
  `cat_id` int(11) NOT NULL DEFAULT '0',
  `brand_id` int(11) NOT NULL DEFAULT '0',
  `goods_sn` char(12) NOT NULL DEFAULT '',
  `shop_price` float(6,2) NOT NULL DEFAULT '0.00',
  `click_count` int(11) DEFAULT NULL,
  PRIMARY KEY (`goods_id`),
  UNIQUE KEY `UniqIdx` (`goods_name`),
  KEY `NormalIdx` (`shop_price`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/748623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JMeter中如何实现接口之间的关联?

关联是Jmeter工具中非常重要的一个技术。因为在测试过程过有些数据是经常发生变化的,要获取并使用这些数据,就要使用关联。 比如:用户登录后,session信息都不同,有些操作要使用session,就需要将这个动态的…

【国产复旦微FMQL45教程】-Procise应用流程

本教程采用 FMQL7045 FPGA开发板来完成整个试验,板卡照片如下: 具有丰富的接口资源,系统框图如下: 本教程用于完成基于Vivado的FMQL45的LED实验,目标是能够将这款开发板PL端先跑起来。 2 Procise工程建立 &#xff0…

AI绘画在线生成!推荐这个国产Midjourney平替

AI技术越来越成熟,不仅能生成文本,还能绘画。AI绘画软件层出不穷,很多人接触的是Midjourney。我之前也用过Midjourney,确实在作品精确度、图像细节等方面很出色。但用Midjourney需要有良好的网络,而且必须得是会员。 因…

Mysql常用存储引擎------MyISAM存储引擎

文章目录 一、MyISAM存储引擎1、1加锁与并发2、1修复3、1索引特性3、4 延迟更新索引键3、5 MyISAM 压缩表3、6 MyISAM 性能 二、MySQL 存储引擎 MyISAM 与 InnoDB 如何选择?一、InnoDB支持事务,MyISAM不支持,这一点是非常重要。事务是一种高级…

【嵌入式Qt开发入门】Qt如何网络编程——建立TCP通信服务端(附项目代码)

TCP 简介 TCP 协议(Transmission Control Protocol)全称是传输控制协议是一种面向连接的、可靠的、 基于字节流的传输层通信协议。 TCP 通信必须先建立 TCP 连接,通信端分为客户端和服务端。服务端通过监听某个端口来监听是否有客户端连接到来…

7.kafka+ELK连接

文章目录 kafkaELK连接部署Kafkakafka操作命令kafka架构深入FilebeatKafkaELK连接 kafkaELK连接 部署Kafka ###关闭防火墙systemctl stop firewalld systemctl disable firewalldsetenforce 0vim /etc/selinux/configSELINUXdisabled###下载安装包官方下载地址:ht…

python散记

"""字符串格式化的两种方法"""name"sans" age18 math_score90.56 english_score88.8print(f"这个学生的名字叫{name},年龄{age},数学分数是{math_score},总分是{math_scoreenglish_score}") print("这个学生的名字叫%s…

APP开发的未来:虚拟现实和增强现实的角色

移动应用程序越来越多地在我们的日常生活中发挥着重要作用。但是,随着技术的不断发展,未来的 APP开发会有什么新的发展方向呢?这是每个人都在关心的问题。在过去的几年中,移动应用程序领域发生了巨大变化。像 VR/AR这样的技术为人…

第63讲:Python编程案例之猴子吃桃

文章目录 1.需求描述以及分析2.递推方式实该该程序3.递归方式实现该程序 1.需求描述以及分析 需求描述: 猴子第一天摘了若干个桃子,第一天吃了若干个桃子中的一半,觉得不过瘾,又多吃了一个。 第二天早上又将第一天剩下的桃子吃…

Spring 项目创建和使用2 (Bean对象的存取)

目录 一、创建 Bean 对象 二、将Bean对象存储到 Spring容器中 三、创建 Spring 上下文(得到一个Spring容器) 1. 通过在启动类中 ApplicationContext 获取一个 Spring容器 2. 通过在启动类种使用 BeanFactory 的方式来得到 Spring 对象 (此…

MAYA粒子目标goalV和goalU详细应用

一下就填充到点 一个一个点填充 nParticleShape1.goalV0.5; nParticleShape1.goalU0.5; 粒子向中心移动 V方向使用渐变 删除U方向表达式 也使用渐变 使用圆角 nParticleShape1.goalUrand(0,1); nParticleShape1.goalUnParticleShape1.goalU0.02; nParticleShape1.goalUnPartic…

Excel-公式VLOOKUP 使用方法-小记

个人愚见 表示 MongoDB列中的任意一条数据 在 MySQL列 精确查找 和MongoDB列 中一模一样的数据,有的话返回MongoDB列数据,没有话返回#N/A 官方解释

redis 三种缓存更新策略

今天聊聊redis 三种缓存更新策略分别是: Cache Aside(旁路缓存)策略; Read/Write Through(读穿 / 写穿)策略; Write Back(写回)策略; 其中 Cache Aside策略…

php通过IP获取用户当前所在城市

php获取当前用户所在城市 php通过ip免申请api获取所在城市的代码包括省市区sql数据 <?php function getName($pinyin,$lv){$servername "localhost";$username "root";$password "root";$dbname "ttx";try {$conn new PDO(…

Blazor前后端框架Known-V1.2.4

V1.2.4 Known是基于C#和Blazor开发的前后端分离快速开发框架&#xff0c;开箱即用&#xff0c;跨平台&#xff0c;一处代码&#xff0c;多处运行。 Gitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;https://github.com/known/Known 概述 基于C#和Blazor…

一款开源的Hitomi-Downloader视频下载工具,几乎支持所有主流视频网站

一款开源的Hitomi-Downloader视频下载工具&#xff0c;几乎支持所有主流视频网站 用过IDM的朋友可能知道IDM有个强大的功能就是可以嗅探网站各种视频、音频等资源&#xff0c;然后提供快捷下载&#xff0c;可不巧的是IDM是收费软件。对于不愿意付费购买IDM的朋友&#xff0c;能…

AssetBundle.Unload(true)无法卸载图集

1&#xff09;AssetBundle.Unload(true)无法卸载图集 ​2&#xff09;关于Unity 2D游戏地图预加载的问题 3&#xff09;Addressables能否支持某些资源不打Bundle直接加载源文件 这是第342篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的热门话题&#xff0c;涵盖了UWA问答…

如何在CSDN博客平台上吸引铁粉

&#x1f3c6;荣誉认证&#xff1a;51CTO博客专家博主、TOP红人、明日之星&#xff1b;阿里云开发者社区专家博主、技术博主、星级博主。 &#x1f4bb;微信公众号&#xff1a;微笑的段嘉许 &#x1f4cc;本文由微笑的段嘉许原创&#xff01; &#x1f389;欢迎关注&#x1f5…

照片文件大小怎么修改为200k?图片压缩怎么指定大小?

日常生活和工作中&#xff0c;经常用到图片&#xff0c;但是有时候需要将图片压缩指定大小来符合各种规定&#xff0c;比如图片压缩到200kb&#xff0c;那么有没有简单方便的图片压缩&#xff08; https://www.yasuotu.com/imagesize&#xff09;的方法呢&#xff1f;下面就拿压…

Centos 7 安装 Oracle 11G

Oracle 11G 安装教程 准备环境 p13390677_112040_Linux-x86-64_1of7.zipp13390677_112040_Linux-x86-64_2of7.zipCentos 7- rhel7-英文版的系统–不想换语言的执行(LANGen_US)– 传输 文件到服务器上 创建用户和组 [rootlocalhost ~]# groupadd oracle [rootlocalhost ~]…