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

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

7
เลือก SQL Server เป็น @variable หรือไม่
ฉันมีรหัสต่อไปนี้ในหนึ่งใน Sql ของฉัน (2008) Procs ที่เก็บไว้ซึ่งดำเนินการได้อย่างสมบูรณ์แบบ: CREATE PROCEDURE [dbo].[Item_AddItem] @CustomerId uniqueidentifier, @Description nvarchar(100), @Type int, @Username nvarchar(100), AS BEGIN DECLARE @TopRelatedItemId uniqueidentifier; SET @TopRelatedItemId = ( SELECT top(1) RelatedItemId FROM RelatedItems WHERE CustomerId = @CustomerId ) DECLARE @TempItem TABLE ( ItemId uniqueidentifier, CustomerId uniqueidentifier, Description nvarchar(100), Type int, Username nvarchar(100), …

14
ข้อผิดพลาดสตริงหรือข้อมูลไบนารีจะถูกตัดทอนเมื่อพยายามแทรก
ฉันกำลังเรียกใช้ไฟล์ data.bat ด้วยบรรทัดต่อไปนี้: Rem Tis batch file will populate tables cd\program files\Microsoft SQL Server\MSSQL osql -U sa -P Password -d MyBusiness -i c:\data.sql เนื้อหาของไฟล์ data.sql คือ: insert Customers (CustomerID, CompanyName, Phone) Values('101','Southwinds','19126602729') มีอีก 8 บรรทัดที่คล้ายกันสำหรับการเพิ่มบันทึก เมื่อฉันทำงานนี้ด้วยstart> run> cmd> c:\data.batฉันได้รับข้อความแสดงข้อผิดพลาดนี้: 1>2>3>4>5>....<1 row affected> Msg 8152, Level 16, State 4, Server SP1001, …
250 sql  sql-server 

7
Postgresql GROUP_CONCAT เทียบเท่าหรือไม่
ฉันมีตารางและฉันต้องการดึงหนึ่งแถวต่อหนึ่ง id ด้วยค่าเขตข้อมูลที่ต่อกัน ตัวอย่างเช่นในตารางของฉันฉันมีสิ่งนี้: TM67 | 4 | 32556 TM67 | 9 | 98200 TM67 | 72 | 22300 TM99 | 2 | 23009 TM99 | 3 | 11200 และฉันต้องการที่จะส่งออก: TM67 | 4,9,72 | 32556,98200,22300 TM99 | 2,3 | 23009,11200 ใน MySQL ฉันสามารถใช้ฟังก์ชันการรวมGROUP_CONCATแต่ดูเหมือนจะไม่ทำงานที่นี่ ... มี PostgreSQL ที่เท่ากันหรือวิธีอื่นในการทำสิ่งนี้

4
คีย์ SQL, MUL เทียบกับ PRI กับ UNI
ความแตกต่างระหว่างคืออะไรMUL, PRIและUNIใน MySQL? ฉันทำงานกับแบบสอบถาม MySQL โดยใช้คำสั่ง: desc mytable; หนึ่งในเขตที่มีการแสดงให้เห็นว่าเป็นMULกุญแจสำคัญคนอื่น ๆ แสดงเป็นหรือUNIPRI ฉันรู้ว่าถ้าคีย์คือPRIเพียงหนึ่งระเบียนต่อตารางสามารถเชื่อมโยงกับคีย์นั้น หากมีกุญแจMULนั่นหมายความว่าอาจมีระเบียนที่เกี่ยวข้องมากกว่าหนึ่งรายการหรือไม่ mytableนี่คือการตอบสนองของ +-----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------+------+-----+---------+-------+ | courseid | int(11) | YES | MUL | NULL | | | dept | char(3) | YES | | NULL …
248 mysql  sql  key 

7
ที่ไหนที่มี
ทำไมคุณต้องวางคอลัมน์ที่คุณสร้างเอง (เช่นselect 1 as "number") หลังHAVINGและไม่WHEREอยู่ใน MySQL? และมีข้อเสียใด ๆ แทนการทำWHERE 1(เขียนคำจำกัดความทั้งหมดแทนชื่อคอลัมน์)?

7
คอลัมน์ตารางที่มี Foreign Key เป็นโมฆะได้หรือไม่
ฉันมีตารางที่มีหลายคอลัมน์ ID ไปยังตารางอื่น ๆ ฉันต้องการคีย์ต่างประเทศเพื่อบังคับใช้ความสมบูรณ์ก็ต่อเมื่อฉันใส่ข้อมูลลงในนั้น หากฉันทำการอัปเดตในภายหลังเพื่อเติมข้อมูลคอลัมน์นั้นควรตรวจสอบข้อ จำกัด ด้วย (นี่อาจขึ้นอยู่กับเซิร์ฟเวอร์ฐานข้อมูลฉันใช้ประเภทตาราง MySQL & InnoDB) ฉันเชื่อว่านี่เป็นความคาดหวังที่สมเหตุสมผล แต่โปรดแก้ไขฉันหากฉันผิด

19
ต้องการแสดงรายการทริกเกอร์ทั้งหมดในฐานข้อมูล SQL Server พร้อมชื่อตารางและสคีมาของตาราง
ฉันต้องการแสดงรายการทริกเกอร์ทั้งหมดในฐานข้อมูล SQL Server พร้อมชื่อตารางและสคีมาของตาราง ฉันเกือบจะมีสิ่งนี้: SELECT trigger_name = name, trigger_owner = USER_NAME(uid),table_schema = , table_name = OBJECT_NAME(parent_obj), isupdate = OBJECTPROPERTY( id, 'ExecIsUpdateTrigger'), isdelete = OBJECTPROPERTY( id, 'ExecIsDeleteTrigger'), isinsert = OBJECTPROPERTY( id, 'ExecIsInsertTrigger'), isafter = OBJECTPROPERTY( id, 'ExecIsAfterTrigger'), isinsteadof = OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger'), [disabled] = OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') FROM sysobjects INNER JOIN …

