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

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

21
เหตุผลที่ดีที่ไม่ใช้ฐานข้อมูลเชิงสัมพันธ์?
คุณช่วยชี้ไปที่เครื่องมือจัดเก็บข้อมูลทางเลือกและให้เหตุผลที่ดีในการใช้งานแทนที่จะใช้ฐานข้อมูลเชิงสัมพันธ์ที่เก่าหรือไม่? ในความคิดของฉันแอพพลิเคชั่นส่วนใหญ่ไม่ค่อยใช้ SQL อย่างเต็มประสิทธิภาพ - มันน่าสนใจที่จะเห็นวิธีการสร้างแอพพลิเคชั่นที่ไม่ใช้ SQL
139 sql  database  nosql 

30
ทำไมเราต้องการวัตถุเอนทิตี้ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ฉันต้องการเห็นการถกเถียงกันอย่างซื่อสัตย์และรอบคอบเกี่ยวกับข้อดีของกระบวนทัศน์การออกแบบแอปพลิเคชันองค์กรที่ยอมรับในปัจจุบัน ฉันไม่มั่นใจว่าควรมีวัตถุเอนทิตี โดยวัตถุเอนทิตี้ฉันหมายถึงสิ่งทั่วไปที่เรามักจะสร้างสำหรับแอปพลิเคชันของเราเช่น "บุคคล", "บัญชี", "สั่งซื้อ" ฯลฯ ปรัชญาการออกแบบปัจจุบันของฉันคือ: การเข้าถึงฐานข้อมูลทั้งหมดจะต้องสำเร็จผ่านขั้นตอนการจัดเก็บ เมื่อใดก็ตามที่คุณต้องการข้อมูลให้เรียกโพรซีเดอร์ที่เก็บไว้แล้ววนซ้ำ SqlDataReader หรือแถวใน DataTable (หมายเหตุ: ฉันได้สร้างแอพพลิเคชั่นระดับองค์กรด้วย Java EE, java folks โปรดแทนที่ค่าที่เท่าเทียมกันสำหรับตัวอย่าง. NET ของฉัน) ฉันไม่ต่อต้าน OO ฉันเขียนคลาสจำนวนมากเพื่อจุดประสงค์ที่แตกต่างกัน ฉันจะยอมรับว่าส่วนใหญ่ของชั้นเรียนที่ฉันเขียนเป็นชั้นเรียนผู้ช่วยคงที่ ฉันไม่ได้สร้างของเล่น ฉันกำลังพูดถึงแอพพลิเคชั่นธุรกรรมขนาดใหญ่และปริมาณสูงที่ติดตั้งในเครื่องหลายเครื่อง แอปพลิเคชั่นเว็บ, บริการ windows, บริการเว็บ, การโต้ตอบ b2b, คุณตั้งชื่อมัน ฉันใช้ OR Mappers แล้ว ฉันได้เขียนไม่กี่ ฉันใช้ Java …
139 sql  database  orm  entities 

9
TSQL Pivot โดยไม่มีฟังก์ชั่นรวม
ฉันมีโต๊ะแบบนี้ ... CustomerID DBColumnName Data -------------------------------------- 1 FirstName Joe 1 MiddleName S 1 LastName Smith 1 Date 12/12/2009 2 FirstName Sam 2 MiddleName S 2 LastName Freddrick 2 Date 1/12/2009 3 FirstName Jaime 3 MiddleName S 3 LastName Carol 3 Date 12/1/2009 และฉันต้องการสิ่งนี้ ... เป็นไปได้โดยใช้ PIVOT หรือไม่ CustomerID FirstName MiddleName …

9
ค่าที่เพิ่มขึ้นในแบบสอบถามการปรับปรุง mysql
ฉันทำรหัสนี้เพื่อแจก +1 แต้ม แต่มันไม่ทำงานอย่างถูกต้อง mysql_query(" UPDATE member_profile SET points= ' ".$points." ' + 1 WHERE user_id = '".$userid."' "); ตัวแปร $ points คือคะแนนของผู้ใช้ตอนนี้ .. ฉันต้องการให้มันบวกหนึ่งลงไป .. ยกตัวอย่างเช่นถ้าเขามี 5 คะแนนมันควรจะเป็น 5 + 1 = 6 .. แต่มันไม่เปลี่ยน ถึง 1 ฉันทำอะไรผิด ขอบคุณ
139 php  mysql  sql  sql-update 

