一、学习目标

  1. 掌握如何向表中插入数据
  2. 掌握更新数据的方法
  3. 熟悉如何删除数据
  4. 掌握对数据表基本操作的方法和技巧
  5. 了解什么是索引
  6. 掌握创建索引的方法和技巧
  7. 熟悉如何删除索引
  8. 熟悉掌握索引的常见问题

二、实验内容

  1. 创建表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表结构定义各个字段

create table books
(id int(11) not null unique primary key,
name varchar(50) not null,
authors varchar(100) not null,
price int(11) not null,
pubdate year not null,
note varchar(255),
num int(11) not null );

②将books表中的记录插入books表中

insert into books 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 Kale',28,'2008','cartoon',28);

③将小说类型(novel)的书价格都增加5

update books 
set price = price +5 
where note = 'novel';

④将名称为EmmaT的书价格改为40,并将说明改为drama

update books
set price=40,note='drama'
where name = 'EmmaT';

⑤删除库存为0的记录

delete from books
where num = 0;
  1. 创建数据库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数据库

mysql -u root -p;

②创建数据库index_test

create database index_test;
use index_test;

③创建表test_table1

create table test_table1
(id INT(11) not null unique auto_increment,
name CHAR(100) not null,
address CHAR(100) ,
description CHAR(100),
UNIQUE INDEX UniqIdx(id));

④创建表test_table2,存储引擎为MyISAM

create table test_table2
(id int(11) not null unique primary key,
firstname char(50) not null,
middlename char(50) not null,
lastname char(50) not null,
birth date not null,
title char(100))
engine=myisam;

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

alter table test_table2 add index comdateidx(birth);

⑥使用CREATE INDEX在title字段上建立名称为FTIdx的全文索引

create fulltext index ftidx on test_table2(title);

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

alter table test_table1 drop index uniqidx;

⑧使用DROP INDEX语句删除表test_table2中名称为ComDateIdx的唯一索引

drop index comdateidx on test_table2;

三、思考题(02)

  1. 插入记录时可以不指定字段名称吗?
  2. 更新或者删除表时必须指定WHERE子句吗?
  3. 索引对数据库性能如此重要,应该如何使用它?