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

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

4
อะไรคือความแตกต่างระหว่าง LATERAL และแบบสอบถามย่อยใน PostgreSQL?
ตั้งแต่ Postgres ออกมาพร้อมกับความสามารถในการLATERALเข้าร่วมฉันได้อ่านมันเนื่องจากฉันกำลังทำการทิ้งข้อมูลที่ซับซ้อนสำหรับทีมของฉันพร้อมกับเคียวรีย่อยที่ไม่มีประสิทธิภาพจำนวนมากซึ่งทำให้เคียวรีโดยรวมใช้เวลาสี่นาทีหรือมากกว่า ฉันเข้าใจว่าการLATERALเข้าร่วมอาจช่วยฉันได้ แต่แม้หลังจากอ่านบทความอย่างนี้จาก Heap Analytics ฉันก็ยังไม่ค่อยติดตาม กรณีการใช้งานสำหรับการLATERALเข้าร่วมคืออะไร? การLATERALเข้าร่วมและการสืบค้นย่อยแตกต่างกันอย่างไร

12
Java - สตริงการยกเว้นเพื่อป้องกันการฉีด SQL
ฉันพยายามใส่ anti sql injection ใน java และฉันพบว่ามันยากมากที่จะทำงานกับฟังก์ชั่นสตริง "replaceAll" ในที่สุดฉันต้องฟังก์ชั่นที่จะแปลงใด ๆ ที่มีอยู่\ในการ\\ใด ๆ"เพื่อ\"ใด ๆ'ไป\'และใด ๆ\nไป\\nเพื่อที่ว่าเมื่อสตริงจะถูกประเมินโดยการฉีด MySQL SQL จะถูกปิดกั้น ฉันได้เพิ่มโค้ดบางส่วนที่ฉันทำงานด้วยและ\\\\\\\\\\\ฟังก์ชั่นทั้งหมดทำให้ตาของฉันแย่ลง หากใครเกิดขึ้นมีตัวอย่างของเรื่องนี้ฉันจะขอบคุณมันมาก

15
การเลือก 1 จากตารางหมายถึงอะไร
ฉันได้เห็นข้อความค้นหามากมายด้วยบางสิ่งดังต่อไปนี้ Select 1 From table สิ่งนี้1หมายความว่าอย่างไรมันจะถูกประหารชีวิตอย่างไรและมันจะกลับมาอย่างไร นอกจากนี้ในสถานการณ์ประเภทใดสามารถใช้สิ่งนี้ได้ไหม
146 mysql  sql  plsql 

9
วิธีการรายงานข้อผิดพลาดจากฟังก์ชั่นที่ผู้ใช้กำหนดของ SQL Server
ฉันกำลังเขียนฟังก์ชั่นที่ผู้ใช้กำหนดใน SQL Server 2008 ฉันรู้ว่าฟังก์ชั่นไม่สามารถเพิ่มข้อผิดพลาดได้ตามปกติ - ถ้าคุณพยายามรวมคำสั่ง RAISERROR คำสั่ง SQL จะคืนค่า: Msg 443, Level 16, State 14, Procedure ..., Line ... Invalid use of a side-effecting operator 'RAISERROR' within a function. แต่ความจริงก็คือฟังก์ชั่นรับอินพุตบางส่วนซึ่งอาจไม่ถูกต้องและหากเป็นเช่นนั้นจะไม่มีค่าที่มีความหมายที่ฟังก์ชันสามารถส่งคืนได้ ฉันจะทำอย่างไรดี แน่นอนว่าฉันสามารถส่งคืน NULL ได้ แต่มันจะเป็นเรื่องยากสำหรับนักพัฒนาที่ใช้ฟังก์ชั่นในการแก้ไขปัญหานี้ ฉันสามารถทำให้เกิดการหารด้วยศูนย์หรืออะไรทำนองนั้น - นี่จะสร้างข้อความแสดงข้อผิดพลาด แต่เป็นการทำให้เข้าใจผิด มีวิธีใดบ้างที่ฉันสามารถแจ้งข้อความแสดงข้อผิดพลาดของตัวเองได้

