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

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

10
ฉันจะวางข้อ จำกัด foreign key ได้อย่างไรหากมีอยู่ในเซิร์ฟเวอร์ sql
ฉันสามารถวางตารางหากมีอยู่โดยใช้รหัสต่อไปนี้ แต่ไม่ทราบว่าจะทำอย่างไรกับข้อ จำกัด : IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'TableName') AND type = (N'U')) DROP TABLE TableName go ฉันยังเพิ่มข้อ จำกัด โดยใช้รหัสนี้: ALTER TABLE [dbo].[TableName] WITH CHECK ADD CONSTRAINT [FK_TableName_TableName2] FOREIGN KEY([FK_Name]) REFERENCES [dbo].[TableName2] ([ID]) go


25
ใช้ที่อยู่อีเมลเป็นรหัสหลักหรือไม่
ที่อยู่อีเมลเป็นตัวเลือกที่ไม่ถูกต้องสำหรับข้อมูลหลักเมื่อเปรียบเทียบกับตัวเลขที่เพิ่มขึ้นอัตโนมัติหรือไม่ เว็บแอปพลิเคชันของเราต้องการที่อยู่อีเมลที่ไม่ซ้ำกันในระบบ ดังนั้นฉันคิดว่าการใช้ที่อยู่อีเมลเป็นคีย์หลัก อย่างไรก็ตามเพื่อนร่วมงานของฉันแนะนำว่าการเปรียบเทียบสตริงจะช้ากว่าการเปรียบเทียบจำนวนเต็ม เป็นเหตุผลที่ถูกต้องหรือไม่ที่จะไม่ใช้อีเมลเป็นคีย์หลัก? PostgreSQLเราใช้

24
วิธีที่เร็วที่สุดในการนับจำนวนแถวที่แน่นอนในตารางที่มีขนาดใหญ่มาก?
ฉันเจอบทความที่แจ้งว่าSELECT COUNT(*) FROM TABLE_NAMEจะช้าเมื่อตารางมีจำนวนแถวและคอลัมน์จำนวนมาก ฉันมีตารางที่อาจมีหลายพันล้านแถว [มีประมาณ 15 คอลัมน์] มีวิธีที่ดีกว่าในการรับจำนวนที่แน่นอนของจำนวนแถวของตารางหรือไม่ โปรดพิจารณาสิ่งต่อไปนี้ก่อนคำตอบของคุณ: ฉันกำลังมองหาโซลูชันที่เป็นอิสระจากผู้จำหน่ายฐานข้อมูล มันก็โอเคถ้ามันครอบคลุมMySQL , ออราเคิล , MS SQL Server แต่ถ้าไม่มีผู้ให้บริการฐานข้อมูลที่เป็นอิสระจริงๆแล้วฉันจะตัดสินหาคำตอบที่แตกต่างกันสำหรับผู้จำหน่ายฐานข้อมูลที่แตกต่างกัน ฉันไม่สามารถใช้เครื่องมือภายนอกอื่นเพื่อทำสิ่งนี้ ฉันกำลังมองหาโซลูชันที่ยึดตาม SQL เป็นหลัก ฉันไม่สามารถทำให้การออกแบบฐานข้อมูลของฉันเป็นปกติอีกต่อไป มันมีอยู่แล้วใน 3NF และยิ่งกว่านั้นมีการเขียนโค้ดจำนวนมากรอบ ๆ
234 sql  database 

5
การเปรียบเทียบสตริงที่มีความสำคัญของ Case SQL
คุณจะเปรียบเทียบสตริงได้อย่างไรเพื่อให้การเปรียบเทียบนั้นเป็นจริงเฉพาะถ้ากรณีของสตริงแต่ละรายการเท่ากัน ตัวอย่างเช่น: Select * from a_table where attribute = 'k' ... จะส่งคืนแถวที่มีแอตทริบิวต์ 'K' ฉันไม่ต้องการพฤติกรรมนี้
234 sql  sql-server 

23
แสดงรายการคอลัมน์ที่มีดัชนีใน PostgreSQL
ฉันต้องการรับคอลัมน์ที่มีดัชนีอยู่ใน PostgreSQL ใน MySQL คุณสามารถใช้SHOW INDEXES FOR tableและดูColumn_nameคอลัมน์ mysql> show indexes from foos; +-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | +-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | foos | 0 | PRIMARY | 1 | id …
233 sql  postgresql  indexing 

13
วิธีการคัดลอกแถวและแทรกในตารางเดียวกันกับเขตข้อมูล autoincrement ใน MySQL?
ใน MySQL ฉันพยายามที่จะคัดลอกแถวที่มีautoincrement column ID=1และใส่column ID=2ข้อมูลลงในตารางเดียวกันเป็นแถวใหม่ที่มี ฉันจะทำสิ่งนี้ในแบบสอบถามเดียวได้อย่างไร
233 mysql  sql  insert  copy 