13
ใช้ ORM หรือ SQL ธรรมดา? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ สำหรับแอพบางตัวที่ฉันพัฒนาขึ้นมา (จากนั้นก็ลืมไปเรื่อย ๆ ) ฉันเขียน SQL ธรรมดา ๆ สำหรับ MySQL เป็นหลัก แม้ว่าฉันจะใช้ ORMs ในไพ ธ อนเช่นSQLAlchemyแต่ฉันไม่ได้ติดกับมันนานนัก โดยปกติแล้วเป็นทั้งเอกสารหรือความซับซ้อน (จากมุมมองของฉัน) ถือฉันกลับมา ฉันเห็นว่ามันเป็นเช่นนี้: ใช้ ORM เพื่อความสะดวกในการพกพา, SQL ธรรมดา ๆ ถ้ามันจะใช้ฐานข้อมูลประเภทเดียว ฉันกำลังมองหาคำแนะนำเกี่ยวกับเวลาที่จะใช้ ORM หรือ SQL เมื่อพัฒนาแอพที่ต้องการการสนับสนุนฐานข้อมูล เมื่อนึกถึงมันจะเป็นการดีกว่าถ้าคุณใช้ wrapper ที่มีน้ำหนักเบาเพื่อจัดการกับความไม่สอดคล้องของฐานข้อมูลกับการใช้ ORM

14
MySQL ปรับตารางทั้งหมดได้หรือไม่
MySQL มีคำสั่งOPTIMIZE TABLEซึ่งสามารถใช้เพื่อเรียกคืนพื้นที่ที่ไม่ได้ใช้ในการติดตั้ง MySQL มีวิธี (คำสั่งในตัวหรือขั้นตอนการจัดเก็บทั่วไป) เพื่อเรียกใช้การเพิ่มประสิทธิภาพนี้สำหรับทุกตารางในฐานข้อมูลและ / หรือการติดตั้งเซิร์ฟเวอร์หรือเป็นสิ่งที่คุณต้องสคริปต์ด้วยตัวเอง?
245 mysql  sql 


