第2章 数据库和表的基本操作 联系客服

发布时间 : 星期四 文章第2章 数据库和表的基本操作更新完毕开始阅读a3d619f658fafab068dc0265

传智播客——专注于Java、.Net和Php、网页平面设计工程师的培训

第2章 数据库和表的基本操作

学习目标

? 掌握数据库的基本操作,会对数据库进行增删改查操作 ? 掌握数据表的基本操作,会对数据表进行增删改查操作 ? 了解数据类型,学会SQL语句中不同类型数据的表示方式 ? 掌握表的约束,学会使用不同的约束来操作表 ? 掌握索引的作用,会创建和删除索引

在软件开发中,必不可少会使用到数据库和数据表。学会数据库和数据表的基本操作,可以轻松实现数据的管理。本章将针对数据库和数据表的基本操作进行详细地讲解。

2.1 数据库基础知识

2.1.1 创建和查看数据库

MySQL安装完成后,要想将数据存储到数据库的表中,首先得创建一个数据库。创建数据库就是在数据库系统中划分一块存储数据的空间。在MySQL中,创建数据库的基本语法格式如下所示:

CREATE DATABASE 数据库名称;

在上述语法格式中,“CREATE DATABASE”是固定的SQL语句,专门用来创建数据库。“数据库名称”是唯一的,不可重复出现。

【例2-1】创建一个名称为itcast的数据库,SQL语句如下所示:

CREATE DATABASE itcast;

执行结果如下所示:

mysql> CREATE DATABASE itcast; Query OK, 1 row affected (0.08 sec)

如果看到上述运行结果,说明SQL语句执行成功了。为了验证数据库系统中是否创建了名称为itcast的数据库,需要查看数据库。在MySQL中,查看数据库的SQL语句如下所示:

SHOW DATABASES;

【例2-2】使用SHOW语句查看已经存在的数据库,执行结果如下所示:

mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema |

1

| mysql | | performance_schema | | itcast | | test | +--------------------+ 5 rows in set (0.08 sec)

第2章 数据库和表的基本操作

从上述执行结果可以看出,数据库系统中存在5个数据库。其中,除了在例2-1中创建的itcast数据库外,其它的数据库都是在MySQL安装完成后自动创建的。

创建好数据库之后,要想查看某个已经创建的数据库信息,可以通过SHOW CREATE DATABASE语句查看,具体语法格式如下所示:

SHOW CREATE DATABASE 数据库名称;

【例2-3】查看创建好的数据库itcast的信息,SQL语句如下所示:

SHOW CREATE DATABASE itcast;

执行结果如下所示:

mysql> SHOW CREATE DATABASE itcast;

+----------+-----------------------------------------------------------------+ | Database | Create Database |

+----------+-----------------------------------------------------------------+ | itcast | CREATE DATABASE `itcast` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+-----------------------------------------------------------------+ 1 row in set (0.00 sec)

上述执行结果显示出了数据库itcast的创建信息,例如,数据库itcast的编码方式为utf8。

2.1.2 修改数据库

MySQL数据库一旦安装成功,创建的数据库编码也就确定了。但如果想修改数据库的编码,可以使用ALTER DATABASE语句实现。修改数据库编码的基本语法格式如下所示:

ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 编码方式 COLLATE 编码方式_bin

在上述格式中,“数据库名称”指的是要修改的数据库,“编码方式”指的是修改后的数据库编码。 【例2-4】将数据库itcast的编码修改为gbk,SQL语句如下所示:

ALTER DATABASE itcast DEFAULT CHARACTER SET gbk COLLATE gbk_bin;

为了验证数据库的编码是否修改成功,接下来,使用SHOW CREATE DATABASE语句查看修改后的数据库,执行结果如下:

mysql> SHOW CREATE DATABASE itcast;

+----------+-------------------------------------------------------------------- ------------+

| Database | Create Database |

+----------+-------------------------------------------------------------------- ------------+

| itcast | CREATE DATABASE `itcast` /*!40100 DEFAULT CHARACTER SET gbk COLLATE gbk_bin */ |

+----------+--------------------------------------------------------------------

2

传智播客——专注于Java、.Net和Php、网页平面设计工程师的培训

------------+

1 row in set (0.02 sec)

从上述执行结果可以看出,数据库itcast的编码为gbk,说明itcast数据库的编码信息修改成功了。

2.1.3 删除数据库

删除数据库是将数据库系统中已经存在的数据库删除。成功删除数据库后,数据库中的所有数据都将被清除,原来分配的空间也将被回收。在MySQL中,删除数据库的基本语法格式如下所示:

