คำถามติดแท็ก varchar

ฟิลด์อักขระ varchar หรือตัวแปรคือชุดข้อมูลอักขระที่มีความยาวไม่แน่นอน

18
ความแตกต่างระหว่าง varchar และ nvarchar คืออะไร?
มันเป็นเพียงที่nvarcharรองรับอักขระหลายไบต์? หากเป็นกรณีที่มีจริงๆจุดใด ๆ นอกเหนือจากความกังวลเกี่ยวกับการจัดเก็บข้อมูลเพื่อใช้varchars?

8
MySQL: VARCHAR ขนาดใหญ่เทียบกับ TEXT
ฉันมีตารางข้อความใน MySQL ที่บันทึกข้อความระหว่างผู้ใช้ นอกเหนือจากรหัสทั่วไปและประเภทข้อความ (ประเภทจำนวนเต็มทั้งหมด) ฉันต้องบันทึกข้อความจริงเป็น VARCHAR หรือ TEXT ฉันตั้งค่าขีด จำกัด front-end ของ 3000 ตัวอักษรซึ่งหมายความว่าข้อความจะไม่ถูกแทรกลงใน db นานกว่านี้ มีเหตุผลในการไปกับ VARCHAR (3000) หรือ TEXT หรือไม่? มีบางอย่างเกี่ยวกับการเขียนเพียง VARCHAR (3000) ที่ให้ความรู้สึกตอบโต้ได้ง่าย ฉันเคยผ่านการโพสต์อื่น ๆ ที่คล้ายกันใน Stack Overflow แต่จะเป็นการดีที่จะได้รับมุมมองเฉพาะสำหรับการจัดเก็บข้อความทั่วไปประเภทนี้
845 mysql  text  messages  varchar 


9
PostgreSQL: ความแตกต่างระหว่างข้อความและ varchar (การเปลี่ยนแปลงอักขระ)
อะไรคือความแตกต่างระหว่างtextชนิดข้อมูลและcharacter varying( varchar) ชนิดข้อมูล? ตามเอกสารประกอบ หากใช้การเปลี่ยนแปลงอักขระโดยไม่มีตัวระบุความยาวชนิดจะยอมรับสตริงที่มีขนาดใดก็ได้ หลังคือส่วนขยาย PostgreSQL และ นอกจากนี้ PostgreSQL ยังมีประเภทข้อความซึ่งจัดเก็บสตริงที่มีความยาวเท่าใดก็ได้ แม้ว่าข้อความชนิดไม่ได้อยู่ในมาตรฐาน SQL แต่ระบบการจัดการฐานข้อมูล SQL อื่น ๆ ก็มีเช่นกัน ดังนั้นความแตกต่างคืออะไร?

30
# 1071 - รหัสที่ระบุยาวเกินไป ความยาวสูงสุดของคีย์คือ 767 ไบต์
เมื่อฉันดำเนินการคำสั่งต่อไปนี้: ALTER TABLE `mytable` ADD UNIQUE ( `column1` , `column2` ); ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: #1071 - Specified key was too long; max key length is 767 bytes ข้อมูลเกี่ยวกับ column1 และ column2: column1 varchar(20) utf8_general_ci column2 varchar(500) utf8_general_ci ฉันคิดว่าvarchar(20)ต้องการเพียง 21 ไบต์ในขณะที่varchar(500)ต้องใช้เพียง 501 ไบต์ ดังนั้นจำนวนไบต์ทั้งหมดคือ 522 น้อยกว่า 767 ดังนั้นทำไมฉันถึงได้รับข้อความแสดงข้อผิดพลาด #1071 - Specified key was …

7
ความยาวสตริงของ GUID คืออะไร
ฉันต้องการสร้างคอลัมน์ varchar ใน SQL ที่ควรมีN'guid'while guidเป็น GUID ที่สร้างโดย. NET ( Guid.NewGuid ) - คลาส System.Guid ความยาวของvarcharฉันควรคาดหวังอะไรจาก GUID? มันเป็นความยาวคงที่? ฉันควรใช้nvarchar(GUID จะเคยใช้อักขระ Unicode หรือไม่) varchar(Guid.Length) PS ฉันไม่ต้องการใช้ guid data-row แถว SQL Guid.MaxLengthฉันเพียงแค่ขอให้สิ่งที่เป็น

