使所有Sql Server 2008字符串列varchar(max)有问题吗?我允许的字符串大小由应用程序管理.数据库应该坚持我给它的东西.通过在Sql Server 2008中将所有字符串列声明为varchar(max)类型,无论实际进入它们的数据大小如何,我都会受到性能影响吗?
在MySQL中,如果我VARCHAR(32)在UTF-8表中创建一个新字段,是否意味着我可以在该字段中存储32个字节的数据或32个字符(多字节)?
假设我有一个SQL表,其中包含一个名为"Remarks"的varchar [1000]字段.
我想制作一个SQL语句,该语句在执行时将返回1000,或者将来可能更改varchar字段的大小.
有点像SELECT size(Remarks) FROM mytable.
我该怎么做呢?
MySQL如何存储varchar字段?我可以假设以下模式表示合理的存储大小:
1,2,4,8,16,32,64,128,255(最大)
通过示例澄清.假设我有一个20个字符的varchar字段.MySQL在创建这个字段时,基本上保留了32个字节的空间(不确定它们是否为字节)但只允许输入20个字节?
我想我担心为大型表优化磁盘空间.
我搞砸了并创建了一个varchar(255)列,这已经不够用了.我已经读过varchar对Postgres上的文本没有性能优势,所以想要以保存数据的安全方式将varchar转换为文本列.
这对我来说最好的方法是什么?
我想知道,如果我有一个200个字符的VARCHAR并且我放了100个字符的字符串,它会使用200个字节还是只使用字符串的实际大小?
我需要澄清一下MySQL中varchar字段的最大长度.
我一直认为最大长度是255(255什么?我假设的字符,但这可能是我混淆的原因).看一下我们正在使用的外部公司设置的数据库表,我看到一个字段设置为varchar(20000),保存的块长度超过255个字符.为什么这样做?20000是有效值吗?
一些谷歌搜索显示,在mysql varchar有65,535字节的限制,我看到varchar(65535)正在使用,那么255限制如何与此相关?
为什么我们总是需要指定VARCHAR(length)而不仅仅是VARCHAR?无论如何它是动态的.
UPD:我特别困惑的是它是强制性的(例如在MySQL中).
我正在尝试使用单词列表填充SQL表.表本身很简单:
CREATE TABLE WORDS(
ID BIGINT AUTO_INCREMENT,
WORD VARCHAR(128) NOT NULL UNIQUE,
PRIMARY KEY(ID)
);
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是:当我执行以下插入时,背靠背
INSERT INTO WORDS(WORD) VALUES('Seth');
INSERT INTO WORDS(WORD) VALUES('seth');
Run Code Online (Sandbox Code Playgroud)
第二个插入失败,出现约束违规("键'WORD'的重复输入'seth'").
如何使UNIQUE约束WORD区分大小写?
在这里,我尝试创建视图,如下所示:
例:
create view view1
as
select table1.col1,table2.col1,table3.col3
from table1
inner join
table2
inner join
table3
on
table1.col4 = table2.col5
/* Here col4 of table1 is of "integer" type and col5 of table2 is of type "varchar" */
/* ERROR: operator does not exist: integer = character varying */
....;
Run Code Online (Sandbox Code Playgroud)
注意:在sql server中执行相同的查询但在postgreSQL中遇到上述错误.