18
ฉันสามารถป้องกันการฉีด SQL ด้วยการหลีกเลี่ยงการอ้างคำพูดเดียวและป้อนข้อมูลผู้ใช้โดยรอบด้วยคำพูดเดียว?
ฉันรู้ว่าการสืบค้น SQL แบบแปรผันเป็นวิธีที่ดีที่สุดในการฆ่าเชื้ออินพุตของผู้ใช้เมื่อสร้างเคียวรีที่มีการป้อนข้อมูลของผู้ใช้ แต่ฉันสงสัยว่าเกิดอะไรขึ้นกับการป้อนข้อมูลผู้ใช้และหลีกเลี่ยงคำพูดเดี่ยว ๆ นี่คือรหัส: sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'" เครื่องหมายคำพูดเดี่ยวใด ๆ ที่ผู้ใช้ป้อนจะถูกแทนที่ด้วยเครื่องหมายคำพูดเดี่ยวสองชั้นซึ่งจะช่วยลดความสามารถของผู้ใช้ในการวางสตริงดังนั้นสิ่งอื่น ๆ ที่พวกเขาอาจพิมพ์เช่นอัฒภาคเครื่องหมายเปอร์เซ็นต์และอื่น ๆ ทั้งหมดจะเป็นส่วนหนึ่งของสตริงและ ไม่ได้ดำเนินการจริง ๆ เป็นส่วนหนึ่งของคำสั่ง เรากำลังใช้ Microsoft SQL Server 2000 ซึ่งฉันเชื่อว่า single-quote เป็นตัวคั่นสตริงเท่านั้นและวิธีเดียวที่จะหลีกเลี่ยงตัวคั่นสตริงดังนั้นจึงไม่มีวิธีดำเนินการใด ๆ กับผู้ใช้ประเภทใด ๆ ฉันไม่เห็นวิธีใดที่จะเปิดการโจมตีด้วยการฉีด SQL เพื่อต่อต้านสิ่งนี้ แต่ฉันรู้ว่าถ้านี่เป็นกระสุนที่ดูเหมือนกับฉันคนอื่นจะคิดว่ามันแล้วและมันจะเป็นเรื่องธรรมดา เกิดอะไรขึ้นกับรหัสนี้ มีวิธีการโจมตี SQL injection ผ่านเทคนิคการฆ่าเชื้อนี้หรือไม่ ตัวอย่างอินพุตของผู้ใช้ที่ใช้ประโยชน์จากเทคนิคนี้จะเป็นประโยชน์ UPDATE: ฉันยังไม่รู้วิธีการเปิดใช้การโจมตี SQL injection …

26
สตริงการแยก T-SQL
ฉันมีคอลัมน์ SQL Server 2008 R2 ที่มีสตริงซึ่งฉันต้องแยกด้วยเครื่องหมายจุลภาค ฉันเห็นคำตอบมากมายเกี่ยวกับ StackOverflow แต่ไม่มีคำตอบใด ๆ ใน R2 ฉันแน่ใจว่าฉันได้เลือกการอนุญาตในตัวอย่างฟังก์ชันแยกใด ๆ ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก

18
แถวสุดท้ายของ SQL Server SELECT N
นี่เป็นคำถามที่ทราบ แต่วิธีแก้ปัญหาที่ดีที่สุดที่ฉันพบคือ: SELECT TOP N * FROM MyTable ORDER BY Id DESC ฉันมีตารางที่มีแถวจำนวนมาก ไม่ใช่ความเป็นไปได้ที่จะใช้คิวรีนั้นเนื่องจากใช้เวลานาน ดังนั้นฉันจะเลือกแถวสุดท้ายได้อย่างไรโดยไม่ต้องใช้ ORDER BY แก้ไข ขออภัยคำถามซ้ำซ้อนกับคำถามนี้

3
ล็อกการยกระดับ - เกิดอะไรขึ้นที่นี่
ในขณะที่แก้ไขตาราง (ลบคอลัมน์) ใน SQL Server 2008 ฉันคลิกปุ่มสร้างสคริปต์การเปลี่ยนแปลงและฉันสังเกตเห็นว่าสคริปต์การเปลี่ยนแปลงที่สร้างขึ้นจะลดลงในคอลัมน์กล่าวว่า "ไป" จากนั้นเรียกใช้คำสั่ง ALTER TABLE เพิ่มเติมที่ดูเหมือนจะตั้งค่า การเลื่อนระดับการล็อกสำหรับตารางเป็น "TABLE" ตัวอย่าง: ALTER TABLE dbo.Contract SET (LOCK_ESCALATION = TABLE) ฉันควรสังเกตด้วยว่านี่เป็นสิ่งสุดท้ายที่สคริปต์การเปลี่ยนแปลงกำลังทำอยู่ มันทำอะไรที่นี่และทำไมจึงตั้งค่า LOCK_ESCALATION เป็น TABLE