7
ขนาดสูงสุดของ MySQL VARCHAR คืออะไร?
ฉันต้องการทราบว่าขนาดสูงสุดสำหรับ MySQL VARCHAR ประเภทใด ฉันอ่านว่าขนาดสูงสุดถูก จำกัด ด้วยขนาดแถวซึ่งประมาณ 65k ฉันพยายามตั้งค่าฟิลด์เป็นvarchar(20000)แต่มันบอกว่ามันใหญ่เกินไป varchar(10000)ฉันสามารถตั้งค่าให้ จำนวนสูงสุดที่แน่นอนที่ฉันสามารถตั้งค่าคืออะไร?
300 mysql  varchar  maxlength 

4
SQL Server ชนิดข้อความกับชนิดข้อมูล varchar [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันมีข้อมูลตัวอักขระความยาวผันแปรและต้องการเก็บไว้ในฐานข้อมูล SQL Server (2005) ฉันต้องการเรียนรู้แนวปฏิบัติที่ดีที่สุดเกี่ยวกับวิธีเลือก TEXT SQL type หรือเลือก VARCHAR SQL type ข้อดีและข้อเสียในประสิทธิภาพ / footprint / function

14
อะไรคือความแตกต่างของประสิทธิภาพหลักระหว่างชนิดข้อมูล varchar และ nvarchar SQL Server?
ฉันกำลังทำงานบนฐานข้อมูลสำหรับเว็บแอปเล็ก ๆ SQL Server 2005ที่โรงเรียนของฉันโดยใช้ ฉันเห็นโรงเรียนแห่งความคิดสองแห่งเกี่ยวกับเรื่องvarcharvs nvarchar: ใช้จนกว่าคุณจะจัดการกับข้อมูลจำนวนมากสากลแล้วการใช้งานvarcharnvarchar เพียงใช้nvarcharกับทุกสิ่ง ฉันเริ่มเห็นข้อดีของการดู 2 ฉันรู้ว่า nvarchar ใช้พื้นที่มากเป็นสองเท่า แต่นั่นก็ไม่ได้เป็นเรื่องใหญ่เพราะนี่จะเก็บข้อมูลสำหรับนักเรียนสองสามร้อยคนเท่านั้น สำหรับฉันดูเหมือนว่ามันจะง่ายที่สุดที่จะไม่กังวลเกี่ยวกับมันและเพียงแค่อนุญาตให้ทุกอย่างใช้ nvarchar หรือมีบางอย่างที่ฉันขาดหายไป?

5
การใช้ varchar (MAX) กับ TEXT บน SQL Server
ฉันเพิ่งอ่านว่าVARCHAR(MAX)ประเภทข้อมูล (ซึ่งสามารถเก็บได้ใกล้เคียงกับ 2GB ของข้อมูลถ่าน) คือการแทนที่ที่แนะนำสำหรับTEXTประเภทข้อมูลใน SQL Server 2005 และรุ่นถัดไปของ SQL Server หากฉันต้องการค้นหาสตริงใด ๆ ในคอลัมน์การดำเนินการใดที่เร็วกว่า ใช้ส่วนLIKEคำสั่งกับVARCHAR(MAX)คอลัมน์หรือไม่ WHERE COL1 LIKE '%search string%' ใช้TEXTคอลัมน์และใส่ดัชนีข้อความ / แคตตาล็อกแบบเต็มในคอลัมน์นี้แล้วค้นหาโดยใช้CONTAINSข้อ? WHERE CONTAINS (Col1, 'MyToken')

9
เปลี่ยนความยาวสูงสุดของคอลัมน์ varchar หรือไม่
ฉันพยายามอัปเดตความยาวของคอลัมน์ varchar จาก 255 ตัวอักษรเป็น 500 โดยไม่สูญเสียเนื้อหา ก่อนหน้านี้ฉันทำดร็อปและสร้างตารางใหม่ แต่ฉันไม่เคยเห็นคำสั่งเปลี่ยนแปลงซึ่งเป็นสิ่งที่ฉันเชื่อว่าฉันต้องใช้เพื่อทำสิ่งนี้ ฉันพบเอกสารที่นี่: ALTER TABLE (Transfact-SQL)แต่ฉันไม่สามารถทำหัวหรือก้อยได้ ฉันมีดังต่อไปนี้ (เป็นหลักไม่มีอะไรน่าเสียดาย): alter table [progennet_dev].PROGEN.LE alter column UR_VALUE_3 ฉันจะเข้าใกล้สิ่งนี้ได้อย่างไร มีเอกสารที่ดีกว่าสำหรับคำสั่งนี้หรือไม่ (ฉันได้ค้นหาคำสั่งตัวอย่างบางส่วน แต่ว่างเปล่า)



10
มีเหตุผลที่ดีที่ฉันเห็น VARCHAR (255) ใช้บ่อยไหม (ตรงกันข้ามกับความยาวอื่น)?
ในหลายหลักสูตรหนังสือและงานฉันได้เห็นเขตข้อมูลข้อความที่กำหนดเป็น VARCHAR (255) เป็นค่าเริ่มต้นสำหรับข้อความ "shortish" มีเหตุผลที่ดีหรือไม่ที่มีการเลือกความยาว 255 บ่อยครั้งนอกเหนือจากการเป็นจำนวนรอบที่ดี ? มันเป็นสิ่งที่ค้างไว้บางครั้งในอดีตเมื่อมีเหตุผลที่ดี (ไม่ว่าวันนี้จะมีผลหรือไม่)? แน่นอนฉันรู้ว่าขีด จำกัด ที่แน่นกว่าจะเหมาะกว่าถ้าคุณรู้ว่าความยาวสูงสุดของสตริง แต่ถ้าคุณใช้ VARCHAR (255) ซึ่งอาจบ่งบอกว่าคุณไม่ทราบความยาวสูงสุดเฉพาะว่าเป็นสตริง "shortish" หมายเหตุ: ฉันพบคำถามนี้ ( varchar (255) v tinyblob v tinytext ) ซึ่งบอกว่า VARCHAR ( n ) ต้องการหน่วยเก็บข้อมูล +1 nไบต์สำหรับn <= 255, n +2 ไบต์ของที่เก็บสำหรับn > 255 นี่เป็นเหตุผลเดียวหรือไม่ ดูเหมือนจะเป็นเรื่องที่ไม่มีกฎเกณฑ์เนื่องจากคุณจะประหยัดเพียงสองไบต์เมื่อเปรียบเทียบกับ VARCHAR (256) และคุณสามารถบันทึกอีกสองไบต์ได้อย่างง่ายดายโดยการประกาศ VARCHAR …

9
Postgresql - เปลี่ยนขนาดของคอลัมน์ varchar ให้มีความยาวต่ำกว่า
ฉันมีคำถามเกี่ยวกับALTER TABLEคำสั่งบนตารางที่มีขนาดใหญ่มาก (เกือบ 30 ล้านแถว) หนึ่งในคอลัมน์ที่เป็นและฉันต้องการที่จะปรับขนาดไปvarchar(255) varchar(40)โดยทั่วไปฉันต้องการเปลี่ยนคอลัมน์ของฉันโดยเรียกใช้คำสั่งต่อไปนี้: ALTER TABLE mytable ALTER COLUMN mycolumn TYPE varchar(40); ฉันไม่มีปัญหาหากกระบวนการมีความยาวมาก แต่ดูเหมือนว่าตารางของฉันจะไม่สามารถอ่านได้มากขึ้นในระหว่างคำสั่ง ALTER TABLE มีวิธีที่ฉลาดกว่านี้ไหม? อาจเพิ่มคอลัมน์ใหม่คัดลอกค่าจากคอลัมน์เก่าวางคอลัมน์เก่าแล้วเปลี่ยนชื่อใหม่ในที่สุด? เบาะแสใด ๆ จะได้รับการชื่นชมอย่างมาก! ขอบคุณล่วงหน้า, หมายเหตุ: ฉันใช้ PostgreSQL 9.0

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.