项目3 MySQL基础知识(课件)-《数据库MYSQL》同步教学(河北科技出版社)

2024-11-18
| 52页
| 191人阅读
| 3人下载
特供

内容正文:

数据库原理与应用技术MySQL 项目3 MySQL基础知识 1 《数据库原理与应用技术-MySQL》 MySQL基础知识 任务1 结构化查询语言 任务2 MYSQL数据类型 任务3 MySQL运算符 任务4 MySQL函数 1 《数据库原理与应用技术-MySQL》 任务1 结构化查询语言 子任务1 SQL概述 子任务2 SQL产生与发展 子任务3 SQL的特点 1 《数据库原理与应用技术-MySQL》 子任务1 SQL概述 SQL(Structured Query Language)是一种结构化查询语言,专门用来访问和操作数据库,可与多种数据库管理系统软件协同工作。这种语言具有交互性,能为用户提供极大的便利,提高计算机应用系统的工作质量与效率。 1 《数据库原理与应用技术-MySQL》 子任务1 SQL概述 SQL语言按照功能可以分为三部分: 1.数据定义语言(Data Definition Language,DDL)。 数据库定义语言主要用于对数据库、表、视图、索引等数据库对象进行创建、删除、修改操作。例如,CREATE语句创建数据库、数据表,ALTER语句修改表的定义,DROP语句删除数据库、删除表。 2.数据操作语言(Data Manipulation Language,DML)。 数据操作语言又称为数据操纵语言,主要用于对数据表中的数据进行查询及增删改操作。例如,SELECT语句查询数据表中的一条或多条记录,INSERT语句插入记录,UPDATE语句更新记录,DELETE语句删除记录。 3.数据控制语言(Data Control Language,DCL)。 数据控制语言主要用于控制用户的访问权限。例如,GRANT语句给用户增加权限,REVOKE语句收回用户的权限。 1 《数据库原理与应用技术-MySQL》 子任务2 SQL产生与发展 SQL是IBM公司于1975-1979年开发出来的,1986年10月美国国家标准局(简称 ANSI)数据库委员会批准了SQL作为关系数据库语言的美国标准。同年公布SQL标准文本(简称SQL-86)。 1987年6月ISO(International Organization for Standardization)正式采纳SQL为国际标准,并在此基础上进行了补充。 1989年4月,ISO提出了具有完整性特征的SQL,并称之为SQL-89。 1992年11月ISO 公布了SQL新标准(SQL-92)。 1999年公布了SQL-99标准。 目前,各大数据库厂商的数据库产品都从很大程度上支持SQL标准,并在实践过程中对它们作了一些修改和补充,所以不同的数据库产品的SQL仍然存在少量的差别。 1 《数据库原理与应用技术-MySQL》 子任务3 SQL的特点 1.SQL语言的特点 (1)SQL语言是一种一体化的语言。 它包括了数据定义、数据查询、数据操纵和数据控制等方面的功能,可以完成数据库活动中的全部工作。 (2)SQL语言是一种高度非过程化的语言。 非关系数据模型的数据操纵语言是面向过程的语言,用其完成某项请求,必须指定存取路径。而SQL语言不需要每一步都告诉计算机“如何”去做,而只需要描述清楚用户要“做什么”,SQL语言就可以将要求交给系统,自动完成全部工作。这不但大大减轻了用户负担,而且有利于提高SQL 数据独立性。 1 《数据库原理与应用技术-MySQL》 子任务3 SQL的特点 (3)SQL语言非常简洁。 SQL语言功能极强,可以进行非常复杂和高级的数据库操作,但由于设计巧妙,语言十分简捷,完成核心功能只用为数不多的几条命令,SQL的语法也非常简单,接近自然语言(英语),因此更容易学习和掌握。 (4)SQL语言可以直接以命令方式交互使用,也可以嵌人到程序设计语言中以程序方式使用,这些使用方式为用户提供了灵活的选择。 1 《数据库原理与应用技术-MySQL》 子任务3 SQL的特点 2. SQL语言的语法规则 (1)SQL语句可以写在一行或者多行。 (2)每条命令可以以分号“;”或“\g”或“ \G”结束。 (3)关键字不能缩写也不能分行书写。 (4)必须保证所有的圆括号、单引号、双引号是成对出现的,必须使用英文状态下的半角输入方式。 (5)MySQL在Windows 环境下大小写不敏感,在Linux 环境下大小写敏感。 (6)注释语句可以使用如下格式: ① 单行注释:-- 注释文字(--后面必须至少包含一个空格) ② 多行注释:/* 注释文字 */ 注意:MySQL中,单行注释除了可以使用双减号作为开始标识,还支持以“#”做开始标识。 1 《数据库原理与应用技术-MySQL》 任务2 MYSQL数据类型 子任务1 数据类型简介 子任务2 整数类型 子任务3 小数类型 子任务4 日期和时间类型 子任务5 字符串类型 1 《数据库原理与应用技术-MySQL》 子任务1 数据类型简介 数据类型(Data Type)是数据的一种属性,不同的数据类型决定了MySQL存储数据方式不同。根据需要选择合适的数据类型,有利于提高查询效率和节省存储空间。 1 《数据库原理与应用技术-MySQL》 子任务1 数据类型简介 MySQL数据类型 类型 详细分类 类型举例 数值类型 整数类型 TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT 浮点数类型 FLOAT、DOUBLE 定点数类型 DECIMAL 位类型 BIT 日期时间类型 日期时间类型 YEAR、TIME、 DATE、DATETIME、TIMESTAMP 字符串类型 文本字符串类型 CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT 枚举、集合类型 ENUM、SET 二进制字符串类型 BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB 1 《数据库原理与应用技术-MySQL》 子任务2 整数类型 整数类型及其取值范围 序号 数据类型 字节数 说明 取值范围 1 TINYINT 1 微整型 无符号数:0 ~ 255(28-1) 有符号数:-128 ~ 127 2 SMALLINT 2 小整型 无符号数:0 ~ 65535(216-1) 有符号数:-32768 ~ 32767 3 MEDIUMINT 3 中整型 无符号数:0 ~ 16777215(224-1) 有符号数:-8388608 ~ 8388607 4 INT(INTEGER) 4 整型 无符号数:0 ~4294967295(232-1) 有符号数:-2147483648 ~ 2147483647 5 BIGINT 8 大整型 无符号数:0 ~ 18446744073709551615(264-1); 有符号数:-9223372036854775808 ~ 9223372036854775807 1 《数据库原理与应用技术-MySQL》 子任务2 整数类型 说明: 1.整数类型后面加UNSIGNED属性,表示使用无符号数据类型,否则为有符号数据类型。 2.整数类型后面加(M)属性,表示指定显示宽度为M。 3.整数类型后面加ZEROFILL属性,表示为字段设置零填充,若数值宽度小于显示宽度,则在此数值左侧用字符0填充;若大于显示宽度,则在不超出数据范围的前提下,正常显示。 1 《数据库原理与应用技术-MySQL》 子任务3 小数类型 小数类型及其取值范围 序号 数据类型 字节数 说明 取值范围 1 FLOAT 4 单精度浮点型 有符号数:-3.402823466E+38~ -1.175494351E-38, 0, 1.175494351E-38 ~3.402823466E+38 无符号数:0, 1.175494351E-38 ~ 3.402823466E+38 2 DOUBLE 8 双精度浮点型 有符号数:-1.7976931348623157E+308~ -2.2250738585072014E-308, 0,2.2250738585072014E-308 ~ 1.7976931348623157E+308 无符号数:0,2.2250738585072014E-308 ~ 1.797693134862315 7E+308 3 DECIMAL(M,D) 或DEC(M,D) M+2 定点数类型 最大取值范围与double相同,有效值范围由M和D来决定 1 《数据库原理与应用技术-MySQL》 子任务3 小数类型 说明: 1.浮点数和定点数类型后面加UNSIGNED属性,表示无符号数,此时取值范围不包含负数。 2.浮点数和定点数类型后面加(M,D)属性,M称为精度,表示数字总位数(不包括小数点“.”和负号“-”),D称为标度,表示小数点后的小数位数。 3.浮点数类型,D的取值范围是0~30,M的取值范围是D~255,且不能大于M-2。如果不指定(M,D),默认会按照实际的精度显示。 4.定点数类型,用于表示高精度的小数。M可以表示的最大值为65,默认值为10;D可以表示的最大值为30,默认值为0。 5.定点数在MySQL内部以字符串的形式存储,在对精度要求比较高的时候,推荐使用DECIMAL类型。 1 《数据库原理与应用技术-MySQL》 子任务4 日期和时间类型 日期和时间类型及其取值范围 序号 数据类型 字节数 说明 取值范围 1 DATE 3 日期值 ‘1000-01-01’~‘9999-12-31’ 2 TIME 3 时间值 ‘-838:59:59’~ ‘838:59:59’ 3 DATETIME 8 日期时间值,不支持时区 ‘1000-01-01 00:00:00’~ ‘9999-12-31 23:59:59’ 4 TIMESTAMP 4 日期时间的时间戳,支持时区 ‘1970-01-01 00:00:01’UTC ~‘2038-01-19 03:14:07’UTC 5 YEAR 1 年份值 ‘1901’ ~ ‘2155’ 1 《数据库原理与应用技术-MySQL》 子任务4 日期和时间类型 1.YEAR类型 输入格式 范围 表示含义 4位字符串‘YYYY’或4位数字YYYY ‘1901’~‘2155’或1901~2155 1901年~ 2155年 2位字符串‘YY’或 2位数字YY ‘01’~‘69’或 1~69 2001年~ 2069年 ‘70’~‘99’或 70~99 1970年~ 1999年 数字0或字符‘0’ 0或 00 0000年 ‘0’ 2000年 1 《数据库原理与应用技术-MySQL》 子任务4 日期和时间类型 2. DATE类型 用于表示日期,显示形式一般为YYYY-MM-DD。其中, YYYY表示年,MM表示月,DD表示日。 在MySQL中,既可以使用字符形式的‘YYYY-MM-DD'、‘YYYYMMDD’、‘YY-MM-DD’、‘YYMMDD’表示日期,也可以使用数字形式的YYYYMMDD、YYMMDD表示日期;年份既可以是4位,也可以是2位,如果是两位的年份,表示含义同YEAR类型。 此外,年月日之间的分隔符“-”,还可以用“.”、“,”、“/”、“\”等符号来替代。 1 《数据库原理与应用技术-MySQL》 子任务4 日期和时间类型 3.TIME类型 用于表示时间值,它的显示形式一般为HH:MM:SS。其中,HH表示小时,MM 表示分钟,SS表示秒。 在MySQL中, 既可以使用字符串形式的‘HH:MM:SS'、‘HHMMSS'、‘HH:MM'、‘SS'表示时间,也可以使用数字形式的HHMMSS表示时间,还可以使用带D的字符串‘D HH:MM:SS'、‘D HH:MM'、‘D HH'格式表示,其中,D表示日,取值范围为0~34,插入TIME类型的数据时,D会被转化为小时,计算格式为D*24+HH。 TIME类型的小时部分不仅可以用于表示一天的时间(此时必须小于24小时),还可能是某个过去的时间或时间间隔(此时可大于24小时甚至可以为负数)。 1 《数据库原理与应用技术-MySQL》 子任务4 日期和时间类型 4.DATETIME类型 用于表示日期和时间,它的显示形式为 YYYY-MM-DD HH:MM:SS。 在MySQL中, 既可以使用字符串形式的‘YYYY-MM-DD HH:MM:SS’、‘YYYYMMDDHHMMSS’、‘YY-MM-DD HH:MM:SS’、‘YYMMDDHHMMSS’表示日期和时间,也可以使用数字形式的YYYYMMDDHHMMSS或 YYMMDDHHMMSS表示日期和时间。 如果是两位的年份,表示含义同YEAR类型。 1 《数据库原理与应用技术-MySQL》 子任务4 日期和时间类型 5.TIMESTAMP类型 表示日期时间,它的显示形式与DATETIME类型相同, 都是 YYYY-MM-DD HH:MM:SS。 TIMESTAMP占4个字节的存储空间,但取值范围比DATETIME小,只能存储“1970-01-01 00:00:01 UTC”到“2038-01-19 03:14:07 UTC”之间的时间(UTC表示世界统一时间,也叫作世界标准时间)。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 字符串类型 序号 数据类型 说明 1 CHAR[(M)]或CHARACTER[(M)] 定长文本字符串 2 VARCHAR(M) 变长文本字符串 3 BINARY(M) 定长二进制字符串 4 VARBINARY(M) 变长二进制字符串 5 ENUM 枚举类型 6 SET 集合类型 7 TINYTEXT 微小文本串 8 TEXT 文本串 9 MEDIUMTEXT 中等文本串 10 LONGTEXT 大文本串 11 TINYBLOB 不超过255个字符的二进制字符串 12 BLOB 二进制形式的文本数据 13 MEDIUMBLOB 二进制形式的中等长度文本数据 14 LONGBLOB 二进制形式的极大文本数据 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 1.CHAR和VARCHAR类型 字符串(文本)类型 特点 长度范围 占用的存储空间 CHAR(M) 固定长度 0~255 M个字节 VARCHAR(M) 可变长度 0~65535 (实际长度 + 1) 个字节 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (1)CHAR(或CHARACTER)类型 CHAR存储固定长度的字符串。 定义格式为:CHAR(M),M指的是字符串的最大长度,省略默认为1,最大值为255。 对于CHAR类型,无论数据的长度是多少,所占用的存储空间都是M个字节。 (2)VARCHAR类型 VARCHAR存储可变长度的字符串。 定义格式为:VARCHAR(M),M指的是字符串的最大长度,不可省略,否则系统报错,最大值取决于字符集。 VARCHAR类型占用的字节数为实际长度加1。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (3)CHAR和VARCHAR的异同 ① CHAR(M)和VARCHAR(M)都表示可以存储M个字符。 ② 使用CHAR类型时,当数据的长度小于指定长度M,则此数据后面填充空格以达到指定长度M,在输入或查询数据时,若字符串末尾有空格,自动删除空格;而使用VARCHAR类型时,当数据的长度小于指定长度M,则实际长度即为此数据本身,不使用空格填补,在输入或查询数据时,若字符串末尾有空格,保留空格。不论CHAR类型还是VARCHAR类型,当输入数据的长度大于指定的长度M,系统报错。 ③ 字符集对CHAR类型没有影响,但对VARCHAR类型有影响。 ④ CHAR类型的字符串因为是固定长度,所以查询效率要比VARCHAR类型快。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 2.BINARY和VARBINARY类型 字符串(二进制)类型 特点 长度范围 占用的存储空间 BINARY(M) 固定长度 0~255 M个字节 VARBINARY(M) 可变长度 0~65535 M+1个字节 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (1)BINARY类型 BINARY(M)为固定长度的二进制字符串,M表示最多能存储的字节数,取值范围是0-255个字符。如果未指定M,表示只能存储1个字节 。 BINARY类型的长度是固定的,如果数据的长度不足最大长度,将在数据的后面用“\0”补齐,最终达到指定长度。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (2)VARBINARY类型 VARBINARY(M)为可变长度的二进制字符串,M表示最多能存储的字节数,总字节数不能超过65535。 VARBINARY类型的数据除了存储数据本身外,还需要1或2个字节来存储数据的字节数。 VARBINARY类型必须指定M,否则系统报错。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (3)BINARY和VARBINARY的异同 BINARY和VARBINARY类型类似于CHAR和VARCHAR类型。 不同之处在于CHAR和VARCHAR以字符为存储单位,存储非二进制字符串;BINARY与VARBINARY以字节为存储单位,存储二进制字符串。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 3.TEXT和BLOB类型 序号 数据类型 长度范围 存储范围 1 TINYTEXT 0~255(28-1) (实际长度 + 2)个字节 2 TEXT 0~65535(216-1) (实际长度 + 2)个字节 3 MEDIUMTEXT 0~16777215(224-1) (实际长度 + 3)个字节 4 LONGTEXT 0~4294967295(232-1) (实际长度 + 4)个字节 5 TINYBLOB 0~255(28-1) (实际长度 + 1)个字节 6 BLOB 0~65535(216-1) (实际长度 + 2)个字节 7 MEDIUMBLOB 0~16777215(224-1) (实际长度 + 3)个字节 8 LONGBLOB 0~4294967295(232-1) (实际长度 + 4)个字节 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (1)TEXT类型 TEXT类型用于保存非二进制的长文本数据。 当插入和查询此类型数据时,不删除尾部空格。 TEXT有4种类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (2)BLOB类型 BLOB类型用于保存数据量很大的二进制数据,如:图片、声音、视频和扫描文档等二进制文件。 BLOB有4种类型:TINYBLOB、BLOB、MEDIUMBLOE和LONGBLOB。每种类型的最大字节长度与对应TEXT类型的最大字符数相同。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (3)TEXT和BLOB的异同 ① BLOB与TEXT类型很相似,但TEXT是以文本方式存储,BLOB是以二进制方式存储。 ② TEXT区分大小写,BLOB不区分大小写。 ③ 字符集対TEXT类型有影响,対BLOB相关类型无影响。 ④ TEXT和BLOB的执行效率低于CHAR和VARCHAR,建议只有当需要保存大量数据时,才选择使用TEXT或BLOB类型。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 4.ENUM和SET类型 ENUM和SET类型是比较特殊的字符串数据类型,取值范围是一个预先定义好的列表,列表中的值必须用引号标注,不能为变量或表达式,多个值之间用逗号“,”分隔。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (1)ENUM类型 ENUM类型,又称为枚举类型。 定义格式为:ENUM(‘值1',‘值2',‘值3',…),其中,(‘值1',‘值 2',‘值3',…)称为枚举列表,ENUM类型的数据只能从枚举列表中取一个。在MySQL中,枚举列表最多65535个值。 ENUM类型占用存储空间是1或2个字节,由枚举值的数目决定。当ENUM类型包含1~255个成员时,需要1个字节的存储空间;当ENUM类型包含256~65535个成员时,需要2个字节的存储空间。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (2)SET类型 SET类型,又称为集合类型。 定义格式为:SET(‘值 1',‘值2',‘值3’,…),此类型的数据可以从列表中选择0个或多个值。MySQL中,列表最多包含64个值。 SET类型占用存储空间由列表的成员数目决定。当实际成员个数为1~8时,占用1个字节;9~16时,占用2个字节;17~24时,占用3个字节;25~32时,占用4个字节;33~64时,占用8个字节。 1 《数据库原理与应用技术-MySQL》 子任务5 字符串类型 (3)SET与ENUM的异同 ① ENUM类型类似于单选,SET类型类似于复选。 ② ENUM和SET类型的优势在于规范数据本身,限定只能插入规定的数据项,节省了存储空间,查询速度比CHAR、VARCHAR类型快。 ③ ENUM和SET类型列表中的值可以使用中文,但必须设置支持中文的字符集。 ④ ENUM和SET类型在插入、查询等操作时,自动忽略尾部空格。 ⑤ SET与ENUM类型均不能在SET类型字段中插入列表之外的其他数据。 1 《数据库原理与应用技术-MySQL》 任务3 MySQL运算符 子任务1 算术运算符 子任务2 比较运算符 子任务3 逻辑运算符 子任务4 位运算符 子任务5 运算符的优先级 1 《数据库原理与应用技术-MySQL》 子任务1 算术运算符 序号 运算符 书写格式 作用 1 + n1+n2+…+nx 加法运算 2 - n1-n2-…- nx 减法运算 3 * n1*n2*…*nx 乘法运算 4 /或DIV n1/n2或 n1DIVn2 除法运算,返回n1除以n2的商 5 %或MOD n1%n2或 MOD(n1,n2) 求余运算,返回n1除以n2的余数(计算结果符号与n1一致)。MOD和%只是书写格式不同,功能完全相同。 1 《数据库原理与应用技术-MySQL》 子任务2 比较运算符 序号 运算符 书写格式 作用 1 >、>= x1>x2、x1>=x2 判断x1是否大于、大于等于x2 2 <、<= x1<x2、x1<=x2 判断x1是否小于、小于等于x2 3 = x1=x2 判断x1是否等于x2 4 < >、!= x1< >x2、x1!=x2 判断x1是否不等于x2 5 <=> x1<=>x2 与 “=”运算符作用基本相同,区别是“<=>”可以用来判断NULL值 6 IN NOT IN x IN (x1,x2,…) x NOT IN (x1,x2,…) 判断x是否属于某个数据集合 7 IS NULL IS NOT NULL x IS NULL x IS NOT NULL 判断x是否为NULL值 8 BETWEEN AND NOT BETWEEN AND x BETWEEN x1 AND x2 x NOT BETWEEN x1 AND x2 判断x是否在[x1,x2]取值范围内,x1为小值,x2为大值 9 LIKENOT LIKE x1 LIKE x2 x1 NOT LIKE x2 判断字符串x1是否与字符串x2匹配 10 REGEXP x1 REGEXP x2 判断x1是否正则匹配x2 1 《数据库原理与应用技术-MySQL》 子任务2 比较运算符 说明: 1.比较运算符可用于多种数据类型的比较。 2.比较运算返回的结果是逻辑值,可分为三种,分别是1(TRUE,表示为真)、0(FALSE,表示为假)和NULL。 3.默认情况下,比较字符串时不区分大小写。 4.NULL值与任何数据(包括NULL)的任何算术、比较运算,均返回 NULL,但运算符“<=>”除外。 5. REGEXP运算符与LIKE运算符一样,可用来匹配字符串,进行模糊查询。 1 《数据库原理与应用技术-MySQL》 子任务3 逻辑运算符 序号 运算符 书写格式 作用 1 && 或 AND x1 && x2 或x1 AND x2 逻辑与。若非NULL操作数全部为真(非0),则结果为1;只要有一个为假(0),则结果为0。 2 || 或 OR x1 || x2 或x1 OR x2 逻辑或。非NULL操作数只要有一个为真(非0),则结果为1;若全部为假(0),则结果为0。 3 !或 NOT ! x 或 NOT x 逻辑非。若非NULL操作数为真(非0),则结果为0;若非NULL操作数为假(0),则结果为1。“!”和“NOT”虽然功能相同,但是如果同时出现,“!”优先级高于“NOT”。 4 XOR x1 XOR x2 逻辑异或。若非NULL操作数一个为真(非0),一个为假(0),则结果为1;都为真(非0)或都为假(0),则结果为0。 1 《数据库原理与应用技术-MySQL》 子任务4 位运算符 序号 运算符 书写格式 作用 1 & x1 & x2 按位与。1和1相与得1,与0相与得0 2 | x1 | x2 按位或。0和0相或得0,其他情况均得1 3 ~ ~x 按位取反。1取反得0,0取反得1 4 ^ x1 ^x2 按位异或。相同的数异或得0,不同的数异或得1 5 << x << n 按位左移。将x的二进制数向左移n位,右边补n个0 6 >> x >> n 按位右移。将x的二进制数向右移n位,左边补n个0 1 《数据库原理与应用技术-MySQL》 子任务5 运算符的优先级 优先级 运算符 1 ! 2 +(正号)、-(负号)、~(按位取反) 3 ^ 4 *、/(DIV)、%(MOD) 5 +(加)、-(减) 6 <<、>> 7 & 8 | 9 =(比较)、!=、<>、<=>、>、>=、<、<=、IS NULL 、LIKE、IN、REGEXP 10 BETWEEN…AND 11 NOT 12 &&、AND 13 XOR 14 ||、OR 15 =(赋值运算符)、:=(赋值运算符) 1 《数据库原理与应用技术-MySQL》 任务4 MySQL函数 子任务1 聚合函数 子任务2 数学函数 子任务3 字符串函数 子任务4 日期和时间函数 子任务5 系统信息函数 子任务6 其他函数 1 《数据库原理与应用技术-MySQL》 子任务1 聚合函数 序号 函数格式 函数功能 1 COUNT(*|[DISTINCT] expr) 返回由SELECT语句检索出来的非NULL值的行的数目;参数为“*”时,返回检索出来的满足条件的行数目,不管列值是否包含NULL,均进行统计。该函数与DISTINCT配合使用,表示先去掉查询的重复值然后再统计个数 2 SUM([DISTINCT] expr) 返回expr列的总和 3 AVG([DISTINCT] expr) 返回expr列的平均值 4 MAX([DISTINCT] expr) 返回expr列的最大值 5 MIN([DISTINCT] expr) 返回expr列的最小值 1 《数据库原理与应用技术-MySQL》 子任务2 数学函数 序号 函数格式 函数功能 1 SIGN(n) 符号函数。返回n的符号,若n为正数返回1,n为负数返回-1, n为0返回0 2 ABS(n) 绝对值函数。返回n的绝对值 3 SQRT(n) 平方根函数。返回n的平方根(n为非负数) 4 MOD(n1,n2) 返回n1除以n2的余数(参考取余运算符讲解) 5 CEIL(n)或CEILING(n) 向下取整函数。返回大于或等于n的最小整数 6 FLOOR(n) 向上取整函数。返回小于或等于n的最大整数 7 RAND() 随机函数。返回[0,1)之间的随机数。若要指定区间(min≤n<max)内的随机数时,可以使用表达式FLOOR(min+RAND()*(max-min))获取。 8 RAND(n) 随机函数。返回[0,1)之间的随机数,如果n的值不变,则每次返回的随机数都相同 9 ROUND(n) 近似值函数。将数值n四舍五入取整 10 ROUND(n1,n2) 四舍五入函数。将数值n1四舍五入保留n2位小数 11 FORMAT(n1,n2) 格式化函数,将数值n1四舍五入保留n2位小数,并将结果进行格式化“#,###,##”(以逗号分隔的数字序列),结果以字符串的形式返回 12 TRUNCATE(n1,n2) 截断函数。将数值n1保留n2位小数(舍弃多余小数位,不进行四舍五入) 13 POW(n1,n2)或POWER(n1,n2) 返回n1的n2次方(n1n2) 14 EXP(n) 指数函数。返回e的n次方(en),其中e≈2.718 15 LOG(n) 对数函数。返回自然对数Lnn( 以e为底的对数 ) 16 LOG10(n) 对数函数。返回常用对数Log10n( 以10为底的对数 ) 17 PI() 圆周率函数。返回圆周率3.141593 18 RADIANS(n) 将角度转换为弧度 19 DEGREES(n) 将弧度转换为角度 20 SIN(n) 正弦函数。返回n的正弦值(n为弧度值) 21 ASIN(n) 反正弦函数 22 COS(n) 余弦函数。返回n的余弦值(n为弧度值) 23 ACOS(n) 反余弦函数 24 TAN(n) 正切函数。返回n的正切值(n为弧度值) 25 ATAN(n) 反正切函数 26 COT(n) 余切函数。返回n的余切值(n为弧度值) 27 GREATEST(x1,x2,x3,…) 返回列表中的最大值 28 LEAST(x1,x2,x3,…) 返回列表中的最小值 1 《数据库原理与应用技术-MySQL》 子任务3 字符串函数 序号 函数格式 函数功能 1 UPPER(c)或UCASE(c) 将字符串c的所有字母都变成大写字母 2 LOWER(c)或LCASE(c) 将字符串c的所有字母都变成小写字母 3 LEFT(c,n) 左截取函数。返回字符串c的前n个字符 4 RIGHT(c, n) 右截取函数。返回字符串c的后n个字符 5 SUBSTRING(c,n1,n2)或 MID(c,n1,n2) 中截取函数。获取从字符串c中的第n1个位置开始的长度为n2的字符串 6 LTRIM(c) 删除字符串c的前导空格(开始处的所有空格) 7 RTRIM(c) 删除字符串c的尾部空格(结尾处的所有空格) 8 TRIM(c) 删除字符串c前导和尾部的空格 9 TRIM(c1 FROM c) 删除字符串c开始和结尾处的字符串c1 10 REVERSE(c) 将字符串c的顺序反过来 11 CONCAT(cl,c2, …) 将字符串c1、c2等多个字符串合并为一个字符串 12 CONCAT_WS(x,cl,c2, …) 同CONCAT函数,但要使用连接符x来连接每个字符串 13 CHAR_LENGTH(c) 返回字符串c的字符数,一个汉字算一个字符 14 LENGTH(c) 返回字符串c的字节长度。一个字符在不同字符集所占的字节长度不同。比如,gbk中,一个汉字占两个字节;utf8中,一个汉字占三个字节 15 POSITION(cIN c1)或 LOCATE(c,c1) 返回字符串c在c1中的开始位置 16 INSTR(c,c1) 返回字符串c1在c中的开始位置 17 FIELD(c, cl, c2, …) 返回字符串c在字符串列表(c1、c2, …)中的位置 18 FIND_IN_SET(c,cl) 返回c在含有英文逗号分隔的字符串c1中的开始位置 19 ELT(n, c1, c2,…) 返回在字符串c1、c2 等多个字符串中的第n个字符串 20 REPLACE(c,c1,c2) 用字符串c2替换字符串c中的字符串c1 21 INSERT(cl,n1, n2, c2) 使用字符串c2替换cl中的第n1个位置开始的长度为n2的字符串,cl中的第1个字符的位置为1 22 LPAD(cl,n,c2) 使用字符串c2填充c1的开始处,使字符串长度达到n 23 RPAD(cl,n,c2) 使用字符串c2填充 c1的结尾处,使字符串长度达到n 24 REPEAT(c,n) 将字符串c重复n次 25 SPACE(n) 返回n个空格 26 ORD(c)或 ASCII(c) 返回字符串c的首字符的ASCII码值 27 CHAR(n) 返回ASCII码值为n的对应的字符 28 STRCMP(c1,c2) 比较字符串cl和c2,如果c1大于c2,则返回1;如果cl 等于c2,则返回0;如果c1 小于c2,则返回-1 1 《数据库原理与应用技术-MySQL》 子任务4 日期和时间函数 序号 函数格式 函数功能 1 CURDATE() 或CURRENT_DATE() 返回当前日期 2 CURTIME() 或CURRENT_TIME() 返回当前时间 3 NOW() 或CURRENT_TIMESTAMP()或SYSDATE() 返回当前日期和时间 4 LOCALTIME()或LOCALTIMESTAMP() 返回当前日期和时间 5 DATE(d) 返回日期或日期时间表达式中的日期值 6 TIME(t) 返回日期时间表达式中的时间值 7 YEAR(d) 返回日期d中的年份值 8 MONTH(d) 返回日期d中的月份值,范围是1-12 9 DAY(d) 返回日期d中的日期值,范围是1-31 10 MONTHNAME(d) 返回日期d对应的月份(英文全称) 11 DAYNAME(d) 返回日期d对应的星期(英文全称) 12 DAYOFYEAR(d) 返回日期d是本年的第几天 13 DAYOFMONTH(d) 返回日期d是本月的第几天 14 DAYOFWEEK(d) 返回日期d是本星期的第几天,范围1-7。星期日是每个星期的第一天 15 WEEK(d) 返回日期d是本年的第几周,范围1-53。星期日是一个星期的第一天 16 WEEKOFYEAR(d) 返回日期d是本年的第几周,范围1-53。星期一是一个星期的第一天 17 QUARTER(d) 返回日期d是本年的第几个季度,范围1-4 18 HOUR(t) 返回时间t中的小时值 19 MINUTE(t) 返回时间t中的分钟值 20 SECOND(t) 返回时间t中的秒钟值 21 ADDDATE(d,n) 返回起始日期d加上n天后的日期 22 SUBDATE(d,n) 返回起始日期d减去n天后的日期 23 ADDTIME(t,n) 返回起始日期时间t加上n秒后的日期 24 SUBTIME(t,n) 返回起始日期时间t减去n秒后的日期 25 DATEDIFF(d1,d2) 计算日期dl与d2之间相差的天数 26 TIMEDIFF(tl,t) 计算时间t1和t2之间相差的秒数 1 《数据库原理与应用技术-MySQL》 子任务5 系统信息函数 序号 函数格式 函数功能 1 VERSION() 返回MySQL版本号 2 DATABASE()或 SCHEMA() 返回当前数据库名 3 USER()或SYSTEM_USER() 或SESSION_USER()或CURRENT_USER() 返回当前登录的用户名 4 CHARSET(c) 返回字符串c的字符集 5 COLLATION(c) 返回字符串c的字符排列方式 6 CONNECTION_ID() 返回当前客户连接服务器的次数 7 LAST_INSERT_ID 返回最近生成的AUTO_INCREMENT值 1 《数据库原理与应用技术-MySQL》 子任务6 其他函数 序号 函数格式 函数功能 1 IF(expr,x1,x2) 条件判断函数,如果表达式expr成立,返回x1的值,否则返回x2的值 2 IFNULL(x1,x2) 条件判断函数,如果表达式x1不为空,返回x1的值,否则返回x2的值 1 《数据库原理与应用技术-MySQL》 $$

资源预览图

项目3 MySQL基础知识(课件)-《数据库MYSQL》同步教学(河北科技出版社)
1
项目3 MySQL基础知识(课件)-《数据库MYSQL》同步教学(河北科技出版社)
2
项目3 MySQL基础知识(课件)-《数据库MYSQL》同步教学(河北科技出版社)
3
项目3 MySQL基础知识(课件)-《数据库MYSQL》同步教学(河北科技出版社)
4
项目3 MySQL基础知识(课件)-《数据库MYSQL》同步教学(河北科技出版社)
5
项目3 MySQL基础知识(课件)-《数据库MYSQL》同步教学(河北科技出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。