第2章 数据库和表的基本操作Word格式.docx
- 文档编号:18686228
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:44
- 大小:34.18KB
第2章 数据库和表的基本操作Word格式.docx
《第2章 数据库和表的基本操作Word格式.docx》由会员分享,可在线阅读,更多相关《第2章 数据库和表的基本操作Word格式.docx(44页珍藏版)》请在冰豆网上搜索。
|test|
5rowsinset(0.08sec)
从上述执行结果可以看出,数据库系统中存在5个数据库。
其中,除了在例2-1中创建的itcast数据库外,其它的数据库都是在MySQL安装完成后自动创建的。
创建好数据库之后,要想查看某个已经创建的数据库信息,可以通过SHOWCREATEDATABASE语句查看,具体语法格式如下所示:
SHOWCREATEDATABASE数据库名称;
【例2-3】查看创建好的数据库itcast的信息,SQL语句如下所示:
SHOWCREATEDATABASEitcast;
SHOWCREATEDATABASEitcast;
+----------+-----------------------------------------------------------------+
|Database|CreateDatabase|
|itcast|CREATEDATABASE`itcast`/*!
40100DEFAULTCHARACTERSETutf8*/|
1rowinset(0.00sec)
上述执行结果显示出了数据库itcast的创建信息,例如,数据库itcast的编码方式为utf8。
2.1.2修改数据库
MySQL数据库一旦安装成功,创建的数据库编码也就确定了。
但如果想修改数据库的编码,可以使用ALTERDATABASE语句实现。
修改数据库编码的基本语法格式如下所示:
ALTERDATABASE数据库名称DEFAULTCHARACTERSET
编码方式COLLATE编码方式_bin
在上述格式中,“数据库名称”指的是要修改的数据库,“编码方式”指的是修改后的数据库编码。
【例2-4】将数据库itcast的编码修改为gbk,SQL语句如下所示:
ALTERDATABASEitcastDEFAULTCHARACTERSET
gbkCOLLATEgbk_bin;
为了验证数据库的编码是否修改成功,接下来,使用SHOWCREATEDATABASE语句查看修改后的数据库,执行结果如下:
+----------+--------------------------------------------------------------------
------------+
|Database|CreateDatabase
|
40100DEFAULTCHARACTERSETgbkCOLLATE
gbk_bin*/|
1rowinset(0.02sec)
从上述执行结果可以看出,数据库itcast的编码为gbk,说明itcast数据库的编码信息修改成功了。
2.1.3删除数据库
删除数据库是将数据库系统中已经存在的数据库删除。
成功删除数据库后,数据库中的所有数据都将被清除,原来分配的空间也将被回收。
在MySQL中,删除数据库的基本语法格式如下所示:
DROPDATABASE数据库名称;
在上述语法格式中,“DROPDATABASE”是删除数据库的SQL语句,“数据库名称”是要删除的数据库名称。
需要注意的是,如果要删除的数据库不存在,则删除会失败。
【例2-5】删除名称为itcast的数据库,SQL语句如下所示:
DROPDATABASEitcast;
为了验证删除数据库的操作是否成功,接下来,使用SHOWDATABASES语句查看已经存在的数据库,执行结果如下所示:
4rowsinset(0.05sec)
从上述执行结果可以看出,数据库系统中已经不存在名称为itcast的数据库了,说明itcast数据库被成功删除了。
数据类型
使用MySQL数据库存储数据时,不同的数据类型决定了MySQL存储数据方式的不同。
为此,MySQL数据库提供了多种数据类型,其中包括整数类型、浮点数类型、定点数类型、日期和时间类型、字符串类型和二进制类型。
接下来,本节将针对这些数据类型进行详细地讲解。
2.1.4整数类型
在MySQL数据库中,经常需要存储整数数值。
根据数值取值范围的不同,MySQL中的整数类型可分为5种,分别是TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。
表2-1列举了MySQL不同整数类型所对应的字节大小和取值范围。
表2-1MySQL整数类型
字节数
无符号数的取值范围
有符号数的取值范围
TINYINT
1
0~255
-128~127
SMALLINT
2
0~65535
-32768~32768
MEDIUMINT
3
0~16777215
-8388608~8388608
INT
4
0~4294967295
-2147483648~2147483648
BIGINT
8
0~184********709551615
-9223372036854775808~9223372036854775808
从表2-1中可以看出,不同整数类型所占用的字节数和取值范围都是不同的。
其中,占用字节数最小的是TINYINT,占用字节数最大的是BIGINT。
需要注意的是,不同整数类型的取值范围可以根据字节数计算出来,例如,TINYINT类型的整数占用1个字节,1个字节是8位,那么,TINYINT类型无符号数的最大值就是28-1,即255,TINYINT类型有符号数的最大值就是27-1,即127。
同理可以算出其它不同整数类型的取值范围。
2.1.5浮点数类型和定点数类型
在MySQL数据库中,存储的小数都是使用浮点数和定点数来表示的。
浮点数的类型有两种,分别是单精度浮点数类型(FLOAT)和双精度浮点类型(DOUBLE)。
而定点数类型只有DECIMAL类型。
表2-2列举了MySQL中浮点数和定点数类型所对应的字节大小及其取值范围。
表2-2MySQL浮点数和定点数类型
有符号的取值范围
无符号的取值范围
FLOAT
-3.402823466E+38~
-1.175494351E-38
0和1.175494351E-38~
3.402823466E+38
DOUBLE
-1.7976931348623157E+308~
2.2250738585072014E-308
0和2.2250738585072014E-308~
1.7976931348623157E+308
DECIMAL(M,D)
M+2
从表2-2中可以看出,DECIMAL类型的取值范围与DOUBLE类型相同。
需要注意的是,DECIMAL类型的有效取值范围是由M和D决定的,其中,M表示的是数据的长度,D表示的是小数点后的长度。
比如,将数据类型为DECIMAL(6,2)的数据3.1415插入数据库后,显示的结果为3.14。
2.1.6日期与时间类型
为了方便在数据库中存储日期和时间,MySQL提供了表示日期和时间的数据类型,分别是YEAR、DATE、TIME、DATETIME和TIMESTAMP。
表2-3列举了这些MySQL中日期和时间数据类型所对应的字节数、取值范围、日期格式以及零值。
表2-3MySQL日期和时间类型
取值范围
日期格式
零值
YEAR
1901~2155
YYYY
0000
DATE
1000-01-01~9999-12-3
YYYY-MM-DD
0000-00-00
TIME
-838:
59:
59~838:
59
HH:
MM:
SS
00:
00
DATETIME
1000-01-0100:
00~
9999-12-3123:
YYYY-MM-DDHH:
0000-00-0000:
TIMESTAMP
1970-01-0100:
01~
2038-01-1903:
14:
07
从表2-3中可以看出,每种日期和时间类型的取值范围都是不同的。
需要注意的是,如果插入的数值不合法,系统会自动将对应的零值插入数据库中。
为了大家更好地学习日期和时间类型,接下来,将表2-3中的类型进行详细讲解,具体如下:
1、YEAR类型
YEAR类型用于表示年份,在MySQL中,可以使用以下三种格式指定YEAR类型的值:
(1)使用4位字符串或数字表示,范围为‘1901’~‘2155’或1901~2155。
例如,输入‘2014’或2014,插入到数据库的值均为2014。
(2)使用2位字符串表示,范围为‘00’~‘99’,其中,‘00’~‘69’范围的值会被转换为2000~2069范围的YEAR值,‘70’~‘99’范围的值会被转换为1970~1999范围的YEAR值。
例如,输入‘14’,插入到数据库的值为2014。
(3)使用2位数字表示,范围为1~99,其中,1~69范围的值会被转换为2001~2069范围的YEAR值,70~99范围的值会被转换为1970~1999范围的YEAR值。
例如,输入14,插入到数据库的值为2014。
需要注意的是,当使用YEAR类型时,一定要区分‘0’和0。
因为字符串格式的‘0’表示的是YEAR值是2000,而数字格式的0表示的YEAR值是0000。
2、DATE类型
DATE类型用于表示日期值,不包含时间部分。
在MySQL中,可以使用以下四种格式指定DATE类型的值:
(1)以‘YYYY-MM-DD’或者‘YYYYMMDD’字符串格式表示。
例如,输入‘2014-01-21’或‘20140121’,插入数据库的日期都为2014-01-21。
(2)以‘YY-MM-DD’或者‘YYMMDD’字符串格式表示。
YY表示的是年,范围为‘00’~‘99’,其中‘00’~‘69’范围的值会被转换为2000~2069范围的值,‘70’~‘99’范围的值会被转换为1970~1999范围的值。
例如,输入‘14-01-21’或‘140121’,插入数据库的日期都为2014-01-21。
(3)以YY-MM-DD或者YYMMDD数字格式表示。
例如,输入14-01-21或140121,插入数据库的日期都为2014-01-21。
(4)使用CURRENT_DATE或者NOW()表示当前系统日期。
3、TIME类型
TIME类型用于表示时间值,它的显示形式一般为HH:
SS,其中,HH表示小时,MM表示分,SS表示秒。
在MySQL中,可以使用以下三种格式指定TIME类型的值:
(1)以‘DHH:
SS’字符串格式表示。
其中,D表示日,可以取0~34之间的值,插入数据时,小时的值等于(D*24+HH)。
例如,输入‘211:
30:
50’,插入数据库的日期为59:
50。
(2)以‘HHMMSS’字符串格式或者HHMMSS数字格式表示。
例如,输入‘345454’或345454,插入数据库的日期为34:
54:
54。
(3)使用CURRENT_TIME或NOW()输入当前系统时间。
4、DATETIME类型
DATETIME类型用于表示日期和时间,它的显示形式为‘YYYY-MM-DDHH:
SS’,其中,YYYY表示年,MM表示月,DD表示日,HH表示小时,MM表示分,SS表示秒。
在MySQL中,可以使用以下四种格式指定DATETIME类型的值:
(1)以‘YYYY-MM-DDHH:
SS’或者‘YYYYMMDDHHMMSS’字符串格式表示的日期和时间,取值范围为‘1000-01-0100:
00’~‘9999-12-323:
59’。
例如,输入‘2014-01-2209:
01:
23’或20140122090123,插入数据库的DATETIME值都为2014-01-2209:
23。
(2)以‘YY-MM-DDHH:
SS’或者‘YYMMDDHHMMSS’字符串格式表示的日期和时间,其中YY表示年,取值范围为‘00’~‘99’。
与DATE类型中的YY相同,‘00’~‘69’范围的值会被转换为2000~2069范围的值,‘70’~‘99’范围的值会被转换为1970~1999范围的值。
(3)以YYYYMMDDHHMMSS或者YYMMDDHHMMSS数字格式表示的日期和时间。
例如,插入20140122090123或者140122090123,插入数据库的DATETIME值都为2014-01-2209:
(4)使用NOW来输入当前系统的日期和时间。
5、TIMESTAMP类型
TIMESTAMP类型用于表示日期和时间,它的显示形式同DATETIME相同,但取值范围比DATETIME小。
下面介绍几种TIMESTAMP类型与DATATIME类型不同的形式,具体如下:
(1)使用CURRENT_TIMESTAMP来输入系统当前日期和时间。
(2)输入NULL时,系统会输入系统当前日期和时间。
(3)无任何输入时,系统会输入系统当前日期和时间。
2.1.7字符串和二进制类型
为了存储字符串、图片和声音等数据,MySQL提供了字符串和二进制类型。
表2-4列举了MySQL中的字符串和二进制类型。
表2-4MySQL字符串和二进制类型
类型说明
CHAR
用于表示固定长度的字符串
VARCHAR
用于表示可变长度的字符串
BINARY
用于表示固定长度的二进制数据
VARBINARY
用于表示可变长度的二进制数据
BOLB
用于表示二进制大数据
TEXT
用于表示大文本数据
ENUM
表示枚举类型,只能存储一个枚举字符串值
SET
表示字符串对象,可以有零或多个值
BIT
表示位字段类型
表2-4列举的字符串和二进制类型中,不同数据类型具有不同的特点,接下来,针对这些数据类型进行详细地讲解,具体如下:
1、CHAR和VARCHAR类型
CHAR和VARCHAR类型都用来表示字符串数据,不同的是,VARCHAR可以存储可变长度的字符串。
在MySQL中,定义CHAR和VARCHAR类型的方式如下所示:
CHAR(M)或VARCHAR(M)
在上述定义方式中,M指的是字符串的最大长度。
为了帮助大家更好地理解CHAR和VARCHAR之间的区别,接下来,以CHAR(4)和VARCHAR(4)为例进行说明,具体如表2-5所示。
表2-5CHAR(4)和VARCHAR(4)对比
插入值
CHAR(4)
存储需求
VARCHAR(4)
‘’
4个字节
1个字节
‘ab’
3个字节
‘abc’
‘abcd’
5个字节
‘abcdef’
从表2-5中可以看出,当数据为CHAR(4)类型时,不管插入值的长度是多少,所占用的存储空间都是4个字节。
而VARCHAR(4)所对应的数据所占用的字节数为实际长度加1。
2、BINARY和VARBINARY类型
BINARY和VARBINARY类型类似于CHAR和VARCHAR,不同的是,它们所表示的是二进制数据。
定义BINARY和VARBINARY类型的方式如下所示:
BINARY(M)或VARBINARY(M)
在上述格式中,M指的是二进制数据的最大字节长度。
需要注意的是,BINARY类型的长度是固定的,如果数据的长度不足最大长度,将在数据的后面用“\0”补齐,最终达到指定长度。
例如,指定数据类型为BINARY(3),当插入a时,实际存储的数据为“a\0\0”,当插入ab时,实际存储的数据为“ab\0”。
3、TEXT类型
TEXT类型用于表示大文本数据,例如,文章内容、评论等,它的类型分为四种,具体如表2-6所示。
表2-6TEXT类型
存储范围
TINYTEXT
0~255字节
0~65535字节
MEDIUMTEXT
0~16777215字节
LONGTEXT
0~4294967295字节
4、BLOB类型
BLOB类型是一种特殊的二进制类型,它用于表示数据量很大的二进制数据,例如图片、PDF文档等。
BLOB类型分为四种,具体如表2-7所示。
表2-7BLOB类型
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB
需要注意的是,BLOB类型与TEXT类型很相似,但BLOB类型数据是根据二进制编码进行比较和排序,而TEXT类型数据是根据文本模式进行比较和排序。
5、ENUM类型
ENUM类型又称为枚举类型,定义ENUM类型的数据格式如下所示:
ENUM('
值1'
'
值2'
值3'
……'
值n'
)
在上述格式中,('
)称为枚举列表,ENUM类型的数据只能从枚举列表中取,并且只能取一个。
需要注意的是,枚举列举中的每个值都有一个顺序编号,MySQL中存入的就是这个顺序编号,而不是列表中的值。
6、SET类型
SET类型用于表示字符串对象,它的值可以有零个或多个,SET类型数据的定义格式与ENUM类型类似,具体语法格式如下所示:
SET('
与ENUM类型相同,('
)列表中的每个值都有一个顺序编号,MySQL中存入的也是这个顺序编号,而不是列表中的值。
7、BIT类型
BIT类型用于表示二进制数据。
定义BIT类型的基本语法格式如下所示:
BIT(M)
在上述格式中,M用于表示每个值的位数,范围为1~64。
需要注意的是,如果分配的BIT(M)类型的数据长度小于M,将在数据的左边用0补齐。
例如,为BIT(6)分配值b’101’的效果与分配b’000101’相同。
数据表的基本操作
2.1.8创建数据表
数据库创建成功后,就需要创建数据表。
所谓创建数据表指的是在已存在的数据库中建立新表。
需要注意的是,在操作数据表之前,应该使用“USE数据库名”指定操作是在哪个数据库中进行,否则会抛出“Nodatabaseselected”错误。
创建数据表的基本语法格式如下所示:
CREATETABLE表名
(
字段名1,数据类型[完整性约束条件],
字段名2,数据类型[完整性约束条件],
......
字段名n,数据类型[完整性约束条件],
)
在上述语法格式中,“表名”指的是创建的数据表名称,“字段名”指的是数据表的列名,“完整性约束条件”指的是字段的某些特殊约束条件,关于表的约束,将在下个小节进行详细讲解。
【例2-6】创建一个用于存储学生成绩的表tb_grade,如表2-8所示。
表2-8tb_grade表
字段名称
备注说明
id
INT(11)
学生的编号
name
VARCHAR(20)
学生的姓名
grade
学生的成绩
要想创建表2-8所示的数据表,需要首先创建一个数据库,SQL语句如下:
CREA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 数据库和表的基本操作 数据库 基本 操作