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

综上。

相关文章
|
18天前
|
SQL 存储 关系型数据库
SQL `CREATE DATABASE` 语法
【11月更文挑战第10天】
41 3
|
24天前
|
SQL 关系型数据库 数据库
sql语法
【10月更文挑战第26天】sql语法
32 5
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础第一篇(SQL通用语法与分类)
MySQL数据库基础第一篇(SQL通用语法与分类)
|
5月前
|
SQL PHP
thinkphp之进阶sql语法,持续更新
thinkphp之进阶sql语法,持续更新
32 0
|
1月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
1月前
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
19 0
|
1月前
|
SQL 关系型数据库 MySQL
Mysql(2)—SQL语法详解
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发,旨在处理关系数据模型。
29 0
|
3月前
|
SQL 关系型数据库 MySQL
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的语法写
44 5
|
4月前
|
SQL 关系型数据库 数据库
sql语法
【7月更文挑战第30天】sql语法
47 12
|
3月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
403 0
下一篇
无影云桌面