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

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

7
จะต้องปรากฏในข้อ GROUP BY หรือจะใช้ในฟังก์ชั่นรวม
ฉันมีตารางที่ดูเหมือนผู้โทรรายนี้ 'makerar' cname | wmname | avg --------+-------------+------------------------ canada | zoro | 2.0000000000000000 spain | luffy | 1.00000000000000000000 spain | usopp | 5.0000000000000000 และฉันต้องการเลือกเฉลี่ยสูงสุดสำหรับแต่ละชื่อ SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname; แต่ฉันจะได้รับข้อผิดพลาด ERROR: column "makerar.wmname" must appear in the GROUP BY clause or be used in an aggregate …

30
ข้อดีและข้อเสียของการรักษา SQL ไว้ใน Procs ที่จัดเก็บกับรหัส [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ อะไรคือข้อดี / ข้อเสียของการเก็บ SQL ไว้ในซอร์สโค้ด C # ของคุณหรือในโพรบ Procs ฉันได้คุยเรื่องนี้กับเพื่อนในโครงการโอเพนซอร์สที่เรากำลังดำเนินการอยู่ (ฟอรัม C # ASP.NET) ในขณะนี้การเข้าถึงฐานข้อมูลส่วนใหญ่ทำได้โดยการสร้าง SQL แบบอินไลน์ใน C # และเรียกไปยัง SQL Server DB ดังนั้นฉันจึงพยายามกำหนดว่าโครงการไหนดีที่สุดสำหรับโครงการนี้ จนถึงตอนนี้ฉันมี: ข้อดีสำหรับในรหัส: บำรุงรักษาง่ายขึ้น - ไม่จำเป็นต้องเรียกใช้สคริปต์ SQL เพื่ออัปเดตคิวรี ง่ายต่อการย้ายไปยังฐานข้อมูลอื่น - ไม่มีโปรแกรมไปยังพอร์ต ข้อดีสำหรับ Procs ที่เก็บไว้: ประสิทธิภาพ ความปลอดภัย

10
MySQL ชอบ () ใช่ไหม
ข้อความค้นหาปัจจุบันของฉันดูเหมือนว่า: SELECT * FROM fiberbox f WHERE f.fiberBox LIKE '%1740 %' OR f.fiberBox LIKE '%1938 %' OR f.fiberBox LIKE '%1940 %' ฉันได้มองไปรอบ ๆ และไม่พบสิ่งใดที่คล้ายกับ LIKE IN () - ฉันจินตนาการว่ามันทำงานได้เช่นนี้: SELECT * FROM fiberbox f WHERE f.fiberbox LIKE IN('%140 %', '%1938 %', '%1940 %') ความคิดใด ๆ ฉันแค่คิดถึงปัญหาในทางที่ผิด - บางคำสั่งคลุมเครือฉันไม่เคยเห็น MySQL 5.0.77-community-log
273 sql  mysql 


15
มีอะไรเร็วกว่าเลือก DISTINCT หรือ GROUP BY ใน MySQL?
ถ้าฉันมีตาราง CREATE TABLE users ( id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL, profession varchar(255) NOT NULL, employer varchar(255) NOT NULL, PRIMARY KEY (id) ) และฉันต้องการได้รับค่าของprofessionฟิลด์ที่ไม่ซ้ำกันทั้งหมดสิ่งที่จะเร็วขึ้น (หรือแนะนำ): SELECT DISTINCT u.profession FROM users u หรือ SELECT u.profession FROM users u GROUP BY u.profession ?

8
จะเก็บค่าทศนิยมใน SQL Server ได้อย่างไร?
ฉันพยายามหาชนิดข้อมูลทศนิยมของคอลัมน์ใน SQL Server ฉันต้องสามารถเก็บค่าเช่น 15.5, 26.9, 24.7, 9.8 ฯลฯ ฉันกำหนดdecimal(18, 0)ให้กับชนิดข้อมูลคอลัมน์ แต่สิ่งนี้ไม่อนุญาตให้ฉันเก็บค่าเหล่านี้ วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร?
272 sql  sql-server  types  decimal 


15
วิธีการสร้างแบบสอบถามแบบเรียกซ้ำ MySQL ลำดับชั้น
ฉันมีตาราง MySQL ซึ่งเป็นดังนี้: id | name | parent_id 19 | category1 | 0 20 | category2 | 19 21 | category3 | 20 22 | category4 | 21 ...... ตอนนี้ฉันต้องการมีแบบสอบถาม MySQL เดียวที่ฉันเพียงแค่ใส่รหัส [ตัวอย่างเช่นพูดว่า 'id = 19'] จากนั้นฉันควรจะได้รับรหัสลูกทั้งหมดของมัน ... นอกจากนี้ลำดับชั้นของเด็ก ๆ ยังไม่เป็นที่ทราบว่าสามารถเปลี่ยนแปลงได้ นอกจากนี้ฉันมีวิธีการใช้สำหรับวนลูป ..... ให้ฉันรู้วิธีการบรรลุเดียวกันโดยใช้แบบสอบถาม MySQL เดียวถ้าเป็นไปได้

19
กรณีการใช้งานสำหรับเลือก CHAR ผ่าน VARCHAR ใน SQL คืออะไร
ฉันตระหนักว่า CHAR แนะนำถ้าค่าทั้งหมดของฉันเป็นความกว้างคงที่ แต่อะไรนะ? ทำไมไม่เพียงแค่เลือก VARCHAR สำหรับฟิลด์ข้อความทั้งหมดเพื่อความปลอดภัย
270 sql  sql-server  tsql 

25
ทำไมคุณถึงสร้างมุมมองในฐานข้อมูล
เมื่อใดและเพราะเหตุใดบางคนตัดสินใจว่าพวกเขาต้องการสร้างมุมมองในฐานข้อมูล ทำไมไม่เพียงแค่เรียกใช้ขั้นตอนการจัดเก็บปกติหรือเลือก?
267 sql  sql-server  database  tsql 

2
ส่งจาก VARCHAR ถึง INT - MySQL
ข้อมูลปัจจุบันของฉันสำหรับ SELECT PROD_CODE FROM `PRODUCT` คือ PROD_CODE 2 5 7 8 22 10 9 11 ฉันลองค้นหาทั้งสี่ข้อแล้วและไม่ทำงานเลย ( อ้างอิง ) SELECT CAST(PROD_CODE) AS INT FROM PRODUCT; SELECT CAST(PROD_CODE AS INT) FROM PRODUCT; SELECT CAST(PROD_CODE) AS INTEGER FROM PRODUCT; SELECT CAST(PROD_CODE AS INTEGER) FROM PRODUCT; ข้อผิดพลาดทั้งหมดของไวยากรณ์การโยนเช่นด้านล่าง: คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชั่นเซิร์ฟเวอร์ MySQL ของคุณเพื่อหาไวยากรณ์ที่ถูกต้องที่จะใช้ใกล้ …
267 mysql  sql 

16
ได้รับ“ หมดเวลารอการล็อค ลองเริ่มต้นธุรกรรมใหม่ "แม้ว่าฉันจะไม่ได้ใช้ธุรกรรมก็ตาม
ฉันใช้UPDATEคำสั่งMySQL ต่อไปนี้: mysql> update customer set account_import_id = 1; ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction ฉันไม่ได้ใช้ธุรกรรมดังนั้นทำไมฉันถึงได้รับข้อผิดพลาดนี้? ฉันลองรีสตาร์ทเซิร์ฟเวอร์ MySQL แล้วก็ไม่ได้ผล ตารางมี 406,733 แถว

7
บันทึกการเปลี่ยนแปลงหลังจากแก้ไขตารางใน SQL Server Management Studio
ถ้าฉันต้องการบันทึกการเปลี่ยนแปลงใด ๆ ในตารางที่บันทึกไว้ก่อนหน้านี้ใน SQL Server Management Studio (ไม่มีข้อมูลในตารางปัจจุบัน) ฉันได้รับข้อความแสดงข้อผิดพลาด: ไม่อนุญาตการเปลี่ยนแปลง การเปลี่ยนแปลงที่คุณทำต้องใช้ตารางต่อไปนี้เพื่อทำการดร็อปและสร้างใหม่ คุณได้ทำการเปลี่ยนแปลงในตารางที่ไม่สามารถสร้างขึ้นใหม่หรือเปิดใช้งานตัวเลือกป้องกันการบันทึกการเปลี่ยนแปลงที่ต้องมีการสร้างตารางขึ้นใหม่ สิ่งที่สามารถป้องกันตารางที่จะแก้ไขได้อย่างง่ายดาย? หรือเป็นวิธีปกติสำหรับ SQL Server Management Studio ที่ต้องการตารางการสร้างใหม่เพื่อแก้ไขหรือไม่ มันคืออะไร - "ตัวเลือกนี้ป้องกันการบันทึกการเปลี่ยนแปลง" ?

26
วิธีการแปลงตารางทั้งหมดจาก MyISAM เป็น InnoDB?
ฉันรู้ว่าฉันสามารถออกตารางแก้ไขเป็นรายบุคคลเพื่อเปลี่ยนที่จัดเก็บตารางจาก MyISAM เป็น InnoDB ฉันสงสัยว่ามีวิธีที่จะเปลี่ยนพวกเขาทั้งหมดเป็น InnoDB อย่างรวดเร็วหรือไม่?
264 mysql  sql  innodb 

9
MySQL SELECT ไม่เพียง แต่ค่า Null
เป็นไปได้หรือไม่ที่จะเลือก statement ที่รับเฉพาะค่า NULL เท่านั้น? ตอนนี้ฉันกำลังใช้สิ่งนี้: SELECT * FROM table จากนั้นฉันต้องกรองค่าว่างด้วย php loop มีวิธีการอย่างไร: SELECT * (that are NOT NULL) FROM table ? ตอนนี้เมื่อฉันเลือก * ฉันได้รับ val1, val2, val3, null, val4, val5, null, null ฯลฯ .... แต่ฉันต้องการรับค่าที่ไม่เป็นโมฆะในผลลัพธ์ของฉัน เป็นไปได้โดยไม่ต้องกรองด้วยห่วงหรือไม่
264 mysql  sql  select  notnull 

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