一、学习目标
- 掌握如何向表中插入数据
- 掌握更新数据的方法
- 熟悉如何删除数据
- 掌握对数据表基本操作的方法和技巧
- 了解什么是索引
- 掌握创建索引的方法和技巧
- 熟悉如何删除索引
- 熟悉掌握索引的常见问题
二、实验内容
- 创建表books,对数据表进行插入、更新和删除操作,掌握表数据基本操作。books表结构以及表中的记录如下所示
books表结构
字段名 | 字段说明 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
id | 书编号 | INT(11) | 是 | 否 | 是 | 是 | 否 |
name | 书名 | VARCHAR(50) | 否 | 否 | 是 | 否 | 否 |
authors | 作者 | VARCHAR(100) | 否 | 否 | 是 | 否 | 否 |
price | 价格 | INT(11) | 否 | 否 | 是 | 否 | 否 |
pubdate | 出版日期 | YEAR | 否 | 否 | 是 | 否 | 否 |
note | 说明 | VARCHAR(255) | 否 | 否 | 否 | 否 | 否 |
num | 库存 | INT | 否 | 否 | 是 | 否 | 否 |
books表中的记录
id | name | authors | price | pubdate | note | num |
1 | Tale of AAA | Dickes | 23 | 1995 | novel | 11 |
2 | EmmaT | Jane lura | 35 | 1993 | joke | 22 |
3 | Story of Jane | Jane Tim | 40 | 2001 | novel | 0 |
4 | Lovey Day | George Byron | 20 | 2005 | novel | 30 |
5 | Old Land | Honore Blade | 30 | 2010 | law | 0 |
6 | The Battle | Upton Sara | 33 | 1999 | medicine | 40 |
7 | Rose Hood | Richard Haggard | 28 | 2008 | cartoon | 28 |
步骤如下:
①创建数据表books,并按books表结构定义各个字段
②将books表中的记录插入books表中
③将小说类型(novel)的书价格都增加5
④将名称为EmmaT的书价格改为40,并将说明改为drama
⑤删除库存为0的记录
- 创建数据库index_test,按照下面表结构在index_test数据库中创建两个数据表test_table1和test_table2,如下表所示,并按照操作过程完成对数据表的基本操作
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) | 否 | 否 | 否 | 否 | 否 |
步骤如下:
①登录MySQL数据库
②创建数据库index_test
③创建表test_table1
④创建表test_table2,存储引擎为MyISAM
⑤使用ALTER TABLE语句在表test_table2的birth字段上建立名称为ComDateIdx的普通索引
⑥使用CREATE INDEX在title字段上建立名称为FTIdx的全文索引
⑦使用ALTER TABLE语句删除表test_table1中名称为UniqIdx的唯一索引
⑧使用DROP INDEX语句删除表test_table2中名称为ComDateIdx的唯一索引
1.1
create table books(id int(11) primary key not null unique,
name varchar(50) not null,
authors varchar(100) not null,
price int(11) not null,
pubdate year not null,
note varchar(255),
num int not null);
1.2
insert into books(id,name,authors,price,pubdate,note,num)values(1,'Tale of AAA','Dickes',23,'1995','novel',11),
(2,'EmmaT','Jane lura',35,'1993','joke',22),
(3,'Story of Jane','Jane Tim',40,'2001','novel',0),
(4,'Lovey Day','George Byron',20,'2005','novel',30),
(5,'Old Land','Honore Blade',30,'2010','law',0),
(6,'The Battle','Upton Sara',33,'1999','medicine',40),
(7,'Rose Hood','Richard Haggard',28,'2008','cartoon',28);
1.3
update books
set price=price+5
where note = 'novel';
1.4
update books
set price=40,note='drama'
where name='EmmaT';
1.5
delete from books where num=0;
2.1-2.4
create database index_test;
use index_test;
create table test_table1(id int not null unique auto_increment,
name char(100) not null,
address char(100),
description char(100));
create table test_table2(id int primary key not null unique,
firstname char(100) not null,
middlename char(50) not null,
lastname char(50) not null,
birth date not null,
title char(100));
alter table test_table2 engine=MyISAM;
2.5
alter table index_test add index ComDateldx(birth);
2.6
create fulltext index FTIdx on test_table2(title);
2.7
//先创建再测试删除,否则报错
create unique index Uniqldx on test_table1(name);
//不一定非要创建在name上,但不能创建在已有唯一约束的字段上
alter table test_table1 drop index Uniqldx;
2.8
//由于事先已创建过同名索引,不需要再创建,虽不是唯一索引但是删除方式一样
drop index ComDateldx on test_table2;