收藏 分享(赏)

第6章 MySQL语言结构.ppt

上传人:hwpkd79526 文档编号:7414577 上传时间:2019-05-16 格式:PPT 页数:33 大小:289KB
下载 相关 举报
第6章  MySQL语言结构.ppt_第1页
第1页 / 共33页
第6章  MySQL语言结构.ppt_第2页
第2页 / 共33页
第6章  MySQL语言结构.ppt_第3页
第3页 / 共33页
第6章  MySQL语言结构.ppt_第4页
第4页 / 共33页
第6章  MySQL语言结构.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、第6章 MySQL语言结构,在MySQL数据库中,SQL语言由以下几部分组成。 (1)数据定义语言(DDL) 用于执行数据库的任务,对数据库及数据库中的各种对象进行创建、删除、修改等操作。 数据库对象主要包括:表、默认约束、规则、视图、触发器、存储过程等。,表6.1 DDL主要语句及功能,第6章 MySQL语言结构,第6章 MySQL语言结构,(2)数据操纵语言(DML) 用于操纵数据库中各种对象,检索和修改数据。,表6.2 DML主要语句及功能,(3)数据控制语言(DCL)。 用于安全管理,确定哪些用户可以查看或修改数据库中的数据。,表6.3 DCL主要语句及功能,第6章 MySQL语言结构

2、,(4)MySQL增加的语言元素。 这部分不是SQL标准所包含的内容,而是为了用户编程的方便增加的语言元素。这些语言元素包括常量、变量、运算符、函数、流程控制语句和注解等。本章将具体讨论使用MySQL这部分增加的语言元素。,6.1 常量和变量,6.1.1 常量 1. 字符串常量 字符串是指用单引号或双引号括起来的字符序列。转义序列:用来表示特殊的字符(见表 6.4)。每个转义序列以一个反斜杠(“”)开始,指出后面的字符使用转义字符来解释,而不是普通字符。,6.1.1 常量,注意: NUL 字节与 NULL 值不同,NUL 为一个零值字节,而 NULL 代表没有值。,6.1.1 常量,SELEC

3、T This Is Four Lines;【例6.1】 执行如下语句: SELECT ThisnIsnFournLines; 结果为:,其中,“n”表示换行。,输出字符串中包括单引号和双引号的情况。 例:要求输出This Is Four Lines SELECT This Is Four Lines; SELECT This Is Four Lines; SELECT This Is Four Lines; (此处为两个单引号) SELECT “This Is Four Lines“;例:要求输出This Is Four Line“s SELECT “This Is Four Line“s“;

4、 SELECT “This Is Four Line“s“; SELECT “This Is Four Line“s“; SELECT This Is Four Line“s;,两种方式可以在字符串中包括引号: 1、可不转义的: 一个字符串用双引号来引用的,该字符串中的单引号不需要特殊对待而且不必被重复或转义。例: SELECT “This Is Four Lines“; 一个字符串用单引号来引用的,该字符串中的双引号不需要特殊对待而且不必被重复或转义。例: SELECT This Is Four Line“s;,两种方式可以在字符串中包括引号: 2、必须转义的: 一个字符串用单引号来引用的,

5、该字符串中的单引号字符可以用两个单引号方式转义。 例: SELECT This Is Four Lines; 一个字符串用双引号来引用的,该字符串中的双引号字符可以用两个双引号方式转义。 例: SELECT “This Is Four Line“s“; 可以使用一个转义字符“”来转义 。例:SELECT This Is Four Lines;SELECT “This Is Four Line“s“;,获取一个单引号的方法 可不转义的 “ ” 必须转义的 必须转义的 获取一个双引号的方法 可不转义的 “ 必须转义的 “ “” ” 必须转义的 “ ” ”,6.1.1 常量,【例6.2】 执行下面的

6、语句: SELECT hello, “hello“, “hello“, hello, hello;结果为:,注意:语句中第4个“hello”中间是两个单引号而不是一个双引号。,2. 数值常量 数值常量可以分为整数常量和浮点数常量。整数常量:不带小数点的十进制数。 浮点数常量:使用小数点的数值常量。,6.1.1 常量,3. 十六进制常量 MySQL支持十六进制值。 一个十六进制值通常指定为一个字符串常量,每对十六进制数字被转换为一个字符。 两种表示方法: 1)最前面有一个大写字母X或小写字母x。在单引号中使用数字0到9及字母a到f或A到F。 例如:X41表示大写字母A。x4D7953514C表示

7、字符串MySQL。2)上述表示方法的前缀“X”或“x”可以被“0x”取代,并且不用加单引号。 例如:X41可以替换为0x41 注意: “0x”中的0是数字0,而不是字母O。 “0x”中x一定要小写。,十六进制值的默认类型是字符串。如果想要确保该值作为数字处理,可以使用CAST(.AS UNSIGNED)。【例6.3】 执行如下语句: SELECT 0x41, CAST(0x41 AS UNSIGNED);,6.1.1 常量,HEX()函数:将一个字符串或数字转换为十六进制格式的字符串。【例6.4】 将字符串CAT转换为16进制。 SELECT HEX(CAT); 结果为:,验证:,6.1.1

8、常量,4. 日期时间常量 日期时间常量:用单引号将表示日期时间的字符串括起来构成。 DATE数据类型:包括年、月、日, 例:1999-06-17 。 TIME数据类型:包括小时数、分钟数、秒数及微秒数, 例:12:30:43.00013 。 DATETIME或TIMESTAMP数据类型:日期/时间的组合, 例:1999-06-17 12:30:43。注意: MySQL 是按年-月-日的顺序表示日期的。 日期时间常量的值必须符合日期和时间的标准,如这样的日期是错误的:1996-02-31。,6.1.1 常量,5. 位字段值 可以使用bvalue符号显示位字段值。value是一个用0和1写成的二进

9、制值。直接显示bvalue的值可能是一系列特殊的符号。例如,b0显示为空白,b1显示为一个笑脸图标。 使用BIN函数可以将位字段常量显示为二进制格式。 使用OCT函数可以将位字段常量显示为数值型格式。 【例6.5】 执行下列语句: SELECT BIN(b111101+0), OCT(b111101+0); 结果为:,6.1.1 常量,6. 布尔值 布尔值只包含两个可能的值:TRUE和FALSE。FALSE的数字值为“0”,TRUE的数字值为“1”。 【例6.6】 获取TRUE和FALSE的值。 SELECT TRUE, FALSE; 结果:,7. NULL值 NULL值可适用于各种列类型,它

10、通常用来表示“没有值”、“无数据”等意义,并且不同于数字类型的“0”或字符串类型的空字符串。,6.1.2 变量,变量用于临时存放数据。 1. 用户变量 用户变量:用户可以在表达式中使用自己定义的变量。 在使用用户变量前必须定义和初始化。如果使用没有初始化的变量,它的值为NULL。 定义和初始化一个变量可以使用SET语句,语法格式为: SET user_variable1expression1 , user_variable2= expression2 , 其中,user_variable1、user_variable2为用户变量名,变量名可以由当前字符集的文字数字字符、“.”、“_”和“$”组

11、成。当变量名中需要包含了一些特殊符号(如空格、#等)时,可以使用双引号或单引号将整个变量括起来。 expression1、expression2为要给变量赋的值,可以是常量、变量或表达式。,SET user_variable1expression1 , user_variable2= expression2 , 【例6.7】 创建用户变量name并赋值为“王林”。 SET name=王林;注意: 符号必须放在一个用户变量的前面,以便将它和列名区分开。“王林”是给变量name指定的值。 name的数据类型是根据后面的赋值表达式自动分配的。也就是说,name的数据类型跟 王林 的数据类型是一样的。

12、如果给name变量重新赋不同类型的值,则name的数据类型也会跟着改变。 还可以同时定义多个变量,中间用逗号隔开。,6.1.2 变量,【例6.8】 创建用户变量user1并赋值为1,user2赋值为2,user3赋值为3。 SET user1=1, user2=2, user3=3;定义用户变量时变量值可以是一个表达式。 【例6.9】 创建用户变量user4,它的值为user3的值加1。 SET user4=user3+1; 在一个用户变量被创建后,它可以以一种特殊形式的表达式用于其他SQL语句中。变量名前面也必须加上符号。【例6.10】 查询例6.7中创建的变量name的值。 SELECT

13、name; 结果为:,6.1.2 变量,【例6.11】 使用查询给变量赋值。 USE XSCJ SET student=(SELECT 姓名 FROM XS WHERE 学号=081101);【例6.12】 查询表XS中名字等于例6.11中student值的学生信息。 SELECT 学号, 姓名, 专业名, 出生日期 FROM XSWHERE 姓名=student; 查询结果为:,对于SET语句,可以使用“=”或“:=”作为分配符。 分配给每个变量的值可以为整数、实数、字符串或NULL值。 SET user_variable1:=expression1 , user_variable2:= e

14、xpression2 , 可以使用SQL语句代替SET语句来为用户变量分配一个值。在这种情况下,分配符必须为“:=”,而不能用“=”,因为在非SET语句中“=”被视为比较操作符。 【例6.13】 执行如下语句: SELECT t2:=(t2:=2)+5 AS t2;结果t2的值为7。,6.1.2 变量,2. 系统变量 MySQL有一些特定的设置,当MySQL数据库服务器启动的时候,系统变量被引入并初始化为默认值。 附录G中列出了绝大多数的系统变量。 【例6.14】 获得现在使用的MySQL版本。 SELECT VERSION ; 结果为:,说明:在MySQL中,系统变量VERSION的值设置为

15、版本号。 在变量名前必须加两个符号才能正确返回该变量的值。,6.1.2 变量,大多数的系统变量应用于其他SQL语句中时,必须在名称前加两个符号,才能正确返回该变量的值。 某些特定的系统变量是要省略这两个符号的:CURRENT_DATE(系统日期)、CURRENT_TIME(系统时间)、CURRENT_TIMESTAMP(系统日期和时间)和CURRENT_USER(SQL用户的名字)。【例6.15】 获得系统当前时间。 SELECT CURRENT_TIME; 结果为:,6.1.2 变量,在MySQL中,有些系统变量的值是不可以改变的,例如VERSION和系统日期。 而有些系统变量是可以通过SE

16、T语句来修改的,例如SQL_WARNINGS。 语法格式为: SET system _var_name = expr | GLOBAL | SESSION system_var_name = expr| global.| session. system_var_name = expr 说明:system_var_name为系统变量名,expr为系统变量设定的新值。名称的前面可以添加GLOBAL或SESSION等关键字。 指定了GLOBAL或global.关键字的是全局系统变量(global system variable)。指定了SESSION或session.关键字的则为会话系统变量(loc

17、al system variable)。SESSION和session.还有一个同义词LOCAL和local.。 如果在使用系统变量时不指定关键字,则默认为会话系统变量。,(1)全局系统变量 当MySQL启动的时候,全局系统变量就初始化了,并且应用于每个启动的会话。如果使用GLOBAL(要求SUPER权限)来设置系统变量,则该值被记住,并被用于新的连接。【例6.16】 将全局系统变量sort_buffer_size的值改为25000。SET global.sort_buffer_size=25000;,6.1.2 变量,(2)会话系统变量 会话系统变量(session system varia

18、ble)只适用于当前的会话。大多数会话系统变量的名字和全局系统变量的名字相同。当启动会话的时候,每个会话系统变量都和同名的全局系统变量的值相同。 一个会话系统变量的值是可以改变的,但是这个新的值仅适用于正在运行的会话,不适用于所有其他会话。【例6.17】 将当前会话的SQL_WARNINGS变量设置为TRUE。 SET SQL_WARNINGS =ON; 说明:这个系统变量表示如果不正确的数据通过一条INSERT语句添加到一个表中,MySQL是否应该返回一条警告。默认情况下,这个变量是关闭的,设为ON表示返回警告。,【例6.18】 对于当前会话,把系统变量SQL_SELECT_LIMIT的值设

19、置为10。这个变量决定了SELECT语句的结果集中的最大行数。 SET SESSION.SQL_SELECT_LIMIT=10; SELECT LOCAL .SQL_SELECT_LIMIT; 结果为:MySQL对于大多数系统变量都有默认值。当数据库服务器启动的时候,就使用这些值。也可以在C盘MYSQL文件夹下的my.ini选项文件中修改这些值。当数据库服务器启动的时候,这个文件被自动读取。,6.1.2 变量,如果要将一个系统变量值设置为MySQL默认值,可以使用DEFAULT关键字。 【例6.19】 把SQL_SELECT_LIMIT的值恢复为默认值。 SET LOCAL.SQL_SELEC

20、T_LIMIT=DEFAULT;,使用SHOW VARIABLES语句可以得到系统变量清单。 SHOW GLOBAL VARIABLES返回所有全局系统变量。 SHOW SESSION VARIABLES返回所有会话系统变量。 如果不加关键字就默认为SHOW SESSION VARIABLES。【例6.20】 得到系统变量清单。 SHOW VARIABLES;要获得与样式匹配的具体的变量名称或名称清单,需使用LIKE子句, 语句如下: SHOW VARIABLES LIKE max_join_size; SHOW GLOBAL VARIABLES LIKE max_join_size; 要得到名称与样式匹配的变量的清单,需使用通配符“%”,例如: SHOW VARIABLES LIKE character%;,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报