30
รูปแบบการต่อต้าน SQL ที่พบมากที่สุดคืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา เราทุกคนที่ทำงานกับฐานข้อมูลเชิงสัมพันธ์ได้เรียนรู้ (หรือกำลังเรียนรู้) ว่า SQL นั้นแตกต่างกัน การสร้างผลลัพธ์ที่ต้องการและการทำเช่นนั้นอย่างมีประสิทธิภาพนั้นเกี่ยวข้องกับกระบวนการที่น่าเบื่อบางส่วนโดยการเรียนรู้กระบวนทัศน์ที่ไม่คุ้นเคยและพบว่ารูปแบบการเขียนโปรแกรมที่คุ้นเคยที่สุดบางส่วนของเราไม่ทำงานที่นี่ Antipatterns ทั่วไปที่คุณเห็นคืออะไร
232 sql  anti-patterns 

12
รีเซ็ตตัวนับการเพิ่มอัตโนมัติใน postgres
ฉันต้องการบังคับให้ฟิลด์การเพิ่มอัตโนมัติของตารางเป็นค่าบางอย่างฉันได้ลองทำสิ่งนี้: ALTER TABLE product AUTO_INCREMENT = 1453 และ ALTER SEQUENCE product RESTART WITH 1453; ERROR: relation "your_sequence_name" does not exist ฉันใหม่เพื่อ postgres :( ผมมีตารางproductที่มีIdและnameข้อมูล


18
ค้นหาแถวที่ซ้ำกันใน SQL Server
ฉันมีฐานข้อมูล SQL Server ขององค์กรและมีแถวที่ซ้ำกันจำนวนมาก ฉันต้องการเรียกใช้คำสั่ง select เพื่อจับสิ่งเหล่านี้และจำนวนของ dupes แต่กลับด้วยรหัสที่เกี่ยวข้องกับแต่ละองค์กร คำสั่งเช่น: SELECT orgName, COUNT(*) AS dupes FROM organizations GROUP BY orgName HAVING (COUNT(*) > 1) จะคืนสิ่งที่ชอบ orgName | dupes ABC Corp | 7 Foo Federation | 5 Widget Company | 2 แต่ฉันต้องการคว้ารหัสของพวกเขาด้วย มีวิธีการทำเช่นนี้? อาจจะชอบ orgName | dupeCount | id ABC Corp …

9
เลือก * จาก X WHERE ID IN (…) พร้อม Dapper ORM
เป็นวิธีที่ดีที่สุดในการเขียนแบบสอบถามด้วยในมาตราการใช้ Dapper ORM คืออะไรเมื่อรายการของค่าสำหรับข้อ IN มาจากตรรกะทางธุรกิจ ตัวอย่างเช่นสมมติว่าฉันมีแบบสอบถาม: SELECT * FROM SomeTable WHERE id IN (commaSeparatedListOfIDs) จะถูกส่งผ่านมาจากเหตุผลทางธุรกิจและมันสามารถเป็นชนิดใดcommaSeparatedListOfIDs IEnumerable(of Integer)ฉันจะสร้างแบบสอบถามในกรณีนี้ได้อย่างไร ฉันต้องทำสิ่งที่ฉันได้ทำไปแล้วซึ่งโดยทั่วไปจะเป็นการต่อสตริงหรือมีเทคนิคการแมปพารามิเตอร์ขั้นสูงบางอย่างที่ฉันไม่ทราบหรือไม่?
231 .net  sql  dapper 

6
MySQL ดีกว่าที่จะแทรก NULL หรือสตริงว่าง?
ฉันมีแบบฟอร์มบนเว็บไซต์ที่มีฟิลด์ต่าง ๆ มากมาย ฟิลด์บางฟิลด์เป็นทางเลือกในขณะที่บางฟิลด์บังคับ ในฐานข้อมูลของฉันฉันมีตารางที่เก็บค่าเหล่านี้ทั้งหมดเป็นวิธีที่ดีกว่าหรือไม่ในการแทรกค่า NULL หรือสตริงว่างลงในคอลัมน์ DB ที่ผู้ใช้ไม่ได้ใส่ข้อมูลใด ๆ
230 mysql  sql  sql-null 

9
เมื่อใดจึงควรใช้ Common Table Expression (CTE)
ฉันเริ่มอ่านเกี่ยวกับCommon Table Expressionและไม่สามารถนึกถึงกรณีการใช้งานที่ฉันจะต้องใช้ พวกเขาดูเหมือนจะซ้ำซ้อนเหมือนกันสามารถทำได้ด้วยตารางที่ได้รับ มีบางอย่างที่ฉันขาดหายไปหรือไม่เข้าใจใช่ไหม ใครสามารถให้ตัวอย่างง่ายๆของข้อ จำกัด กับแบบสอบถามแบบธรรมดา, มาหรือ temp ตารางเพื่อให้กรณีของ CTE? ตัวอย่างง่ายๆใด ๆ ที่จะได้รับการชื่นชมอย่างมาก


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