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

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


16
ข้อผิดพลาดที่เกี่ยวข้องกับ only_full_group_by เมื่อดำเนินการค้นหาใน MySql
ฉันได้อัพเกรดระบบของฉันและได้ติดตั้ง MySql 5.7.9 ด้วย php สำหรับเว็บแอปพลิเคชันที่ฉันกำลังทำงานอยู่ ฉันมีคิวรีที่สร้างขึ้นแบบไดนามิกและเมื่อทำงานใน MySql เวอร์ชันเก่ามันทำงานได้ดี ตั้งแต่อัปเกรดเป็น 5.7 ฉันได้รับข้อผิดพลาดนี้: นิพจน์ # 1 ของรายการที่เลือกไม่ได้อยู่ในกลุ่มตามข้อและมีคอลัมน์ที่ไม่รวม 'support_desk.mod_users_groups.gid_id' ซึ่งไม่ได้ขึ้นอยู่กับหน้าที่ของคอลัมน์ในกลุ่มตามข้อ; สิ่งนี้เข้ากันไม่ได้กับ sql_mode = only_full_group_by หมายเหตุ: หน้าคู่มือสำหรับ MySQL 5.7 ในหัวข้อของโหมด SQL Server นี่คือแบบสอบถามที่ทำให้ฉันมีปัญหา: SELECT mod_users_groups.group_id AS 'value', group_name AS 'text' FROM mod_users_groups LEFT JOIN mod_users_data ON mod_users_groups.group_id = mod_users_data.group_id WHERE mod_users_groups.active = 1 …

12
ดัชนีใน SQL คืออะไร
คืออะไรดัชนีใน SQL? คุณสามารถอธิบายหรืออ้างอิงเพื่อทำความเข้าใจได้อย่างชัดเจนหรือไม่ ฉันควรใช้ดัชนีที่ไหน
440 sql  indexing 

6
แบบสอบถาม SQL ส่งคืนข้อมูลจากหลายตาราง
ฉันต้องการทราบสิ่งต่อไปนี้: วิธีรับข้อมูลจากหลายตารางในฐานข้อมูลของฉัน มีวิธีการประเภทใดให้ทำเช่นนี้? ตัวเชื่อมและสหภาพคืออะไรและแตกต่างจากกันอย่างไร เมื่อใดที่ฉันควรใช้แต่ละรายการเปรียบเทียบกับรายการอื่น ฉันวางแผนที่จะใช้สิ่งนี้ในแอปพลิเคชัน (ตัวอย่างเช่น - PHP) ของฉัน แต่ไม่ต้องการเรียกใช้แบบสอบถามจำนวนมากกับฐานข้อมูลฉันต้องทำอะไรตัวเลือกใดบ้างเพื่อรับข้อมูลจากหลายตารางในแบบสอบถามเดียว หมายเหตุ: ฉันกำลังเขียนสิ่งนี้เนื่องจากฉันต้องการลิงก์ไปยังคำแนะนำที่เป็นลายลักษณ์อักษรอย่างดีเกี่ยวกับคำถามมากมายที่ฉันพบเจอในคิว PHP อย่างต่อเนื่องดังนั้นฉันจึงสามารถลิงก์ไปยังรายละเอียดเพิ่มเติมได้เมื่อฉันโพสต์คำตอบ คำตอบครอบคลุมถึงสิ่งต่อไปนี้: ส่วนที่ 1 - เข้าร่วมและสหภาพ ส่วนที่ 2 - คำถามย่อย ส่วนที่ 3 - เทคนิคและรหัสที่มีประสิทธิภาพ ส่วนที่ 4 - เคียวรีย่อยใน From Clause ตอนที่ 5 - ถุงผสมของจอห์นทริค
434 mysql  sql  select 

