สำหรับระบบฐานข้อมูลยอดนิยมต่างๆคุณจะแสดงรายการคอลัมน์ทั้งหมดในตารางได้อย่างไร
สำหรับระบบฐานข้อมูลยอดนิยมต่างๆคุณจะแสดงรายการคอลัมน์ทั้งหมดในตารางได้อย่างไร
คำตอบ:
สำหรับ MySQL ให้ใช้:
DESCRIBE name_of_table;
สิ่งนี้ใช้ได้กับ Oracle ตราบใดที่คุณใช้ SQL * Plus หรือ SQL Developer ของ Oracle
DESCRIBE
name_of_table``;
DESCRIBE
ไม่ใช่คำสั่ง Oracle PLSQL แต่เป็นคำสั่ง SQL * Plusและไม่สามารถใช้งานได้กับ SQL IDEs ส่วนใหญ่
สำหรับ Oracle (PL / SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
สำหรับ MySQL
SHOW COLUMNS FROM table_name
DESCRIBE name_of_table
กัน
user_tab_cols
ในแบบสอบถามของคุณหรือไม่
สำหรับเซิร์ฟเวอร์ MS SQL:
select * from information_schema.columns where table_name = 'tableName'
information_schema.columns
มุมมองระบบเป็นส่วนหนึ่งของ ANSI SQL
มาตรฐาน ( ลิงก์ )
select COLUMN_NAME from information_schema.columns where table_name = 'tableName' and table_schema = 'databaseName'
(5 ปีต่อมาเพื่อเป็นเกียรติแก่ PostgreSQL ซึ่งเป็น DDBB ขั้นสูงสุดของราชอาณาจักร)
ใน PostgreSQL:
\d table_name
หรือใช้ SQL:
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'table_name';
ฉันรู้ว่ามันช้า แต่ฉันใช้คำสั่งนี้สำหรับ Oracle:
select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'
เซิร์ฟเวอร์ SQL
SELECT
c.name
FROM
sys.objects o
INNER JOIN
sys.columns c
ON
c.object_id = o.object_id
AND o.name = 'Table_Name'
หรือ
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Table_Name'
วิธีที่สองคือมาตรฐาน ANSI ดังนั้นควรทำงานกับฐานข้อมูลที่สอดคล้องกับ ANSI ทั้งหมด
[
]
ๆ ดังนั้นเคียวรีต้องไม่ใช้ชื่อเฉพาะชื่อตารางธรรมดา ถ้านั่นไม่ใช่ความตั้งใจของโอพีอย่างน้อยก็ต้องระวังสิ่งนี้
<Table Name>
อาจหลีกเลี่ยงความคลุมเครือ อย่างไรก็ตามฉันตระหนักว่าคุณอาจมีความตั้งใจที่เมื่อฉันเขียนความคิดเห็น - มันไม่เป็นอันตรายต่อการเตือนผู้อื่นในกรณีที่
เซิร์ฟเวอร์ MS SQL:
sp_columns [tablename]
Microsoft SQL Server Management Studio 2008 R2:
ในเครื่องมือแก้ไขแบบสอบถามหากคุณเน้นข้อความชื่อตาราง (เช่น dbo.MyTable) และกดALT+ F1คุณจะได้รับรายการชื่อคอลัมน์ประเภทความยาว ฯลฯ
ALT+ F1ในขณะที่คุณไฮไลต์dbo.MyTable
เทียบเท่ากับการทำงานEXEC sp_help 'dbo.MyTable'
ตามไซต์นี้
ฉันไม่สามารถรับรูปแบบต่างๆเกี่ยวกับการสืบค้น INFORMATION_SCHEMA.COLUMNS ให้ทำงานดังนั้นฉันจึงใช้สิ่งนี้แทน
เซิร์ฟเวอร์ SQL
ในการแสดงตารางทั้งหมดที่ผู้ใช้กำหนดของฐานข้อมูล:
use [databasename]
select name from sysobjects where type = 'u'
หากต้องการแสดงคอลัมน์ทั้งหมดของตาราง:
use [databasename]
select name from syscolumns where id=object_id('tablename')
สำหรับ SQL Server
sp_help tablename
เพียงแค่การแก้ไขเล็กน้อยในส่วนอื่น ๆ ใน SQL Server (คำนำหน้าสคีมามีความสำคัญมากขึ้น!):
SELECT name
FROM sys.columns
WHERE [object_id] = OBJECT_ID('dbo.tablename');
ตัวอย่าง:
select Table_name as [Table] , column_name as [Column] , Table_catalog as [Database], table_schema as [Schema] from information_schema.columns
where table_schema = 'dbo'
order by Table_name,COLUMN_NAME
แค่รหัสของฉัน