Untuk berbagai sistem basis data populer, bagaimana Anda membuat daftar semua kolom dalam sebuah tabel?
Untuk berbagai sistem basis data populer, bagaimana Anda membuat daftar semua kolom dalam sebuah tabel?
Jawaban:
Untuk MySQL, gunakan:
DESCRIBE name_of_table;
Ini juga berfungsi untuk Oracle selama Anda menggunakan SQL * Plus, atau Oracle Developer SQL.
DESCRIBE
name_of_table``;
DESCRIBE
ini bukan instruksi Oracle PLSQL tetapi perintah SQL * Plus , dan karena itu tidak berfungsi di sebagian besar SQL IDE.
Untuk Oracle (PL / SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
Untuk MySQL
SHOW COLUMNS FROM table_name
DESCRIBE name_of_table
.
user_tab_cols
dalam kueri Anda?
Untuk MS SQL Server:
select * from information_schema.columns where table_name = 'tableName'
information_schema.columns
tampilan sistem adalah bagian dari ANSI SQL
standar ( tautan ).
select COLUMN_NAME from information_schema.columns where table_name = 'tableName' and table_schema = 'databaseName'
(5 tahun belakangan, untuk Kehormatan PostgreSQL, DDBB Kerajaan tercanggih)
Di PostgreSQL:
\d table_name
Atau, menggunakan SQL:
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'table_name';
Saya tahu ini sudah terlambat, tetapi saya menggunakan perintah ini untuk Oracle:
select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'
SQL Server
SELECT
c.name
FROM
sys.objects o
INNER JOIN
sys.columns c
ON
c.object_id = o.object_id
AND o.name = 'Table_Name'
atau
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Table_Name'
Cara kedua adalah standar ANSI dan karenanya harus bekerja pada semua database yang sesuai dengan ANSI.
[
]
di sekitarnya, sehingga query tidak harus menggunakannya, hanya polos nama tabel. Jika itu bukan niat OP, setidaknya sadari ini.
<Table Name>
akan menghindari ambiguitas. Ngomong-ngomong, saya menyadari Anda mungkin bermaksud bahwa ketika saya menulis komentar --- tidak ada salahnya untuk memperingatkan orang lain untuk berjaga-jaga.
Microsoft SQL Server Management Studio 2008 R2:
Di editor kueri, jika Anda menyorot teks nama tabel (ex dbo.MyTable) dan menekan ALT+ F1, Anda akan mendapatkan daftar nama kolom, jenis, panjang, dll.
ALT+ F1saat Anda disorot dbo.MyTable
sama dengan berjalan EXEC sp_help 'dbo.MyTable'
menurut situs ini
Saya tidak bisa mendapatkan variasi tentang permintaan INFORMATION_SCHEMA.COLUMNS agar berfungsi, jadi saya menggunakan ini sebagai gantinya.
SQL Server
Untuk membuat daftar semua tabel yang ditentukan pengguna dari basis data:
use [databasename]
select name from sysobjects where type = 'u'
Untuk membuat daftar semua kolom pada tabel:
use [databasename]
select name from syscolumns where id=object_id('tablename')
Hanya sedikit koreksi pada yang lain di SQL Server (skema awalan menjadi lebih penting!):
SELECT name
FROM sys.columns
WHERE [object_id] = OBJECT_ID('dbo.tablename');
Contoh:
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
Hanya kode saya