Why do some SQL strings have an 'N' prefix?
From:
http://databases.aspfaq.com/general/why-do-some-sql-strings-have-an-n-prefix.html
You may have seen Transact-SQL code that passes strings around using an N prefix. This denotes that the subsequent string is in Unicode (the N actually stands for National language character set). Which means that you are passing an NCHAR, NVARCHAR or NTEXT value, as opposed to CHAR, VARCHAR or TEXT. See Article #2354 for a comparison of these data types.
insert into TABLE_NAME (COLUMN1,COLUMN2) values(1,N'中国');
Unicode is typically used in database applications which are designed to facilitate code pages which extend beyond the English and Western Europe code pages (Erland Sommarskog, a native of Sweden, refers to this set as "Germanic and Romance languages"), for example Chinese. Unicode is designed so that extended character sets can still "fit" into database columns. What this means is that Unicode character data types are limited to half the space, because each byte actually takes two bytes (Unicode is sometimes referred to as "double-wide"). For more information on Unicode, see Unicode.org. Note that there are many encoding schemes in the Unicode standard, but SQL Server only supports one: UTF-16.
While using Unicode is a design choice you can make in building your own applications, some facilities in SQL server require it. One example is sp_executeSQL. If you try the following:
分享到:
相关推荐
### SQL Varbinary 转换成字符串 在数据库管理和数据处理领域,经常需要对不同数据类型进行转换以满足特定的应用需求。其中,从`varbinary`类型转换为字符串类型的场景非常常见,尤其是在处理图像、文件或其他二...
以下是一些关于SQL字符串处理的基本知识点: 首先,我们要明白,在SQL查询中,我们不能直接使用像`IndexOf()`这样的非SQL标准函数。例如,在SQL Server中,应该使用`CHARINDEX()`来替代`IndexOf()`来查找字符串中的...
在MySQL中,支持为字符串字段创建前缀索引,这是一种节省存储空间且在某些情况下保持良好查询效率的方法。 前缀索引允许你指定字符串的一部分作为索引,而不是整个字符串。例如,创建`email`字段的前缀索引可以这样...
但是,这会生成前缀为 "0x" 的字符串。如果不需要这个前缀,可以使用 `SUBSTRING` 函数去除它: ```sql SELECT SUBSTRING(CONVERT(varchar, @myInt, 1), 3, 8) AS 'HexadecimalStringWithoutPrefix' ``` 如果...
例如,对于以`addd-`开头并以数字结尾的字符串(如`addd-1`, `addd-2`, `addd-3`, `addd-10`),通常希望它们能够按照字符串前缀的默认排序以及数字的自然顺序进行排序。即,当字符串前缀相同时,后续的数字应按照...
在Oracle数据库中,对字符串进行处理是一项常见的需求,特别是在处理带有特定分隔符(如逗号`,`、冒号`:`等)的字符串时。本文将详细介绍如何利用Oracle内置函数来实现从含有逗号和冒号的字符串中提取特定部分的功能...
例如,如果我们有100个字符串,每页显示10个,那么就有10页。 - 可以使用索引来定位每页的起始和结束位置,索引通常从0开始,所以第n页的起始索引是`(n-1) * 页大小`,结束索引是`n * 页大小 - 1`。 4. **编程实现...
SQL Server 连接字符串的格式为: jdbc:sqlserver://localhost:1433;DatabaseName=dbName 其中,`com.microsoft.sqlserver.jdbc.SQLServerDriver` 是 SQL Server 的驱动程序,`jdbc:sqlserver` 是 SQL Server 的 ...
批量删除具有相同前缀的表的sql语句,sqlserver
在处理SQL时,动态SQL功能是MyBatis的一大亮点,它有效地解决了SQL字符串拼接的问题,避免了手动拼接带来的错误和复杂性。 1. **If标签**:MyBatis的`<if>`标签用于条件判断,它允许我们在SQL语句中根据Java对象的...
每个数据库驱动都有其特定的URL格式,例如,`jdbc:mysql:`前缀表示连接到MySQL,而`jdbc:sqlserver:`表示连接到SQL Server。`jdbc:oracle:thin:`是Oracle数据库的“瘦”驱动,它不依赖本地Oracle客户端库。 在实际...
### MySQL中将字符串日期转换为日期型 在MySQL数据库中,经常会遇到需要处理不同格式的日期数据的情况。例如,从外部系统导入的数据可能包含了非标准的日期格式,或者是用户输入的日期格式不符合数据库中日期字段的...
2. **逐字字符串定义**:使用`@`符号前缀,允许字符串跨越多行且保留转义字符,如`string str2 = @"Hello World";`。这种方式特别适用于路径或SQL查询等需要保留特殊字符的场景。 ### 二、转义字符 转义字符在字符...
根据提供的文件信息,我们可以归纳总结出关于SQL注入攻击的一些关键参数及其实现方式。SQL注入是一种常见的网络安全攻击手段,攻击者通过将恶意SQL代码插入到应用程序的输入字段中,以此来操控后端数据库执行非授权...
20. **str_split($string, $split_length)**: 把字符串分割为指定长度的字符数组。 21. **str_shuffle($string)**: 随机打乱字符串中的字符顺序。 22. **str_ireplace($search, $replace, $subject, &$count)**: ...
例如,如果要插入中文字符,应该使用`nvarchar`类型,并且在值前加上`N`前缀表示Unicode字符串: ```csharp string insertSql = "INSERT INTO userinfo (username) VALUES (N'" + username.Text.Trim() + "')"; ``` ...
字符串与十六进制表示字符串的相互转换在多种编程场景中非常重要,尤其是在Web开发中,涉及到安全性问题,比如防止SQL注入攻击和跨站脚本攻击(XSS)。JavaScript作为前端开发的核心语言,掌握字符串与十六进制转换...
`SUBSTRING_INDEX` 函数则更复杂一些,它可以基于分隔符拆分字符串,并返回分隔符前或后的子串。其基本语法如下: ```sql SUBSTRING_INDEX(str, delim, count) ``` - `str`:原始字符串。 - `delim`:作为分隔符的...
SQL函数在数据库操作中起着至关重要的作用,它们允许我们对数据进行各种处理,包括转换、提取、比较和操作字符串。以下是对SQL中一些常用函数的详细解释: 1. **字符转换函数**: - `ASCII()`:返回一个字符的...
在Oracle数据库中,SQL语句连接字符串的主要符号是双竖线 `||`,它用于将两个或多个字符串拼接在一起。这个操作符的功能类似于其他数据库系统中的 `CONCAT` 函数,但更简洁且易于使用。以下是对Oracle中SQL语句连接...