新書推薦:
《
药食同源中药鉴别图典
》
售價:HK$
67.0
《
设计中的比例密码:建筑与室内设计
》
售價:HK$
87.4
《
冯友兰和青年谈心系列:看似平淡的坚持
》
售價:HK$
55.8
《
汉字理论与汉字阐释概要 《说解汉字一百五十讲》作者李守奎新作
》
售價:HK$
76.2
《
汗青堂丛书144·决战地中海
》
售價:HK$
168.0
《
逝去的武林(十周年纪念版 武学宗师 口述亲历 李仲轩亲历一九三零年代武人言行录)
》
售價:HK$
54.9
《
唐代冠服图志(百余幅手绘插画 图解唐代各类冠服 涵盖帝后 群臣 女官 士庶 军卫等 展现唐代社会风貌)
》
售價:HK$
87.4
《
知宋·宋代之科举
》
售價:HK$
99.7
|
編輯推薦: |
数据库技术畅销书作者亲自执笔,带领读者轻松掌握MySQL数据库
视频讲解:提供10.5小时配套多媒体教学视频
循序渐进:基础à进阶à实战
科学编排:基本语法à典型实例à编程练习à项目实战
学练结合:218个实例、4个项目案例、153个练习题
有问必答:提供QQ群、邮件和论坛答疑服务
教学服务:提供教学PPT、习题解答
|
關於作者: |
秦婧,毕业于东北大学,获博士学位。从事软件开发工作8年,有4年多的软件开发和数据库方面的教学经验。从2004至今,负责开发的主要项目涉及了医疗、电力以及环保等大型项目,同时也开发了学校的网站以及学生选课的项目。所从事的教学工作主要包括C#语言、数据库技术、Java语言等软件开发课程。编写并出版过Oracle、PLSQL、SQL Server等数据库技术图书,其中所编写的Oracle类图书多次加印,长期雄踞数据库图书销售排行榜的前列。
|
目錄:
|
第1篇 MySQL基础
第1章 数据库的安装( 教学视频:25分钟)
第2章 数据库的创建、修改及删除( 教学视频:19分钟
第3章 数据表的创建、修改及删除( 教学视频:35分钟
第4章 约束( 教学视频:42分钟)
第2篇 操作表中的数据
第5章 使用DML语言操作数据表( 教学视频:45分钟)
第6章 简单查询与子查询( 教学视频:37分钟)
第7章 复杂查询( 教学视频:43分钟)
第8章 函数( 教学视频:56分钟)
第3篇 数据库使用进阶
第9章 视图( 教学视频:23分钟)
第10章 索引( 教学视频:21分钟)
第11章 自定义函数( 教学视频:30分钟)
第12章 存储过程( 教学视频:35分钟)
第13章 触发器( 教学视频:23分钟)
第14章 数据库的权限与备份( 教学视频:27分钟)
第4篇 数据库应用实战
第15章 使用C#连接MySQL( 教学视频:26分钟)
第16章 在Java中连接MySQL( 教学视频:23分钟)
第17章 PHP访问MySQL数据库( 教学视频:32分钟)
第18章 学员管理系统( 教学视频:30分钟)
第5篇 拓 展 技 术
第19章 MySQL日志( 教学视频:22分钟)
第20章 性能优化( 教学视频:30分钟)
附录A MySQL常用命令
|
內容試閱:
|
第3章 数据表的创建、修改及删除
数据表是数据库中的重要组成部分,每一个数据库都是由若干个数据表组成的。换句话说,没有数据表就无法在数据库中存放数据。比如:在电脑中创建一个空文件夹,如果要把“HELLO
MySQL”存到文件夹中,必须把它写在Word文档或记事本中以及其他能够存放文本的文档中。这里空文件夹就相当于是数据库,而存放文本的文档就相当于是数据表。
本章的主要知识点如下:
* 数据类型的种类以及取值范围;
* 如何创建数据表;
* 如何修改数据表;
* 如何删除数据表。
3.1 数 据 类 型
数据类型是对数据存储方式的一种约定,它能够规定数据存储所占空间的大小。在向数据表中存入数据时必须要指定数据类型,就像在银行中存钱时必须要指定币种是一样的,当存入美元时,要存入你卡中的美元账户中;当存入日元时,要存入你卡中的日元账户中。本节主要讲解在MySQL中常用的数据类型,包括数值类型、字符串类型及日期时间类型等类型。
3.1.1 数值类型
所谓数值类型,就是用来存放数字型数据的,包括整数和小数。在MySQL数据库中,常用的数值类型有存放整数的int、tinyint、smallint、bigint,存放小数的decimal、float、double。比如:当要在数据库中存放年龄信息时,使用整型;当要在数据库中存放花费的金额时,使用小数类型。具体的取值范围如表3.1、表3.2所示。
表3.1 整数类型
数据类型
取值范围
说 明
tinyint
–27~27–1
占用1个字节
smallint
–215~215–1
占用2个字节
int
–231~231–1
占用4个字节
bigint
–263~263–1
占用8个字节
表3.2 小数类型
数据类型
取 值 范 围
说 明
float
占用4个字节长度
有两种表示方式,一种是float(有效位数,小数位数);另一种是float(二进制位数),二进制位数表示该小数所占用的二进制位数。可以精确到小数点后7位
double
占用8个字节长度
表示方式是double(有效位数,小数位数)。可以精确到小数点后15位
decimal
最大的有效位数是65位
表示方式是decimal(有效位数,小数位数)。可以精确到小数点后30位
?说明:由于存储小数类型占用空间较多,因此某一个要存储的数据是整型就不要用小数型存储。
3.1.2 字符串类型
字符串类型也是数据表中数据存储的重要类型之一。字符串类型主要是用来存储字符串或文本信息的。在MySQL数据库中,常用的字符串类型主要包括char、varchar、binary、varbinary等类型。比如:要在数据库中存入学生姓名就需要使用字符串类型。具体取值范围如表3.3所示。
表3.3 字符串类型
数据类型
取 值 范 围
说 明
char
0~255个字符
用于声明一个定长的数据。存储形式是charn,n代表存储的最大字符数
varchar
0~65535个字符
用于声明一个变长的数据。存储形式是varcharn,n代表存储的最大字符数
binary
0~255个字节
用于声明一个定长的数据。存储的是二进制数据,形式是binaryn,n代表存储的最大字节数
varbinary
0~65535个字节
用于声明一个变长的数据。存储的是二进制数据,形式是varbinaryn,n代表存储的最大字节数
除了上面列出的4种字符串类型外,还有用于存储大型二进制字符串数据和大型字符串数据的blob和text类型。其中在blob中又分为4种类型:tinyblob、blob、mediumblob、longblob。在text类型中也分为4种:tinytext、text、mediumtext、longtext。针对要存入的文本大小,可以选择blob或text类型中任意一种数据类型。
3.1.3 日期时间类型
在数据库中经常会存放一些日期时间的数据,比如:在数据表中记录添加数据的时间。对于日期和时间类型的数据也可以用字符串类型存放,但是为了使数据标准化,在数据库中提供了专门存储日期和时间的数据类型。在MySQL中,日期时间类型包括datetime、time、timestamp、date等。具体范围如表3.4所示。
表3.4 日期时间类型
数据类型
取 值 范 围
说 明
datetime
1000-01-01 00:00:00~9999-12-31 23:59:59
存储的格式是YYYY-MM-DD HH:MM:SS
date
1000-01-01~9999-12-31
存储的格式是YYYY-MM-DD
timestamp
显示的固定宽度是19个字符
主要用来记录update或insert操作时的时间
time
-838:59:59~838:59:59
存储的格式是HH:MM:SS
这里,timestamp类型比较特殊,timestamp的返回值是YYYY-MM-DD
HH:MM:SS格式的,如果需要数字值,可以在设置为timestamp的数据上加上“+0”。比如:timestamp得到的返回值是2012-01-01
13:00:01,那么在timestamp上加上“+0”后得到的就是20120101130001。
3.1.4 其他数据类型
除了上面列出的3类常用的数据类型外,还有一些数据类型,比如:枚举类型、集合类型、位类型等。
1.枚举类型
所谓枚举类型,就是指定数据只能取指定范围内的值。换句话说,就是如果一个数据表中某列被设置成了枚举类型,那么该列只能在设置好的范围内取值。例如:将性别列设置为枚举类型,那么,枚举值可以设置成“男”、“女”,在向表中添加数据时,就只能添加“男”和“女”这两个值。枚举类型用enum表示,在定义取值时,必须用单引号把值括住。在MySQL数据库中存储枚举值时,并不是直接将值记入数据库中,而是记录值的索引。值的索引是按值的顺序生成的,比如:枚举值是‘昨天’、‘今天’、‘明天’,那么值的索引就是1、2、3。
?注意:在枚举类型中,索引值0代表的是错误的空字符串。
2.集合类型
集合类型与枚举类型类似,都是在已知的值中取值。不同的是,集合类型可以取已知值列表中任意组合的值。例如:在集合类型中列出的值是‘昨天’、‘今天’,那么可以取的值就是‘昨天’、‘今天’以及‘昨天’,‘今天’3个值。集合类型用set表示。它最多可以有64个成员。在MySQL数据库中,保存集合类型数据时也不是真正地保存值,而是保存其二进制编码。二进制的每一位对应集合中的一项,其中低阶位对应的是集合中的第1个成员。
3.位类型
位类型包括bit和bool两种类型。bit类型主要用来定义一个指定位数的数据,它的取值范围是1~64。那么,它所占用的字节数是根据它的位数决定的,1个字节等于8位;bool用于逻辑值的判断,只有true和false两个值。可以用bool类型存放判断的只有两个值的字段,这样可以节省数据的存储空间。比如:当在数据库存储酒店房间是否为空房时,可以使用位类型表示。
3.2 创建数据表
在上一节中已经讲解了MySQL数据库中常用的数据类型,那么,为要存储的数据指定了数据类型后,数据该如何存放到表中呢?在本节中将讲解如何在MySQL数据库中直接使用SQL语句和一些辅助的图形工具创建数据表。
3.2.1 创建数据表的语法
数据表属于数据库中的对象,所以使用的语句就是SQL语句中的DML(数据操纵语句)语句。创建数据表使用的是CREATE
TABLE语句来完成的。具体的语法规则如下 所示:
CREATE TABLE table_name
column_name datatype,
column_name datatype,
…
这里,table_name是创建的数据表名;column_name是表中的列名;datatype是表中列的数据类型,这些数据类型都是上一节介绍的类型。
?注意:列名最长为128个字符,可包含中文、英文字母、下划线、#号、货币符号(¥)及AT符号(@),且同一表中不许有重名列。
3.2.2 使用语句创建数据表
根据创建表的基本语法,就可以在MySQL数据库中创建基本的数据表了。下面就以示例1为例学习如何创建表。
【示例1】创建一个团购商品的信息表。目前,几乎每一个人都去过团购的网站,那么建立一个团购商品信息表需要哪些列呢?比如:团购一张电影票,可以在网站上看到该电影票的价钱、电影票的有效期以及电影的图片信息等。那么,创建一个团购商品信息表,具体信息如表3.5所示。
表3.5 团购商品信息表(productinfo)
字段名
中 文 释 义
数 据 类 型
id
团购商品编号
int
proname
团购商品名称
varchar20
proprice
团购商品价格
float5,2
prodate
团购商品有效日期
datetime
propic
团购商品图片
varchar20
proremarks
团购商品描述
varchar250
建表代码如下所示:
create table productinfo
id
int,
--团购商品编号
proname varchar20,
--团购商品名称
proprice float5,2,
--团购商品价格
prodate
datetime,
--团购商品有效日期
propic varchar20,
--团购商品图片
proremarks varchar50 --团购商品描述
通过上面的语句,即可在数据库中创建一个名为productinfo的数据表。使用desc
表名就可以在MySQL数据库中查看到表的结构,如图3.1所示。
|
|