77范文网 - 专业文章范例文档资料分享平台

My SQL基础知识介绍第一章(3)

来源:网络收集 时间:2019-02-16 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

MySQL入门及初步 \\0 \\n \\r \\t \\b \\’ \\” \\\\ \\% \\_ 一个ASCII 0 (NUL)字符 一个新行符 一个回车符(Windows中使用\\r\\n作为新行标志) 一个定位符 一个退格符 一个单引号(“'”)符 一个双引号(“\”)符 一个反斜线(“\\”)符 一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符 一个“_”符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符 1 现在需要注意的是,如何在串中使用引号,你可以有多种办法:

?

如果串是用相同的引号括起来的,那么在串中需要引号的地方重复写该引号即可。

如果串是用另外的引号括起来的,则不需要双写相应引号,直接在串中使用,该引号不被特殊对待。

使用反斜杠,用转移序列的方式表示;这种方法不去管用来将串括起的是单引号还是双引号。

?

?

例如,下面语句的结果是:

mysql> SELECT 'hello', '\

+-------+---------+-----------+--------+--------+ | hello | \+-------+---------+-----------+--------+--------+

1.4.1.2数字值 MySQL中的数字是类似于100或3.1215936这样的值。MySQL 支持说明为整数(无小数部分)或浮点数(有小数部分)的值:

?

整数由数字序列组成。浮点数由一个阿拉伯数字序列、一个小数点和另一个阿拉伯数字序列组成。两个阿拉伯数字序列可以分别为空,但不能同时为空。 MySQL 支持科学表示法。科学表示法由整数或浮点数后跟“e”或“E”、一个符号(“+”或“-”,必须具有)和一个整数指数来表示。 数值前可放一个负号“-”以表示负值。

?

?

例如,下面都是合法的数值: 整数值:1221 0 -32

浮点数:294.42 -32032.6809e+10 148. 下面的值是错误的: 1.34E12

http://www.yurennet.com 11

MySQL金典培训教程 1.4.1.3十六进制值 MySQL支持十六进制值。以十六进制形式表示的整数由“0x”后跟一个或多个十六进制数字(”0”到“9”及“a”到“f”)组成。例如,0x0a 为十进制的 10,而 0xffff 为十进制的 65535。十六进制数字不区分大小写,但其前缀“0x”不能为“0X”。即 0x0a 和 0x0A 都是合法的,但 0X0a 和 0X0A 不是合法的。

在数字上下文,它们表现类似于一个整数(64位精度)。在字符串上下文,它们表现类似于一个二进制字符串,这里每一对十六进制数字被变换为一个字符。

例如:

mysql> select 0x5061756c+0, 0x5061756c; 其结果为:

+--------------+------------+ | 0x5061756c+0 | 0x5061756c | +--------------+------------+ | 1348564332 | Paul | +--------------+------------+

1.4.1.4日期和时间值 日期和时间值是一些类似于“1999-06-17”或“12:30:43”这样的值。MySQL 还支持日期/时间的组合,如“1999-06-17 12:30:43”。

需要要特别注意的是,MySQL 是按年-月-日的顺序表示日期的。这可能与你学过的高级语言不同。

1.4.1.4 NULL值 NULL值可适用于各种列类型,它通常用来表示“没有值”、 “无数据”等意义,并且不同于例如数字类型的0为或字符串类型的空字符串。

1.4.2列类型概述 数据库中的每个表都是由一个或多个列构成的。可以用 CREATE TABLE 语句创建一个表,创建表时要为每列指定一个类型。列的类型与数据类型相对应,但是比数据类型更为具体,用列类型描述表列可能包含的值的种类以及范围,列的值必须符合规定,不能包含对应的数据类型所允许的所有值。例如,CHAR(16)就规定了存储的字符串值必须是16位。当然不是你必须存储16个字符,而是指列在表中要占16个字符的宽度的。

MySQL的列类型是一种手段,通过这种手段可以描述一个表列包含什么类型的值,这又决定了 MySQL 怎样处理这些值。例如,数值值既可用数值也可用串的列类型来存放,但是根据存放这些值的类型,MySQL 对它们的处理将会有些不同。每种列类型都有几个特性如下:

? ?

其中可以存放什么类型的值。

值要占据多少空间,以及该值是否是定长的(所有值占相同数量的空间)或可变长的(所占空间量依赖于所存储的值)。

12 http://www.yurennet.com MySQL入门及初步 ? ? ?

1 该类型的值怎样比较和存储。 此类型是否允许 NULL 值。

此类型是否可以索引。 下面是创建一个表的例子: CREATE TABLE teacher (

id TINYINT UNSIGNED NOT NULL, name CHAR(16) NOT NULL, tele NUMERIC(8),

sex ENUM(\T \)

由上面这个例子可以知道,创建列类型的语法是: col_name col_type [col_attributes][general_attributes] ? col_name 列的名字

? ?

col_type 列类型,控制存储在列中的数据类型

col_attributes 专用属性,只能应用于制定列,例如,我们还不知道的BINARY。

如果你使用专用属性,必须在列的类型之后,列的通用属性之前。

general_attributes通用属性,可以应用在出少数列的任意列,例如上面提到了NULL、NOT NULL、和DEFAULT。

?

我们将简要地考察一下 MySQL列类型以获得一个总的概念,然后更详细地讨论描述每种列类型的属性。

MySQL的数字类型如表1-3所示,可以包括浮点类型和整数类型:

表1-3 MySQL的数字列类型

类型名 TINYINT SMALLINT MEDIUMINT INT、INTEGER BIGINT FLOAT DOUBLE DOUBLE PRECISION REAL DECIMAL NUMERIC 涵义 一个很小的整数 一个小整数 一个中等大小整数 一个正常大小整数 一个大整数 一个小(单精密)浮点数字 一个正常大小(双精密)浮点数字 一个未压缩(unpack)的浮点数字,“未压缩”意味着数字作为一个字符串被存储

MySQL的字符串类型如表1-4所示,串类型中不仅可以存储字符串,实际上任何二进制数据,例如,图象、音频、视频等,都可以存储在串类型中。

http://www.yurennet.com 13

MySQL金典培训教程 表1-4 MySQL的字符串列类型

类型名 CHAR VARCHAR TINYBLOB TINYTEXT BLOB TEXT MEDIUMBLOB MEDIUMTEXT LONGBLOB LONGTEXT ENUM('value1','value2',...) SET('value1','value2',...) 涵义 一个定长字符串 一个变长字符串 最大长度为255(2^8-1)个字符的BLOB或TEXT列 最大长度为65535(2^16-1)个字符的BLOB或TEXT列 最大长度为16777215(2^24-1)个字符的BLOB或TEXT列 最大长度为4294967295(2^32-1)个字符的BLOB或TEXT列 枚举:列只能赋值为某个枚举成员或NULL 集合:列可以赋值为多个集合成员或NULL

MySQL的日期与时间类型如表1-5所示。MySQL允许你存储某个“不严格地”合法的日期值,例如1999-11-31,原因我们认为它是应用程序的责任来处理日期检查,而不是SQL服务器。为了使日期检查更“快”,MySQL仅检查月份在0-12的范围,天在0-31的范围。

表1-5 MySQL的时间和日期列类型

类型名 DATE TIME DATETIME TIMESTAMP 涵义 一个日期,以'YYYY-MM-DD'格式来显示 一个日期和时间组合,以'YYYY-MM-DD HH:MM:SS'格式来显示 最大长度为255(2^8-1)个字符的BLOB或TEXT列 一个时间戳, 以YYYMMDDHHMMSS格式来显示 1.4.3 数字列类型 MySQL支持所有的ANSI/ISO SQL92的数字类型。这些类型包括准确数字的数据类型(NUMERIC, DECIMAL, INTEGER,和SMALLINT),也包括近似数字的数据类型(FLOAT, REAL,和DOUBLE PRECISION)。关键词INT是INTEGER的一个同义词,而关键词DEC是DECIMAL一个同义词。

MySQL的数字列类型有两种:

?

整型 MySQL提供了五种整型TINYINT、SAMLLINT、MEDIUMINT、INT和BIGINT。整数列可以用UNSIGNED禁用负数值。

浮点型 MySQL提供了三种浮点型,FLOAT、DOUBLE和DECIMAL。

?

14 http://www.yurennet.com MySQL入门及初步 下面,我们将详细描述数字类型的定义,取值范围和存储要求。

1.4.3.1整数类型 MySQL支持所有的ANSI/ISO SQL92的数字类型,其中的整数类型为INTEGER,和SMALLINT,关键词INT是INTEGER的一个同义词: SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

取值范围:有符号:-32768到32767(-215到215-1)无符号:0到65535(0到216-1) 存储要求:2个字节

INT[(M)] [UNSIGNED] [ZEROFILL]、INTEGER[(M)] [UNSIGNED] [ZEROFILL] 取值范围:有符号:-2147483648到2147483647(-231到231-1)无符号:0到4294967295(0到232-1) 存储要求:4个字节

作为对ANSI/ISO SQL92标准的扩展,MySQL也支持上表所列的整型类型TINYINT、MEDIUMINT和BIGINT: TINYINT[(M)] [UNSIGNED] [ZEROFILL]

取值范围:有符号:-128到127(-27和27-1)无符号:0到255(0到28-1) 存储要求:1个字节

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

取值范围:有符号:-8388608到8388607(-223到223-1)无符号:0到16777215(0到224-1)

存储要求:3个字节

BIGINT[(M)] [UNSIGNED] [ZEROFILL]

取值范围:有符号:-9223372036854775808到9223372036854775807(-263到263-1)无符号:0到18446744073709551615(0到264-1) 存储要求: 8个字节

在为列选择了使用某种数值类型时,除了要考虑数据的类型外,还应该注意所要表示的值的范围和存储需求,只需选择能覆盖要取值的范围的最小类型即可。选择较大类型会对空间造成浪费,使表不必要地增大,处理起来没有选择较小类型那样有效。对于整型值,如果数据取值范围较小,则TINYINT最合适。MEDIUMINT和INT虽然能表示能够表示更大的数值并且可用于更多类型的值,但存储代价更大。BIGINT 在全部整型中取值范围最大,而且需要的存储空间是表示范围次大的整型 INT 类型的两倍,因此只在确实需要时才用。

作为对ANSI/ISO SQL92标准的的另一个扩展, MySQL支持可选地指定一个整型值

http://www.yurennet.com 1 15

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库My SQL基础知识介绍第一章(3)在线全文阅读。

My SQL基础知识介绍第一章(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/476601.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: