- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 MySql语言结构
一、常量
MySQL中的常量包括:字符串常量、数值常量、十六进制常量、日期时间常量、位字段值、布尔值、NULL值。
字符串常量
ASCII字符串常量用单引号或双引号引起来。如’hello’ hello;
Unicode字符串常量(SQL-92标准中的国际语言)格式:
以大写的N开头
字符串本身用单引号引起来
每个字符用两个字节存储,即双字节数据
如,N’hello’ select Nhello;
转义序列(又称转义符),是用来表示不能从键盘录入的或特殊的符号。
本身也是字符串常量,所以应该用双引号或单引号括起来。
每个转义符是以反斜杠 \ 开头的 具体的转义符参见表 6.4
区分’\0’ 和 null 的区别,如例:select \0,null,\0+1,null+1;
虽然两者都表示空,但是’\0’在参与运算时默认为0值。
例题6.1 select This\nIs\nFour\nLine;
如果在字符串常量中引用单引号 ’和双引号 ” 时应该如何表达?
在单引号字符串中包含单引号字符,那么应写成两个单引号 ’’
在双引号字符串中包含双引号字符,那么应写成两个双引号
在单引号字符串中包含双引号或双引号字符串中包含单引号,不需要做任何处理
可以使用单引号或双引号的转义字符 \’ \”
例题6.2
select hello,hello,hello,hello,\hello,hello;
数值常量:
十六进制常量:
十六进制值通常指定为一个字符串常量,每对十六进制数字被转换为一个字符
其最前面有一个大写或小写字母 X x 后面跟一个用单引号引起来的十六进制常量。 如,X’41’ 或 x’41’ select x41, 0x41;
另外一种写法是通用的,在十六进制常量前面加上0x 并且不能加单引号。如0x41
十六进制值的默认类型是字符串。如果不进行转换系统将按照字符串处理,所以使用cast类型转换函数。
例;
例题6.3 select 0x41,cast(0x41 as unsigned);
例题6.4 hex函数将字符串转换为十六进制 select hex(cat)
日期时间常量
用单引号括起来的 ‘年-月-日’ 格式的字符串
获取当前系统时间的函数:sysdate( ) 和 now( )
格式化日期: DATE_FORMAT(date, format) 注: date:时间字段format:日期格式select date_format(now(),%y-%m-%d);
日期型数据类型 date 时间数据类型 time
日期时间型数据类型:
datetime 年份的取值范围 1000~9999
timestamp 年份的取值范围 1970~2037 在插入带微秒的日期时间时将微秒忽略。
位字段值
可以使用 b’value’ 符号写位字段值。value 是一个0 和 1 的二进制值。
位字段符号可以方便指定分配给列的值CREATE TABLE t (b bit(8));
insert into t values (11);
//虽然可以插入,但是实际插入的数值是11(十进制)
insert into t values (b11);
//这才是正确的插入方法。 插入的值是3(十进制)
位字段值的查询:
select * from t; //看不到正确的数据
select b+0 from t; //看到 位字段值转换为十进制 的数据
select bin(b+0) from t; //看到 位字段值转换为二进制 的数据
select oct(b+0) from t; //看到 位字段值转换为八进制 的数据
select hex(b+0) from t; //看到 位字段值转换为十六进制 的数据
阅读教材上的例题 6.5
布尔值
true 1
false 0
例题: select true,false;
NULL值
变量
用户变量
用户变量与连接有关,一个客户端定义的变量不能被其他客户端看到货使用。
当客户端退出时,该客户端连接的所有变量将自动释放。
定义和初始化一个变量可以使用set语句,
格式为:set @变量名=变量值,….
用户变量名的前面应加“@”,用来和字段名区别
变量在定义时不需要额外指定类型,它的类型是由它右边赋予的值决定的。
用户变量必须先定义后使用。而且有效期一直到当前的客户连接退出或关闭。
如,例题6.7~6.12
也可以使用select 语句给变量定义和赋值,但要注意 赋值运算符 是 “:=” 因为普通的 “=”在select语句中是比较相等的运算符。如,例题6.13
系统变量
系统变量在MySQL服务器
文档评论(0)