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

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

10
สร้าง PostgreSQL ROLE (ผู้ใช้) หากไม่มีอยู่
ฉันจะเขียนสคริปต์ SQL เพื่อสร้าง ROLE ใน PostgreSQL 9.1 ได้อย่างไร แต่จะไม่เกิดข้อผิดพลาดหากมีอยู่แล้ว สคริปต์ปัจจุบันมี: CREATE ROLE my_user LOGIN PASSWORD 'my_password'; สิ่งนี้จะล้มเหลวหากมีผู้ใช้อยู่แล้ว ฉันต้องการสิ่งที่ต้องการ: IF NOT EXISTS (SELECT * FROM pg_user WHERE username = 'my_user') BEGIN CREATE ROLE my_user LOGIN PASSWORD 'my_password'; END; ... แต่ไม่ได้ผล - IFดูเหมือนจะไม่รองรับใน SQL ธรรมดา ฉันมีไฟล์แบตช์ที่สร้างฐานข้อมูล PostgreSQL 9.1 บทบาทและสิ่งอื่น ๆ อีกสองสามอย่าง เรียกว่า …


6
SQL จัดกลุ่มตามคำสั่งโดย
ฉันมีตารางแท็กและต้องการรับแท็กที่มีจำนวนสูงสุดจากรายการ ตัวอย่างข้อมูลมีลักษณะดังนี้ id (1) tag ('night') id (2) tag ('awesome') id (3) tag ('night') การใช้ SELECT COUNT(*), `Tag` from `images-tags` GROUP BY `Tag` ทำให้ฉันได้รับข้อมูลที่ต้องการกลับคืนมาอย่างสมบูรณ์แบบ อย่างไรก็ตามฉันต้องการจัดระเบียบเพื่อให้จำนวนแท็กสูงสุดเป็นอันดับแรกและ จำกัด ให้ส่งได้เพียง 20 อันดับแรกเท่านั้น ฉันลองสิ่งนี้ ... SELECT COUNT(id), `Tag` from `images-tags` GROUP BY `Tag` ORDER BY COUNT(id) DESC LIMIT 20 และฉันได้รับข้อความ "การใช้ฟังก์ชันกลุ่มไม่ถูกต้อง - ErrNr 1111" …

9
ค้นหาค่าที่พบบ่อยที่สุดในคอลัมน์ SQL
ฉันจะค้นหาค่าที่พบบ่อยที่สุดในคอลัมน์ที่ระบุในตาราง SQL ได้อย่างไร ตัวอย่างเช่นสำหรับตารางนี้ควรส่งคืนtwoเนื่องจากเป็นค่าที่พบบ่อยที่สุด: one two two three
122 mysql  sql 

10
ฐานข้อมูลและการเขียนโปรแกรมเชิงฟังก์ชันมีความขัดแย้งกันหรือไม่?
ฉันเป็นนักพัฒนาเว็บมาระยะหนึ่งแล้วและเพิ่งเริ่มเรียนรู้การเขียนโปรแกรมเชิงฟังก์ชันบางอย่าง เช่นเดียวกับคนอื่น ๆ ฉันมีปัญหาสำคัญบางประการในการนำแนวคิดเหล่านี้ไปใช้กับงานวิชาชีพของฉัน สำหรับฉันเหตุผลหลักคือฉันเห็นความขัดแย้งระหว่างเป้าหมายของ FP ในเรื่องการไร้สัญชาติที่เหลืออยู่นั้นค่อนข้างขัดแย้งกับความจริงที่ว่างานพัฒนาเว็บส่วนใหญ่ที่ฉันทำนั้นมีความเชื่อมโยงกับฐานข้อมูลอย่างมากซึ่งมีข้อมูลเป็นศูนย์กลาง สิ่งหนึ่งที่ทำให้ฉันเป็นนักพัฒนาที่มีประสิทธิผลมากขึ้นในด้าน OOP คือการค้นพบตัวทำแผนที่เชิงสัมพันธ์เชิงวัตถุเช่น MyGeneration d00dads สำหรับ. Net, Class :: DBI สำหรับ perl, ActiveRecord สำหรับทับทิม ฯลฯ สิ่งนี้ทำให้ฉันต้องอยู่ห่าง ๆ จากการเขียนแทรกและเลือกคำสั่งทั้งวันและมุ่งเน้นไปที่การทำงานกับข้อมูลได้อย่างง่ายดายเหมือนวัตถุ แน่นอนว่าฉันยังคงสามารถเขียนแบบสอบถาม SQL ได้เมื่อจำเป็นต้องใช้พลังงาน แต่อย่างอื่นมันก็เป็นนามธรรมเบื้องหลังอย่างดี ตอนนี้เปลี่ยนไปใช้การเขียนโปรแกรมเชิงฟังก์ชันดูเหมือนว่าสำหรับเฟรมเวิร์กเว็บ FP จำนวนมากเช่นลิงค์ต้องการการเขียนโค้ด SQL แบบสำเร็จรูปจำนวนมากดังในตัวอย่างนี้ Weblocks ดูเหมือนจะดีกว่าเล็กน้อย แต่ดูเหมือนว่าจะใช้แบบจำลอง OOP สำหรับการทำงานกับข้อมูลและยังต้องใช้โค้ดในการเขียนด้วยตนเองสำหรับแต่ละตารางในฐานข้อมูลของคุณดังตัวอย่างนี้ ฉันคิดว่าคุณใช้การสร้างโค้ดบางอย่างเพื่อเขียนฟังก์ชันการทำแผนที่เหล่านี้ แต่ดูเหมือนจะไม่เหมือนเสียงกระเพื่อม (หมายเหตุฉันไม่ได้ดู Weblocks หรือ Links อย่างใกล้ชิดมากนักฉันอาจเข้าใจผิดว่าใช้อย่างไร) ดังนั้นคำถามคือสำหรับส่วนการเข้าถึงฐานข้อมูล (ซึ่งฉันเชื่อว่ามีขนาดใหญ่พอสมควร) ของเว็บแอปพลิเคชันหรือการพัฒนาอื่น ๆ …

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