12
ค่า NULL ภายใน NOT IN clause
ปัญหานี้ขึ้นมาเมื่อฉันได้นับระเบียนที่แตกต่างกันสำหรับสิ่งที่ฉันคิดว่าเป็นคำสั่งที่เหมือนหนึ่งใช้not in whereข้อ จำกัด left joinและอื่น ตารางในnot inข้อ จำกัด มีค่า Null หนึ่งค่า (ข้อมูลไม่ถูกต้อง) ซึ่งทำให้เคียวรีนั้นส่งคืนจำนวน 0 เรคคอร์ด ฉันเข้าใจว่าทำไม แต่ฉันสามารถใช้ความช่วยเหลือบางอย่างเพื่อให้เข้าใจแนวคิดได้อย่างสมบูรณ์ หากต้องการระบุอย่างง่ายเหตุใดแบบสอบถาม A ถึงส่งคืนผลลัพธ์ แต่ B ไม่ได้ A: select 'true' where 3 in (1, 2, 3, null) B: select 'true' where 3 not in (1, 2, null) สิ่งนี้อยู่บน SQL Server 2005 ฉันยังพบว่าการโทรset ansi_nulls …
245 sql  sql-server  tsql  null  notin 

3
ฉันจะตีความความแม่นยำและมาตราส่วนของตัวเลขในฐานข้อมูลได้อย่างไร
ฉันมีคอลัมน์ต่อไปนี้ระบุไว้ในฐานข้อมูล: ฐานสิบ (5,2) คนเราตีความสิ่งนี้ได้อย่างไร ตามคุณสมบัติในคอลัมน์ตามที่ดูในสตูดิโอการจัดการเซิร์ฟเวอร์ SQL ฉันจะเห็นว่ามันหมายถึง: ทศนิยม (ความแม่นยำเป็นตัวเลขขนาดสเกลตัวเลข) ความแม่นยำและสเกลหมายถึงอะไรในแง่ของจริง มันจะง่ายต่อการตีความนี้เป็นทศนิยมที่มี 5 หลักและสองตำแหน่งทศนิยม ... เช่น 12345.12 ป.ล. ฉันสามารถระบุคำตอบที่ถูกต้องจากเพื่อนร่วมงานได้ แต่มีปัญหาในการหาคำตอบออนไลน์ เช่นนี้ฉันต้องการมีคำถามและคำตอบเอกสารที่นี่ใน stackoverflow สำหรับการอ้างอิงในอนาคต


11
ฉันจะสร้าง foreign key ใน SQL Server ได้อย่างไร
ฉันไม่เคยมีรหัสการสร้างออบเจ็กต์แบบ "เข้ารหัสด้วยมือ" สำหรับ SQL Server และการถอดรหัสคีย์ต่างประเทศดูเหมือนจะแตกต่างกันระหว่าง SQL Server และ Postgres นี่คือ sql ของฉันจนถึงตอนนี้: drop table exams; drop table question_bank; drop table anwser_bank; create table exams ( exam_id uniqueidentifier primary key, exam_name varchar(50), ); create table question_bank ( question_id uniqueidentifier primary key, question_exam_id uniqueidentifier not null, question_text varchar(1024) not null, question_point_value …
243 sql  sql-server  tsql 

8
ฉันจะเพิ่มคอลัมน์ในฐานข้อมูล Postgresql ที่ไม่อนุญาตให้มีค่าว่างได้อย่างไร
ฉันเพิ่มคอลัมน์ "ไม่เป็นโมฆะ" ใหม่ลงในฐานข้อมูล Postgresql ของฉันโดยใช้แบบสอบถามต่อไปนี้ (ฆ่าเชื้อสำหรับอินเทอร์เน็ต): ALTER TABLE mytable ADD COLUMN mycolumn character varying(50) NOT NULL; ทุกครั้งที่ฉันเรียกใช้แบบสอบถามนี้ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: ERROR: column "mycolumn" contains null values ฉันนิ่งงัน ฉันจะไปไหนผิด หมายเหตุ: ฉันใช้ pgAdmin III (1.8.4) เป็นหลัก แต่ฉันได้รับข้อผิดพลาดเดียวกันเมื่อฉันรัน SQL จากภายในเทอร์มินัล

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