6
ฉันจะสร้างตาราง SQL ภายใต้สคีมาอื่นได้อย่างไร
นี่มาจาก SQL Server 2008, ssms เมื่อฉันสร้างตารางมันจะสร้างภายใต้ dbo ฉันต้องการสร้างภายใต้สคีมาอื่น แต่เมื่อฉันใช้กล่องโต้ตอบ "ตารางใหม่" ฉันไม่พบช่องที่จะระบุสิ่งนี้


19
เราสามารถส่งผ่านพารามิเตอร์ไปยังมุมมองใน SQL ได้หรือไม่?
เราสามารถส่งพารามิเตอร์ไปยังมุมมองใน Microsoft SQL Server ได้หรือไม่ ฉันพยายามcreate viewทำตามวิธีต่อไปนี้ แต่ไม่ได้ผล: create or replace view v_emp(eno number) as select * from emp where emp_id=&eno;

3
ดัชนีของ SQL Server - น้อยไปหามากหรือจากมากไปหาน้อย
เมื่อคุณสร้างดัชนีในคอลัมน์หรือจำนวนคอลัมน์ใน MS SQL Server (ฉันใช้รุ่น 2005) คุณสามารถระบุว่าดัชนีในแต่ละคอลัมน์นั้นขึ้นหรือลง ฉันมีความเข้าใจยากว่าทำไมตัวเลือกนี้ถึงที่นี่ การใช้เทคนิคการเรียงลำดับแบบไบนารีการค้นหาจะไม่รวดเร็วเหมือนกันใช่มั้ย ฉันต้องเลือกลำดับใด

19
SQLite ใน Android วิธีอัปเดตแถวเฉพาะ
ฉันพยายามอัปเดตแถวที่ระบุมาระยะหนึ่งแล้วและดูเหมือนว่ามีสองวิธีในการทำเช่นนี้ จากสิ่งที่ฉันอ่านและลองคุณสามารถใช้: execSQL(String sql) วิธี หรือ: update(String table, ContentValues values, String whereClause, String[] whereArgs) วิธี. (แจ้งให้เราทราบหากนี่ไม่ถูกต้องเนื่องจากฉันใหม่สำหรับ Android และใหม่มากสำหรับ SQL) ขอผมใช้รหัสจริงนะ myDB.update(TableName, "(Field1, Field2, Field3)" + " VALUES ('Bob', 19, 'Male')", "where _id = 1", null); ฉันพยายามทำสิ่งนี้ให้สำเร็จ: อัปเดต Field1, Field2 และ Field3 โดยที่คีย์หลัก (_id) เท่ากับ 1 Eclipse ให้เส้นสีแดงแก่ฉันใต้คำว่า "update" และให้คำอธิบายนี้กับฉัน: การปรับปรุงวิธีการ …
138 java  android  sql  eclipse  sqlite 

5
ใช้ฟังก์ชันการเพจ (ข้าม / รับ) กับแบบสอบถามนี้
ฉันได้รับการพยายามที่จะเข้าใจเล็กน้อยเกี่ยวกับวิธีการใช้เพจจิ้งที่กำหนดเองใน SQL เช่นการอ่านบทความเช่นนี้ ฉันมีคำถามต่อไปนี้ซึ่งทำงานได้อย่างสมบูรณ์ แต่ฉันต้องการใช้การเพจกับสิ่งนี้ SELECT TOP x PostId FROM ( SELECT PostId, MAX (Datemade) as LastDate from dbForumEntry group by PostId ) SubQueryAlias order by LastDate desc ฉันต้องการอะไร ฉันมีฟอรั่มโพสต์พร้อมรายการที่เกี่ยวข้อง ฉันต้องการรับโพสต์ด้วยรายการที่เพิ่มล่าสุดดังนั้นฉันสามารถเลือกโพสต์ที่ถกเถียงกันล่าสุด ตอนนี้ฉันต้องการที่จะได้รับ "10 ถึง 20 โพสต์ล่าสุดที่ใช้งานล่าสุด" แทน "top 10" ฉันลองทำอะไร ฉันพยายามใช้ฟังก์ชัน ROW เป็นหนึ่งในบทความ แต่จริงๆแล้วไม่มีโชค มีแนวคิดใดบ้างที่จะนำไปใช้

14
กำหนดตัวแปรที่จะใช้กับตัวดำเนินการ IN (T-SQL)
ฉันมีคิวรี Transact-SQL ที่ใช้ตัวดำเนินการ IN บางสิ่งเช่นนี้ select * from myTable where myColumn in (1,2,3,4) มีวิธีกำหนดตัวแปรเพื่อเก็บรายการทั้งหมด "(1,2,3,4)" หรือไม่? ฉันควรกำหนดมันอย่างไร declare @myList {data type} set @myList = (1,2,3,4) select * from myTable where myColumn in @myList
138 sql  tsql 

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