mysql语言结构

本文主要介绍了MySQL语言结构,包括文字值(如字符串、数值、日期类型等)、识别符(如数据库、表名的限制与大小写敏感性)、用户自定义变量以及注释语句的使用。实验内容理论为主,适合学习MySQL基础知识。
摘要由CSDN通过智能技术生成

MySQL 语言结构

一、实验介绍

1.1 实验内容

本实验中主要学习 MySQL 语言结构中的一些基本概念,偏重理论,实际动手实践内容不多,包括文字值、识别符、用户自定义变量和注释。

1.2 实验知识点

  • 文字值:字符串,数值型,日期类型,十六进制,布尔值,位域,NULL值
  • 识别符:数据库、表、索引、列和别名
  • 用户自定义变量
  • 注释语句

1.3 实验环境

课程使用的实验环境为 Ubuntu Linux 14.04 64 位版本。实验中会用到程序:

  • Mysql 5.5.50
  • Xfce终端

二、实验步骤

2.1 文字值

参考官方文档:http://dev.mysql.com/doc/refman/5.5/en/literals.html

2.1.1 字符串

字符串指用单引号(‘'’)或双引号(‘"’)引用起来的字符序列。例如:

'a string'
"another string"

如果SQL服务器模式启用了NSI_QUOTES,可以只用单引号引用字符串,此时用双引号引用的字符串被解释为一个识别符。

字符串可以有一个可选的介绍字符_charset_nameCOLLATE子句:

[_charset_name]'string' [COLLATE collation_name]

例如:

SELECT _latin1'string';
SELECT _latin1'string' COLLATE latin1_danish_ci;

在字符串中,某些序列具有特殊含义。这些序列均以反斜线(\)开始,即所谓的转义字符。MySQL识别以下转义序列:

此处输入图片的描述

这些序列对大小写敏感。例如,\b为退格,但\B为字符B

\%\_序列如果用于通配符的模式匹配环境中匹配%_。参见字符串比较函数。请注意如果你在其它环境中使用\%\_,它们返回字符串\%\_,而不是%_

在其它转义序列中,反斜线被忽略。也就是说,转义字符就仿佛没有转义。

转义比较好理解,引用就比较麻烦了,此处省略30字,因为官网给出的解释比较难以被理解,因此直接举例。

下面的SELECT语句显示了引用和转义如何工作:

mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello';
mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello";
mysql> SELECT 'This\nIs\nFour\nLines';
mysql> SELECT 'disappearing\ backslash';

此处输入图片的描述

此处输入图片的描述

查看输出结果,有没有理解一点?

如果你想要在字符串列内插入二进制数据(例如BLOB),必须通过转义序列表示下面的字符:

此处输入图片的描述

当编写应用程序时,在将包含这些特殊字符的字符串发送到MySQL服务器的SQL语句中的数据值之前,必须对它们正确进行转义。可以用两种方法来完成:

  1. 用转义特殊字符的函数处理字符串。例如,在C程序中,可以使用C语言的API函数mysql_real_escape_string() 来转义字符。
  2. 显式转义特殊字符,许多MySQL API提供了占位符功能,允许你在查询字符串中插入特殊标记,然后当你发出查询时将数据值同这些标记绑定起来。在这种情况下,API关注转义值中的特殊字符。
2.1.2 数值型

整数用一系列阿拉伯数字表示,浮点数使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值