sql语法中u‘‘ n‘‘详解

简介: sql语法中u‘‘ n‘‘详解

今天翻阅视图的时候,发现sql语句中有N'' U''这样的语法,不懂什么意思,于是搜索了一下,得出如下结论。

例子:

select U'中文' from dual;
select N'中文' from dual;

image.gif

那么语句中的N以及U分别代表什么意思?

N 在这里表示 Unicode,就是双字节字符。对于西文字符,用一个字节来存储过足够了,对于东方文字字符,就需要两个字节来存储。Unicode 为了统一、规范、方便、兼容,就规定西文字符也用两个字节来存储。

也就是说加 N 就表示字符串用 Unicode 方式存储。对应的就是 NCHAR 和 NVARCHAR2 类型。再比如:

select @status = N'stopped'
select @status = 'stopped'

image.gif

实际上上述两句赋值的结果是一样的,因为变量类型就是 nvarchar(Unicode 类型)。

而有些地方(比如:sp_executesql 的参数)不能自动转换,所以需要加 N 了。

那这个东东的作用是啥呢?

1.在做union all的时候,如果两个库的字符集不匹配,那会报错,可以用u和n进行转化。

下面这条sql就会报错

select
  u''
from a.dual
union
select
  ''
from b.dual
--ORA-12704: 字符集不匹配

image.gif

需要修改为:

select
  u''
from dual
union
select
  u''
from dual

image.gif

2.insert 和update的时候,在有的数据库不加N就会是乱码

insert into replies values(replies_seq.nextval,N'顶',sysdate,2);

image.gif

综上。

目录
打赏
0
0
0
0
1
分享
相关文章
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
SQL `CREATE DATABASE` 语法
【11月更文挑战第10天】
103 3
sql语法
【10月更文挑战第26天】sql语法
55 5
|
9月前
|
thinkphp之进阶sql语法,持续更新
thinkphp之进阶sql语法,持续更新
58 0
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
82 0
Mysql(2)—SQL语法详解
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发,旨在处理关系数据模型。
60 0
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
70 5
sql语法
【7月更文挑战第30天】sql语法
65 12

热门文章

最新文章