首页
学习
活动
专区
圈层
工具
发布

SQL Server中char、nchar、varchar、nvarchar的区别

对于程序中的一般字符串类型的字段,SQL Server中有char、varchar、nchar、nvarchar四种类型来对应,那么这四种类型有什么区别呢,这里做一下对比。...1.定长或变长 所谓定长就是长度固定,当要保存的数据长度不够时将自动在其后面填充英文空格,使长度达到相应的长度;有var前缀的,表示是实际存储空间是动态变化的,比如varchar,nvarchar变长字符数据则不会以空格填充...2.Unicode或非Unicode 数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。...而前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。...3.几种数据类型的存储的最大容量 char,varchar 最多8000个英文,4000个汉字 nchar,nvarchar 最多可存储4000个字符,无论英文还是汉字 --创建表 CREATE TABLE

2.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MS SQL Server STUFF 函数实战 统计记录行转为列显示

    范例运行环境 操作系统: Windows Server 2019 DataCenter 数据库:Microsoft SQL Server 2016 视图样本设计 假设某一视图 [v_pj_rep1_lname_score...*20% 4 score2 decimal 被评价人权重分2 总人数的平均分*20%*30% 5 dname nvarchar 统计显示 将行数据变为列数据,显示统计详情信息 查询分析器结果数据显示如下图...SQL语句中通过 CASE 来判断人数,大于1则显示人数和总分,否则直接显示分值,并在前面加上职务 lname 字段,并以 count_sortid 进行排序,数值越小的职务越往前排 3 v_pj_rep1..._lname_score a group by projectcid,wxmpcid 对视图样本进行项目ID和被评价人ID进行分组统计 小结 SQL Server 中的 STUFF 函数是将字符串插入到另一个字符串中...view=sql-server-ver16&redirectedfrom=MSDN 至此STUFF的函数使用我们就介绍到这里,具体使用中我们还需要灵活掌握,对结果数据的细节可能要进一步进行处理,以满足我们的统计要求

    87510

    Oracle、SQL Server和MySQL的隐式转换异同

    ,隐式转换则是数据库自动进行的类型转换,推荐前者,因为隐式转换,可能带来一些风险和隐患,例如隐式转换列不能用索引、隐式转换还受到系统参数、不同数据库版本实现功能差异的影响, P.S. ...SQL Server的隐式转换 这是官网给出的数据类型转换矩阵, P.S....view=sql-server-ver15 《见识一下SQL Server隐式转换处理的不同》中介绍了一种SQL Server隐式转换的案例,和Oracle不同的是,SQL Server的隐式转换,还可能和排序规则相关..., select * from test where c1='a'; 效果和场景1是相同的,此时选择了Index Seek,再回表的操作, (2) 构造where varchar=nvarchar,...的隐式转换,是绿色的,允许用Seek, 由此看出,SQL Server中不同的排序规则对隐式转换的影响可能是不同的,但是SQL Server中有非常多的排序规则,这就比较尴尬了,难道你能列举出所有排序规则对应的隐式转换的影响

    2K20

    MSSQL之二十一 存储过程案例

    Stored Procedure(存储过程)编写经验和优化措施 一、前言:在经过一段时间的存储过程开发之后,写下了一些开发时候的小结和经验与大家共享,希望对大家有益,主要是针对Sybase和SQL...d)合理的算法使用: 根据上面已提到的SQL优化技术和ASE Tuning手册中的SQL优化内容,结合实际应用,采用多种算法进行比较,以获得消耗资源最少、效率最高的方法。...SERVER 图像或大文本的输入输出 在MS SQL SERVER 安装目录下有个可执行文件叫 TEXTCOPY.EXE 可对 MS SQL SERVER 中的文本或图像数据进行输入输出....得到它的描述。 下面是这个工具的描述: Copies a single text or image value into or out of SQL Server..../S sqlserver The SQL Server to connect to.

    33010

    【YashanDB知识库】oracle dblink varchar类型查询报错记录

    ● long类型不能在where、group by、order by中使用。...- 对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。...- LONG类型列不能用在Select的以下子句中:where、group by、order by,以及带有distinct的select语句中。- LONG类型列不能用于分布查询。...**nvarchar/nvarchar2**1、nvarchar和nvarchar2是长度不固定的;2、nvarchar不区分中英文。...大多数情况下,ORACLE中的国家字符集是默认的,以下结论成立:如果要省存储空间,建表时,字段内容里如果中文占了大多数,就用nvarchar2类型;如果内容是英文和数字为主的字符串,就用varchar2

    54410

    同样的SQL语句在查询分析器执行很快,但是网站上执行超时的诡异问题

    查阅资料得知,SQL SERVER 会把所有带参数化查询的SQL语句使用sp_executesql来执行,因为它能够分析并缓存查询计划,从而优化查询效率,这也是为什么通常说的“参数化查询比拼接SQL要快...ADO.net可能因为这个警告导致出结果很慢,虽然在sql server里执行没什么问题。 原因是sum里面没有isnull一下。改了一下sql语句就好了。... by 序号 asc]]> 把第二个String参数修改成AnsiString即可,对于SQL-MAP而言,参数格式是...DbType.AnsiString将很快: 使用DbParameter傳遞參數撈SQL Server資料速度異常的慢 http://adyhpq.blog.163.com/blog/static/3866700201062331034769...Bug有关: FIX: 系統效能可能很慢時應用程式送出許多查詢中針對使用簡單的參數化的 SQL Server 2005 資料庫 http://support.microsoft.com/kb/920206

    2.9K70

    MySQL数据库设计

    char:定长字符串(一旦设定了长度,无论真实内容有多少,都要占用指定长度的空间)  varchar:可变字符串  nvarchar()防止乱码出现 varchar(n),nvarchar(n) 中的...n的取值范围:   nvarchar(n)?? n的范围是:1与4000之间   varchar(n)??...两字段分别有字段值:我和coffee?   那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。?   ...如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar。 varchar和nvarchar如何选择?   ...varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unicode来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unicode编码),英文字符保存到数据库中

    3.3K110

    如何设计出一个比较合理的数据归档系统

    , 3 每次归档的时间段,例如一个月一归档,还是一年做一次归档,如果数据量大的情况下,自动化的数据归档是比较省心省力的 4 一些意外情况,例如写好的归档程序,运行良好,但某天开始不能进行归档,首先要考虑是不是原表的结构有变动...下面举一个列子,请忽略由于不同数据库引起的SQL 语句的不同,只看逻辑 REATE PROCEDURE archive_table AS BEGIN SET NOCOUNT ON; if Exists...(50),@source_table nvarchar(100),@destination_table nvarchar(100),@skip_status tinyint,@archive_num tinyint...,@key_column varchar(100) DECLARE @sql NVARCHAR(500) DECLARE cur CURSOR STATIC FOR SELECT source_database...[archive_history] order by start_time desc) FETCH NEXT FROM cur INTO @source_database,@source_table

    5.3K61
    领券