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

Structured Query Language (SQL) เป็นภาษาสำหรับการสืบค้นฐานข้อมูล คำถามควรมีตัวอย่างรหัสโครงสร้างตารางข้อมูลตัวอย่างและแท็กสำหรับการใช้งาน DBMS (เช่น MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 และอื่น ๆ ) หากคำถามของคุณเกี่ยวข้องกับ DBMS เฉพาะ (ใช้ส่วนขยาย / คุณลักษณะเฉพาะ) ให้ใช้แท็กของ DBMS นั้นแทน คำตอบของคำถามที่ติดแท็กด้วย SQL ควรใช้ SQL มาตรฐาน ISO / IEC

19
แก้ไขคอลัมน์ MySQL ให้เป็น AUTO_INCREMENT
ฉันกำลังพยายามปรับเปลี่ยนตารางเพื่อสร้างคอลัมน์คีย์หลักAUTO_INCREMENTหลังจากข้อเท็จจริง ฉันลอง SQL ต่อไปนี้ แต่ได้รับการแจ้งเตือนข้อผิดพลาดทางไวยากรณ์ ALTER TABLE document ALTER COLUMN document_id AUTO_INCREMENT ฉันกำลังทำอะไรผิดหรือเป็นไปไม่ได้? + -------------------- + | VERSION () | + -------------------- + | 5.0.75-0ubuntu10.2 | + -------------------- +
194 sql  mysql  alter-table 

9
สภาพภายใน JOIN หรือ WHERE
มีความแตกต่าง (ประสิทธิภาพการปฏิบัติที่ดีที่สุด ฯลฯ ... ) ระหว่างการวางเงื่อนไขในข้อเข้าร่วมกับข้อไหน? ตัวอย่างเช่น... -- Condition in JOIN SELECT * FROM dbo.Customers AS CUS INNER JOIN dbo.Orders AS ORD ON CUS.CustomerID = ORD.CustomerID AND CUS.FirstName = 'John' -- Condition in WHERE SELECT * FROM dbo.Customers AS CUS INNER JOIN dbo.Orders AS ORD ON CUS.CustomerID = ORD.CustomerID WHERE …
194 sql  performance 

9
จะอัพเดทสองตารางในหนึ่งคำสั่งใน SQL Server 2005 ได้อย่างไร
ฉันต้องการอัปเดตสองตารางในคราวเดียว ฉันจะทำเช่นนั้นใน SQL Server 2005 ได้อย่างไร UPDATE Table1, Table2 SET Table1.LastName='DR. XXXXXX', Table2.WAprrs='start,stop' FROM Table1 T1, Table2 T2 WHERE T1.id = T2.id AND T1.id = '010008'

5
SQL Server - การทำธุรกรรมย้อนกลับผิดพลาด?
เรามีแอปไคลเอนต์ที่ใช้งาน SQL บางตัวใน SQL Server 2005 ดังต่อไปนี้: BEGIN TRAN; INSERT INTO myTable (myColumns ...) VALUES (myValues ...); INSERT INTO myTable (myColumns ...) VALUES (myValues ...); INSERT INTO myTable (myColumns ...) VALUES (myValues ...); COMMIT TRAN; มันถูกส่งโดยคำสั่งสตริงยาวหนึ่งคำสั่ง ถ้าส่วนใดส่วนหนึ่งล้มเหลวหรือส่วนใดส่วนหนึ่งของคำสั่งล้มเหลว SQL Server จะย้อนกลับธุรกรรมหรือไม่ หากไม่ย้อนกลับฉันต้องส่งคำสั่งที่สองเพื่อย้อนกลับหรือไม่ ฉันสามารถให้เฉพาะเจาะจงเกี่ยวกับ API และภาษาที่ฉันใช้ แต่ฉันคิดว่า SQL Server ควรตอบสนองเหมือนกันสำหรับภาษาใด ๆ