DROP DATABASE 数据库名称;

在上述语法格式中,“DROP DATABASE”是删除数据库的SQL语句,“数据库名称”是要删除的数据库名称。需要注意的是,如果要删除的数据库不存在,则删除会失败。

【例2-5】删除名称为itcast的数据库,SQL语句如下所示:

DROP DATABASE itcast;

为了验证删除数据库的操作是否成功,接下来,使用SHOW DATABASES语句查看已经存在的数据库,执行结果如下所示:

mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.05 sec)

从上述执行结果可以看出,数据库系统中已经不存在名称为itcast的数据库了,说明itcast数据库被成功删除了。

2.2 数据类型

使用MySQL数据库存储数据时,不同的数据类型决定了MySQL存储数据方式的不同。为此,MySQL数据库提供了多种数据类型,其中包括整数类型、浮点数类型、定点数类型、日期和时间类型、字符串类型和二进制类型。接下来,本节将针对这些数据类型进行详细地讲解。

2.2.1 整数类型

在MySQL数据库中,经常需要存储整数数值。根据数值取值范围的不同,MySQL中的整数类型可分为5种,分别是TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。表2-1列举了MySQL不同整数类型所对应的字节大小和取值范围。

表2-1 MySQL整数类型 数据类型 TINYINT

字节数 1 无符号数的取值范围 0~255 有符号数的取值范围 -128~127 3

SMALLINT MEDIUMINT INT BIGINT 2 3 4 8 0~65535 0~16777215 0~4294967295 第2章 数据库和表的基本操作

-32768~32768 -8388608~8388608 -2147483648~2147483648 -9223372036854775808~9223372036854775808 0~18446744073709551615 从表2-1中可以看出,不同整数类型所占用的字节数和取值范围都是不同的。其中,占用字节数最小的是TINYINT,占用字节数最大的是BIGINT。需要注意的是,不同整数类型的取值范围可以根据字节数计算出来,例如,TINYINT类型的整数占用1个字节,1个字节是8位,那么,TINYINT类型无符号数的最大值就是28-1,即255,TINYINT类型有符号数的最大值就是27-1,即127。同理可以算出其它不同整数类型的取值范围。

2.2.2 浮点数类型和定点数类型

在MySQL数据库中,存储的小数都是使用浮点数和定点数来表示的。浮点数的类型有两种,分别是单精度浮点数类型(FLOAT)和双精度浮点类型(DOUBLE)。而定点数类型只有DECIMAL类型。表2-2列举了MySQL中浮点数和定点数类型所对应的字节大小及其取值范围。

表2-2 MySQL浮点数和定点数类型 数据类型 FLOAT DOUBLE DECIMAL(M,D) 字节数 4 4 M+2 有符号的取值范围 -3.402823466E+38~ -1.175494351E-38 -1.7976931348623157E+308~ 2.2250738585072014E-308 -1.7976931348623157E+308~ 2.2250738585072014E-308 无符号的取值范围 0和1.175494351E-38~ 3.402823466E+38 0和2.2250738585072014E-308~ 1.7976931348623157E+308 0和2.2250738585072014E-308~ 1.7976931348623157E+308 从表2-2中可以看出,DECIMAL类型的取值范围与DOUBLE类型相同。需要注意的是,DECIMAL类型的有效取值范围是由M和D决定的,其中,M表示的是数据的长度,D表示的是小数点后的长度。比如,将数据类型为DECIMAL(6,2) 的数据3.1415插入数据库后,显示的结果为3.14。

2.2.3 日期与时间类型

为了方便在数据库中存储日期和时间,MySQL提供了表示日期和时间的数据类型,分别是YEAR、DATE、TIME、DATETIME和TIMESTAMP。表2-3列举了这些MySQL中日期和时间数据类型所对应的字节数、取值范围、日期格式以及零值。

表2-3 MySQL日期和时间类型 数据类型 YEAR DATE TIME DATETIME TIMESTAMP 字节数 1 4 3 8 4 取值范围 1901~2155 1000-01-01~9999-12-3 -838:59:59~838:59:59 1000-01-01 00:00:00~ 9999-12-31 23:59:59 1970-01-01 00:00:01~ 2038-01-19 03:14:07 日期格式 YYYY YYYY-MM-DD HH:MM:SS YYYY-MM-DD HH:MM:SS YYYY-MM-DD HH:MM:SS 零值 0000 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 4