7
แบบสอบถาม SQL Server - การเลือก COUNT (*) ด้วย DISTINCT
ใน SQL Server 2005 ฉันมีตาราง cm_production ที่แสดงรหัสทั้งหมดที่นำไปผลิต ตารางมี ticket_number, program_type และ program_name และ push_number พร้อมกับคอลัมน์อื่น ๆ เป้าหมาย: นับชื่อโปรแกรม DISTINCT ทั้งหมดตามประเภทโปรแกรมและหมายเลขพุช สิ่งที่ฉันมีอยู่คือ: DECLARE @push_number INT; SET @push_number = [HERE_ADD_NUMBER]; SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type] FROM cm_production WHERE push_number=@push_number GROUP BY program_type นี่ทำให้ฉันอยู่ตรงนั้น แต่นับชื่อโปรแกรมทั้งหมดไม่ใช่ชื่อที่ต่างกัน (ซึ่งฉันไม่คิดว่าจะทำในแบบสอบถามนั้น) ฉันเดาว่าฉันไม่สามารถคาดเดาวิธีที่จะบอกให้นับเฉพาะชื่อโปรแกรมที่แตกต่างได้โดยไม่ต้องเลือก หรือบางสิ่งบางอย่าง.

5
Entity Framework VS LINQ ไปยัง SQL VS ADO.NET พร้อมโพรซีเดอร์ที่เก็บไว้? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดเมื่อปีที่แล้ว คุณจะให้คะแนนแต่ละคนอย่างไรในแง่ของ: ประสิทธิภาพ ความเร็วในการพัฒนา รหัสที่ใช้งานง่ายสามารถบำรุงรักษาได้ มีความยืดหยุ่น ทั้งหมด ฉันชอบ SQL ของฉันและเป็นแฟนตัวยงของ ADO.NET และขั้นตอนการจัดเก็บอยู่เสมอ แต่เมื่อเร็ว ๆ นี้ฉันได้เล่นกับ Linq ไปยัง SQL และถูกลมพัดปลิวไปตามความเร็วที่ฉันเขียนชั้น DataAccess และตัดสินใจที่จะใช้จ่ายอย่างรวดเร็ว บางครั้งการเข้าใจ Linq ถึง SQL หรือ EF ... หรือไม่? ฉันแค่ต้องการตรวจสอบว่าไม่มีข้อบกพร่องที่ยอดเยี่ยมในเทคโนโลยีเหล่านี้ที่จะทำให้เวลาในการวิจัยของฉันไร้ประโยชน์ ประสิทธิภาพเช่นแย่มากมันยอดเยี่ยมสำหรับแอพที่เรียบง่าย แต่สามารถพาคุณไปได้ไกล ปรับปรุง: คุณสามารถมุ่งความสนใจไปที่ EF VS L2S VS SP ได้มากกว่า ORM VS SPs …

9
ปรับปรุงและแทนที่ส่วนหนึ่งของสตริง
ฉันมีตารางที่มีสองคอลัมน์IDและValue. ฉันต้องการเปลี่ยนบางส่วนของสตริงในคอลัมน์ที่สอง ตัวอย่างของตาราง: ID Value --------------------------------- 1 c:\temp\123\abc\111 2 c:\temp\123\abc\222 3 c:\temp\123\abc\333 4 c:\temp\123\abc\444 ตอนนี้ไม่จำเป็น123\ในValueสตริง ฉันพยายามUPDATEแล้วREPLACE: UPDATE dbo.xxx SET Value = REPLACE(Value, '%123%', '') WHERE ID <= 4 เมื่อฉันเรียกใช้งานสคริปต์ SQL Server จะไม่รายงานข้อผิดพลาด แต่จะไม่ปรับปรุงสิ่งใดเลย ทำไมถึงเป็นอย่างนั้น?


6
เมื่อใดที่จะใช้“ ON CASCADE UPDATE”
ฉันใช้ "ON DELETE CASCADE" เป็นประจำ แต่ฉันไม่เคยใช้ "ON CASCADE UPDATE" เนื่องจากฉันไม่แน่ใจในสถานการณ์ที่จะเป็นประโยชน์ เพื่อประโยชน์ของการสนทนาให้ดูรหัสบางส่วน CREATE TABLE parent ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) ); CREATE TABLE child ( id INT NOT NULL AUTO_INCREMENT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ); สำหรับ "ON DELETE …