5
แนวทางปฏิบัติที่ดีที่สุดสำหรับการออกแบบฐานข้อมูลหลายภาษาคืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา วิธีที่ดีที่สุดในการสร้างฐานข้อมูลหลายภาษาคืออะไร? ในการสร้างตารางที่แปลเป็นภาษาท้องถิ่นสำหรับทุกตารางที่ทำการออกแบบและทำการสืบค้นที่ซับซ้อนในกรณีอื่น ๆ การเพิ่มคอลัมน์สำหรับแต่ละภาษานั้นง่าย แต่ไม่ใช่แบบไดนามิกโปรดช่วยฉันให้เข้าใจสิ่งที่ดีที่สุดสำหรับแอปพลิเคชันองค์กร

8
จะปัดเศษทศนิยมเฉลี่ย 2 ตำแหน่งใน PostgreSQL ได้อย่างไร
ฉันใช้ PostgreSQL ผ่าน Ruby gem 'sequel' ฉันพยายามปัดทศนิยมสองตำแหน่ง นี่คือรหัสของฉัน: SELECT ROUND(AVG(some_column),2) FROM table ฉันได้รับข้อผิดพลาดต่อไปนี้: PG::Error: ERROR: function round(double precision, integer) does not exist (Sequel::DatabaseError) ฉันจะไม่ผิดพลาดเมื่อฉันเรียกใช้รหัสต่อไปนี้: SELECT ROUND(AVG(some_column)) FROM table ไม่มีใครรู้ว่าฉันกำลังทำอะไรผิดหรือเปล่า?
192 sql  ruby  postgresql  sequel 


8
Scope_Identity (), Identity (), @@ Identity, และ Ident_Current () แตกต่างกันอย่างไร?
ฉันรู้ว่าScope_Identity(), Identity(), @@IdentityและIdent_Current()ทุกคนได้รับค่าของคอลัมน์ตัวตน แต่ฉันชอบที่จะทราบความแตกต่าง ส่วนหนึ่งของการโต้เถียงที่ฉันมีคือพวกเขาหมายถึงอะไรตามขอบเขตที่นำไปใช้กับฟังก์ชั่นด้านบน ฉันจะรักตัวอย่างง่ายๆของสถานการณ์ที่แตกต่างกันของการใช้พวกเขา?
192 sql  sql-server  identity 

3
ใน Postgresql บังคับเฉพาะกับการรวมกันของสองคอลัมน์
ฉันต้องการตั้งค่าตารางใน PostgreSQL ซึ่งทั้งสองคอลัมน์จะต้องไม่ซ้ำกัน สามารถมีได้หลายค่าทั้งสองค่าตราบใดที่ไม่มีสองค่าที่ใช้ร่วมกัน ตัวอย่างเช่น CREATE TABLE someTable ( id int PRIMARY KEY AUTOINCREMENT, col1 int NOT NULL, col2 int NOT NULL ) ดังนั้นcol1และcol2สามารถทำซ้ำได้ แต่ไม่ใช่ในเวลาเดียวกัน ดังนั้นจะได้รับอนุญาต (ไม่รวมรหัส) 1 1 1 2 2 1 2 2 แต่ไม่ใช่: 1 1 1 2 1 1 -- would reject this insert for violating constraints
192 sql  postgresql  unique 

18
นำเข้าไฟล์ SQL ไปยัง mysql
nitmฉันมีฐานข้อมูลที่เรียกว่า ฉันไม่ได้สร้างตารางใด ๆ แต่ฉันมีไฟล์ SQL ซึ่งมีข้อมูลที่จำเป็นทั้งหมดสำหรับฐานข้อมูล ไฟล์นี้เป็นไฟล์ที่อยู่ในnitm.sql C:\ driveไฟล์นี้มีขนาดประมาณ 103 MB ฉันใช้เซิร์ฟเวอร์ wamp ฉันใช้ไวยากรณ์ต่อไปนี้ในคอนโซล MySQL เพื่อนำเข้าไฟล์: mysql>c:/nitm.sql; แต่มันไม่ได้ผล
191 mysql  sql  database  windows  import 