17
หลักการตั้งชื่อของคุณสำหรับขั้นตอนการจัดเก็บคืออะไร? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันได้เห็นกฎต่างๆสำหรับการตั้งชื่อกระบวนงานที่เก็บไว้ บางคนนำหน้าชื่อ sproc ด้วย usp_ คนอื่น ๆ ใช้ตัวย่อของชื่อแอปและคนอื่น ๆ ยังมีชื่อเจ้าของ คุณไม่ควรใช้ sp_ ใน SQL Server เว้นแต่คุณจะตั้งใจจริง บางคนเริ่มต้นชื่อ proc ด้วยคำกริยา (Get, Add, Save, Remove) อื่น ๆ เน้นชื่อเอนทิตี ในฐานข้อมูลที่มี sprocs หลายร้อย sprocs อาจเป็นเรื่องยากมากที่จะเลื่อนดูและค้นหา sproc ที่เหมาะสมเมื่อคุณคิดว่ามีอยู่แล้ว รูปแบบการตั้งชื่อสามารถทำให้การค้นหา sproc ง่ายขึ้น คุณใช้หลักการตั้งชื่อหรือไม่? โปรดอธิบายและอธิบายเหตุผลที่คุณชอบมากกว่าตัวเลือกอื่น ๆ สรุปคำตอบ: ดูเหมือนว่าทุกคนจะสนับสนุนความสอดคล้องของการตั้งชื่อซึ่งอาจสำคัญกว่าที่ทุกคนจะต้องใช้รูปแบบการตั้งชื่อแบบเดียวกันมากกว่าที่จะใช้ คำนำหน้า: …

10
PreparedStatement จะหลีกเลี่ยงหรือป้องกันการแทรก SQL ได้อย่างไร
ฉันรู้ว่า PreparedStatements หลีกเลี่ยง / ป้องกัน SQL Injection มันทำได้อย่างไร? แบบสอบถามฟอร์มสุดท้ายที่สร้างโดยใช้ PreparedStatements จะเป็นสตริงหรืออย่างอื่น?

1
postgresql ไวยากรณ์คีย์ต่างประเทศ
ฉันมี 2 ตารางดังที่คุณจะเห็นในรหัส posgresql ด้านล่าง นักเรียนในตารางแรกมี 2 คอลัมน์คอลัมน์หนึ่งสำหรับ student_name และ student_id อื่น ๆ ซึ่งเป็นคีย์หลัก ในตารางที่สองของฉันเรียกว่าการทดสอบมี 4 คอลัมน์คอลัมน์หนึ่งสำหรับ subject_id หนึ่งคอลัมน์สำหรับชื่อเรื่องและอีกคอลัมน์สำหรับนักเรียนที่มีคะแนนสูงสุดในวิชาที่สูงที่สุดนักเรียน_id ฉันกำลังพยายามทำให้ maximumStudent_id อ้างถึง student_id ในตารางนักเรียนของฉัน นี่คือรหัสที่ฉันมีด้านล่างฉันไม่แน่ใจว่าไวยากรณ์ถูกต้องหรือไม่: CREATE TABLE students ( student_id SERIAL PRIMARY KEY, player_name TEXT); CREATE TABLE tests ( subject_id SERIAL, subject_name, highestStudent_id SERIAL REFERENCES students); ไวยากรณ์highestStudent_id SERIAL REFERENCES studentsถูกต้องหรือไม่ …