21
วิธีลบแถวที่ซ้ำกันใน SQL Server
ฉันจะลบแถวที่ซ้ำกันที่ไม่มีunique row idอยู่ได้อย่างไร โต๊ะของฉันคือ col1 col2 col3 col4 col5 col6 col7 john 1 1 1 1 1 1 john 1 1 1 1 1 1 sally 2 2 2 2 2 2 sally 2 2 2 2 2 2 ฉันต้องการที่จะเหลือต่อไปนี้หลังจากการลบที่ซ้ำกัน: john 1 1 1 1 1 1 sally 2 2 …

7
เลือกคำสั่งเพื่อค้นหารายการซ้ำในบางฟิลด์
คุณสามารถช่วยฉันด้วยคำสั่ง SQL เพื่อค้นหารายการที่ซ้ำกันในหลายสาขาได้หรือไม่? ตัวอย่างเช่นในรหัสเทียม: select count(field1,field2,field3) from table where the combination of field1, field2, field3 occurs multiple times และจากคำสั่งดังกล่าวหากมีเกิดขึ้นหลายฉันต้องการจะเลือกบันทึกทุกยกเว้นคนแรก

5
ฉันจะเลือก DISTINCT ในหลายคอลัมน์ได้อย่างไร (หรือฉันสามารถ)
ฉันต้องการดึงแถวทั้งหมดจากตารางที่มี 2 คอลัมน์รวมกันแตกต่างกันทั้งหมด ดังนั้นฉันต้องการยอดขายทั้งหมดที่ไม่มียอดขายอื่น ๆ ที่เกิดขึ้นในวันเดียวกันในราคาเดียวกัน ยอดขายที่ไม่ซ้ำกันตามวันและราคาจะได้รับการอัปเดตเป็นสถานะที่ใช้งานอยู่ ดังนั้นฉันคิดว่า: UPDATE sales SET status = 'ACTIVE' WHERE id IN (SELECT DISTINCT (saleprice, saledate), id, count(id) FROM sales HAVING count = 1) แต่สมองของฉันเจ็บไปไกลกว่านั้น

11
การส่งออกข้อมูลใน SQL Server เป็น INSERT INTO
ฉันใช้ SQL Server 2008 Management Studio และมีตารางที่ฉันต้องการย้ายไปยังเซิร์ฟเวอร์ db อื่น มีตัวเลือกในการส่งออกข้อมูลเป็นส่วนแทรกลงในสคริปต์ SQL หรือไม่?

30
วิธีการเลือกแถวที่ n ในตารางฐานข้อมูล SQL
ฉันสนใจที่จะเรียนรู้วิธีฐานข้อมูลแบบไม่เชื่อเรื่องพระเจ้าในการเลือกแถวที่nจากตารางฐานข้อมูล นอกจากนี้ยังเป็นที่น่าสนใจที่จะเห็นว่าสิ่งนี้สามารถทำได้โดยใช้ฟังก์ชั่นพื้นเมืองของฐานข้อมูลต่อไปนี้: เซิร์ฟเวอร์ SQL MySQL PostgreSQL SQLite คำพยากรณ์ ฉันกำลังทำสิ่งต่อไปนี้ใน SQL Server 2005 แต่ฉันสนใจที่จะเห็นแนวทางที่ไม่เชื่อเรื่องพระเจ้าของผู้อื่นมากขึ้น: WITH Ordered AS ( SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate FROM Orders) SELECT * FROM Ordered WHERE RowNumber = 1000000 เครดิตสำหรับ SQL ข้างต้น: บล็อกของ Firoz Ansari อัปเดต:ดูคำตอบของ Troels Arvinเกี่ยวกับมาตรฐาน SQL Troels คุณมีลิงค์ที่เราสามารถอ้างอิงได้ไหม?

12
Explicit vs implicit SQL joins
มีความแตกต่างของประสิทธิภาพในการรวมภายในอย่างชัดเจนกับนัยหรือไม่? ตัวอย่างเช่น: SELECT * FROM table a INNER JOIN table b ON a.id = b.id; เมื่อเทียบกับ SELECT a.*, b.* FROM table a, table b WHERE a.id = b.id;
399 sql  join 

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