8
SQL RANK () กับ ROW_NUMBER ()
ฉันสับสนเกี่ยวกับความแตกต่างระหว่างสิ่งเหล่านี้ การรัน SQL ต่อไปนี้ทำให้ฉันได้รับสองชุดตัวระบุผลลัพธ์ ใครช่วยอธิบายความแตกต่างได้มั้ย SELECT ID, [Description], RANK() OVER(PARTITION BY StyleID ORDER BY ID) as 'Rank' FROM SubStyle SELECT ID, [Description], ROW_NUMBER() OVER(PARTITION BY StyleID ORDER BY ID) as 'RowNumber' FROM SubStyle
191 sql  sql-server  tsql 

7
ค่าเวลาเริ่มต้นของฐานข้อมูล sqlite 'ตอนนี้'
เป็นไปได้ในฐานข้อมูล sqlite เพื่อ craete ตารางที่มีคอลัมน์เวลาที่เริ่มต้นDATETIME('now')หรือไม่ แบบนี้: CREATE TABLE test ( id INTEGER PRIMARY KEY AUTOINCREMENT, t TIMESTAMP DEFAULT DATETIME('now') ); สิ่งนี้จะทำให้เกิดข้อผิดพลาด ... จะแก้ไขได้อย่างไร?
190 sql  sqlite 

7
จะเปลี่ยนคอลัมน์และเปลี่ยนค่าเริ่มต้นได้อย่างไร?
ฉันได้รับข้อผิดพลาดต่อไปนี้ขณะที่พยายามแก้ไขชนิดข้อมูลของคอลัมน์และตั้งค่าเริ่มต้นใหม่: ALTER TABLE foobar_data ALTER COLUMN col VARCHAR(255) NOT NULL SET DEFAULT '{}'; ข้อผิดพลาด 1064 (42000): คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชั่นเซิร์ฟเวอร์ MySQL ของคุณเพื่อหาไวยากรณ์ที่ถูกต้องใกล้กับ 'VARCHAR (255) ไม่ได้ตั้งค่าเริ่มต้นเป็นศูนย์' {} '' ที่บรรทัด 1
190 mysql  sql 

3
การสร้างดัชนีในตัวแปรตาราง
คุณสามารถสร้างดัชนีบนตัวแปรตารางใน SQL Server 2000 ได้หรือไม่? กล่าวคือ DECLARE @TEMPTABLE TABLE ( [ID] [int] NOT NULL PRIMARY KEY ,[Name] [nvarchar] (255) COLLATE DATABASE_DEFAULT NULL ) ฉันสามารถสร้างดัชนีได้Nameหรือไม่

12
ทำไมผู้คนถึงใช้ 255 ไม่ใช่ 256 สำหรับขนาดเขตข้อมูลของฐานข้อมูล
คุณมักจะเห็นเขตข้อมูลฐานข้อมูลตั้งค่าให้มีขนาด 255 ตัวอักษรเหตุผลดั้งเดิม / ประวัติศาสตร์คืออะไร ฉันคิดว่ามันเป็นเรื่องเกี่ยวกับการ จำกัด การเพจ / หน่วยความจำและประสิทธิภาพ แต่ความแตกต่างระหว่าง 255 และ 256 ทำให้ฉันสับสนอยู่เสมอ varchar(255) พิจารณานี้เป็นความจุหรือขนาดไม่ได้เป็นดัชนี , ทำไม 255 ที่ต้องการมากกว่า 256? ไบต์ถูกสงวนไว้สำหรับวัตถุประสงค์บางอย่าง (terminator หรือ null หรืออะไรบางอย่าง)? สมมุติว่า varchar (0) เป็นเรื่องไร้สาระ (มีความจุเป็นศูนย์) หรือไม่ ในกรณีใดพื้นที่ 2 ^ 8 ควรเป็น 256 แน่นอน? มีขนาดอื่นที่ให้ประโยชน์ด้านประสิทธิภาพหรือไม่ ตัวอย่างเช่น varchar (512) มีประสิทธิภาพน้อยกว่า varchar (511) หรือ varchar (510) …

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