15
ฉันจะค้นหาข้อ จำกัด ของคีย์ต่างประเทศที่อ้างอิงตารางใน SQL Server ได้อย่างไร
ฉันพยายามวางโต๊ะ แต่ได้รับข้อความต่อไปนี้: ข่าวสารเกี่ยวกับ 3726 ระดับ 16 สถานะ 1 บรรทัดที่ 3 ไม่สามารถวางออบเจ็กต์ 'dbo.UserProfile' ได้เนื่องจากถูกอ้างอิงโดยข้อ จำกัด ของคีย์ต่างประเทศ ข่าวสารเกี่ยวกับ 2714 ระดับ 16 สถานะ 6 บรรทัดที่ 2 มีออบเจ็กต์ชื่อ 'UserProfile' อยู่ในฐานข้อมูลแล้ว ฉันมองไปรอบ ๆ ด้วย SQL Server Management Studio แต่ฉันไม่พบข้อ จำกัด ฉันจะค้นหาข้อ จำกัด ของคีย์ต่างประเทศได้อย่างไร

8
เพิ่มคอลัมน์ลงในตารางที่มีอยู่และหมายเลขเฉพาะบน MS SQL Server
ฉันต้องการเพิ่มคอลัมน์ลงในฐานข้อมูลเดิมที่มีอยู่และเขียนโพรซีเดอร์ที่ฉันสามารถกำหนดค่าแต่ละระเบียนให้แตกต่างกัน บางอย่างเช่นการเพิ่มคอลัมน์และสร้างข้อมูลโดยอัตโนมัติ เช่นถ้าฉันเพิ่มคอลัมน์ใหม่ชื่อ "ID" (ตัวเลข) ฉันต้องการเริ่มต้นค่าที่ไม่ซ้ำกันให้กับแต่ละระเบียน ดังนั้นฉัน ID คอลัมน์1 to 1000จะมีบันทึกจากการพูด ฉันจะทำอย่างไร?
121 sql  sql-server 

6
ลำดับของคำสั่งที่มีความสำคัญใน SQL หรือไม่
สมมติว่าฉันมีตารางที่เรียกว่าPEOPLEมี 3 คอลัมน์ID, LastName, FirstNameไม่มีคอลัมน์ใดที่ถูกจัดทำดัชนี LastNameมีเอกลักษณ์มากขึ้นและFirstNameมีเอกลักษณ์น้อยกว่า หากฉันทำการค้นหา 2 ครั้ง: select * from PEOPLE where FirstName="F" and LastName="L" select * from PEOPLE where LastName="L" and FirstName="F" ความเชื่อของฉันคือข้อที่สองเร็วกว่าเนื่องจากเกณฑ์ที่ไม่ซ้ำกันมากขึ้น ( LastName) มาก่อนในwhereประโยคและบันทึกจะถูกกำจัดอย่างมีประสิทธิภาพมากขึ้น ฉันไม่คิดว่าเครื่องมือเพิ่มประสิทธิภาพจะฉลาดพอที่จะเพิ่มประสิทธิภาพ sql แรก ความเข้าใจของฉันถูกต้องหรือไม่?

27
MySQL แทรกที่แบบสอบถาม
เกิดอะไรขึ้นกับข้อความค้นหานี้: INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1; มันทำงานได้โดยไม่มีWHEREข้อ ดูเหมือนจะลืม SQL ไปแล้ว ..
121 sql  mysql 

5
คุณสามารถใช้นามแฝงใน WHERE clause ใน mysql ได้หรือไม่?
ฉันจำเป็นต้องใช้นามแฝงในคำสั่ง WHERE แต่มันยังคงบอกฉันว่ามันเป็นคอลัมน์ที่ไม่รู้จัก มีวิธีใดในการแก้ไขปัญหานี้หรือไม่? ฉันต้องการเลือกระเบียนที่มีคะแนนสูงกว่า x การจัดอันดับคำนวณจากนามแฝงต่อไปนี้: sum(reviews.rev_rating)/count(reviews.rev_id) as avg_rating

7
ฉันต้องสร้างดัชนีบนคีย์ต่างประเทศบน Oracle หรือไม่
ผมมีตารางและตาราง A มีคีย์ต่างประเทศกับในคีย์หลัก 's,BABBB_ID ด้วยเหตุผลบางอย่าง (ฉันรู้ว่ามีเหตุผลที่ถูกต้อง) มันไม่ได้ใช้ดัชนีเมื่อฉันเข้าร่วมสองตารางนี้กับคีย์ ฉันจำเป็นต้องสร้างดัชนีแยกต่างหากA.B_IDหรือการมีอยู่ของคีย์ต่างประเทศให้ข้อมูลนั้น?
121 sql  oracle  indexing 

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