18
เหตุใด NULL = NULL จึงประเมินว่าเป็นเท็จในเซิร์ฟเวอร์ SQL
ในเซิร์ฟเวอร์ SQL ถ้าคุณ nullParam=NULLอยู่ในส่วนคำสั่ง where จะประเมินค่าเป็น false เสมอ นี่เป็นสิ่งที่ขัดกับความเข้าใจง่ายและทำให้ฉันมีข้อผิดพลาด ฉันเข้าใจIS NULLและIS NOT NULLคำหลักเป็นวิธีที่ถูกต้องที่จะทำ แต่ทำไมเซิร์ฟเวอร์ SQL ถึงทำงานแบบนี้?
146 sql  sql-server  null 



5
ความแตกต่างระหว่าง Select Unique และ Select Distinct
ฉันคิดว่าสิ่งเหล่านี้เป็นแบบอิสระ แต่ฉันเขียนสิ่งต่อไปนี้ใน Microsoft SQL: Select Unique col from (select col from table1 union select col from table2) alias และมันก็ล้มเหลว เปลี่ยนเป็น Select Distinct col from (select col from table1 union select col from table2) alias ซ่อมมัน. มีคนอธิบายได้ไหม
145 sql  sql-server 

12
ใช้ตารางการกำหนดค่าแถวเดียวในฐานข้อมูล SQL Server ความคิดที่ไม่ดี?
ในการพัฒนาแอปพลิเคชั่นตะกร้าสินค้าฉันพบว่าฉันต้องการบันทึกการตั้งค่าและการกำหนดค่าตามความต้องการและความต้องการของผู้ดูแลระบบ ข้อมูลนี้สามารถเป็นอะไรก็ได้จากข้อมูล บริษัท รหัสบัญชีการจัดส่งคีย์ PayPal API การตั้งค่าการแจ้งเตือน ฯลฯ ดูเหมือนว่าไม่เหมาะสมอย่างยิ่งที่จะสร้างตารางเพื่อจัดเก็บแถวเดียวในระบบฐานข้อมูลเชิงสัมพันธ์ วิธีที่เหมาะสมในการจัดเก็บข้อมูลนี้คืออะไร? หมายเหตุ: DBMS ของฉันคือ SQL Server 2008 และมีการใช้งานเลเยอร์การเขียนโปรแกรมด้วย ASP.NET (ใน C #)

14
วิธีการออกแบบฐานข้อมูลสำหรับฟิลด์ที่ผู้ใช้กำหนด?
ความต้องการของฉันคือ: จำเป็นต้องสามารถเพิ่มเขตข้อมูลที่ผู้ใช้กำหนดเองได้ทุกประเภท จำเป็นต้องสามารถสืบค้น UDF ได้อย่างรวดเร็ว จำเป็นต้องสามารถทำการคำนวณกับ UDF ตามประเภทข้อมูล จำเป็นต้องสามารถจัดเรียง UDF ตามประเภทข้อมูล ข้อมูลอื่น ๆ: ฉันกำลังมองหาการแสดงเป็นหลัก มีข้อมูลหลักสองสามล้านระเบียนที่สามารถแนบข้อมูล UDF ได้ เมื่อฉันตรวจสอบครั้งล่าสุดมีเร็กคอร์ด UDF มากกว่า 50mil ในฐานข้อมูลปัจจุบันของเรา ส่วนใหญ่แล้ว UDF จะแนบไปกับบันทึกหลักสองสามพันเท่านั้นไม่ใช่ทั้งหมด UDF ไม่ได้เข้าร่วมหรือใช้เป็นกุญแจ เป็นเพียงข้อมูลที่ใช้สำหรับการสืบค้นหรือรายงาน ตัวเลือก: สร้างตารางขนาดใหญ่ด้วย StringValue1, StringValue2 ... IntValue1, IntValue2, ... ฯลฯ ฉันเกลียดความคิดนี้ แต่จะพิจารณาถ้ามีใครสามารถบอกฉันได้ดีกว่าความคิดอื่น ๆ และทำไม สร้างตารางแบบไดนามิกซึ่งเพิ่มคอลัมน์ใหม่ตามต้องการ ฉันไม่ชอบความคิดนี้เนื่องจากฉันรู้สึกว่าประสิทธิภาพจะช้าถ้าคุณทำดัชนีทุกคอลัมน์ สร้างตารางเดียวที่มี UDFName, UDFDataType และ Value เมื่อเพิ่ม UDF …

8
วิธีการต่อคอลัมน์ใน Postgres SELECT ได้อย่างไร
ฉันมีสองคอลัมน์สตริงaและในตารางbfoo select a, b from fooค่าผลตอบแทนและa bอย่างไรก็ตามการต่อข้อมูลaและbไม่ทำงาน ฉันเหนื่อย : select a || b from foo และ select a||', '||b from foo อัปเดตจากความคิดเห็น: character(2)คอลัมน์เป็นประเภท

9
ฉันสามารถใช้คำสั่ง CASE ในเงื่อนไข JOIN ได้หรือไม่?
รูปภาพต่อไปนี้เป็นส่วนหนึ่งของ Microsoft SQL Server 2008 R2 System Views จากภาพที่เราจะเห็นว่าความสัมพันธ์ระหว่างsys.partitionsและขึ้นอยู่กับมูลค่าของsys.allocation_units sys.allocation_units.typeดังนั้นเพื่อรวมเข้าด้วยกันฉันจะเขียนสิ่งที่คล้ายกันนี้: SELECT * FROM sys.indexes i JOIN sys.partitions p ON i.index_id = p.index_id JOIN sys.allocation_units a ON CASE WHEN a.type IN (1, 3) THEN a.container_id = p.hobt_id WHEN a.type IN (2) THEN a.container_id = p.partition_id END แต่โค้ดด้านบนให้ข้อผิดพลาดทางไวยากรณ์ ฉันเดาว่าเป็นเพราะCASEคำสั่ง ใครก็ได้ช่วยอธิบายหน่อย เพิ่มข้อความแสดงข้อผิดพลาด: ข่าวสารเกี่ยวกับ …
145 sql  sql-server  join  case 

1
การจัดการประเภทรายการด้วย Esqueleto
ฉันมีชนิดข้อมูลที่กำหนดเป็น: data ComitteeView = CommitteeView { committeeId :: CommitteeId , committeeMembers :: [Person] } data CommitteesView = CommitteesView { committeeView :: [CommitteeView] } ตอนนี้มันมีอยู่ฉันมีรูปแบบถาวรที่กำหนดเป็น: Person name Text Committee name Text CommitteePerson personId PersonId committeeId CommitteeId ฉันสามารถสร้างแบบสอบถามได้อย่างง่ายดายเพื่อเติม CommitteeView โดยใช้ Esqueleto มันจะเป็นอะไรเช่นนี้: getCommitteeView cid = CommitteeView <$> runDB $ select $ from …
144 sql  list  haskell  esqueleto 

9
ส่งคืนค่าบูลีนบนคำสั่ง SQL Select
จะคืนค่าบูลีนได้อย่างไรในคำสั่ง SQL Select? ฉันลองรหัสนี้: SELECT CAST(1 AS BIT) AS Expr1 FROM [User] WHERE (UserID = 20070022) และจะส่งกลับเฉพาะTRUEถ้าUserIDมีอยู่บนโต๊ะ ฉันต้องการให้มันคืนFALSEหากUserIDไม่มีอยู่บนโต๊ะ
144 sql  select  boolean 

8
เป็นไปได้ที่จะทำการสืบค้นข้ามฐานข้อมูลด้วย PostgreSQL หรือไม่
ฉันจะเดาว่าคำตอบคือ "ไม่" ตามข้อความแสดงข้อผิดพลาดด้านล่าง (และผลลัพธ์ของ Google นี้ ) แต่มีอยู่แล้วเพื่อดำเนินการค้นหาข้ามฐานข้อมูลโดยใช้ PostgreSQL? databaseA=# select * from databaseB.public.someTableName; ERROR: cross-database references are not implemented: "databaseB.public.someTableName" ฉันกำลังทำงานกับข้อมูลบางส่วนที่แบ่งพาร์ติชันระหว่างสองฐานข้อมูลแม้ว่าข้อมูลจะถูกแชร์ระหว่างสองคอลัมน์ (คอลัมน์ผู้ใช้ในฐานข้อมูลหนึ่งมาจากusersตารางในฐานข้อมูลอื่น) ฉันไม่รู้ว่าทำไมเหล่านี้เป็นสองฐานข้อมูลแยกต่างหากแทนสคีมา แต่ c'est la vie ...
144 sql  postgresql 

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