Opisz strukturę tabeli

88

Które zapytanie da strukturę tabeli z definicjami kolumn w języku SQL?

Antoops
źródło
3
Należy określić dostawcę bazy danych, ponieważ polecenia są różne.
2
Nie jest to duplikat, ponieważ tam określono bazę danych.
schmijos
2
@schmijos: właściwie jest to sugerowane, w najlepszym przypadku. „sql” NIE oznacza „MS Sql Server” i irytujące jest to, że tak wiele osób uważa, iż użycie ogólnego terminu do określenia konkretnego dostawcy jest dopuszczalne. „sql” oznacza Structured Query Language, a Microsoft nie jest jedynym „sql”.
Bane
2
@bane Właściwie pomyślałem to samo i spróbowałem odpowiedzieć na ogólne pytanie „SQL”. Ale OP usunął moją odpowiedź. To był powód implikacji. W międzyczasie pytanie zostało zredagowane z MSSQL do SQL. Więc już tego nie rozumiem.
schmijos

Odpowiedzi:

57

To zależy od używanej bazy danych. Oto niepełna lista:

  • sqlite3: .schema table_name
  • Postgres (psql): \d table_name
  • SQL Server: sp_help table_name(lub sp_columns table_nametylko dla kolumn)
  • Oracle DB2: desc table_namelubdescribe table_name
  • MySQL: describe table_name(lub show columns from table_nametylko dla kolumn)
schmijos
źródło
21

W MySQL możesz użyć DESCRIBE <table_name>

Anax
źródło
18
select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='<Table Name>'

Możesz uzyskać szczegółowe informacje, takie jak typ danych kolumny i rozmiar za pomocą tego zapytania

Pankaj Upadhyay
źródło
11
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'student'
neeraj
źródło
5

W przypadku Sybase, czyli SQL Anywhere, poniższe polecenie wyświetla strukturę tabeli:

DESCRIBE 'TABLE_NAME';
Ozair Kafray
źródło
4

Podświetl nazwę tabeli w konsoli i naciśnij ALT+F1

Krishna Teja
źródło
9
OP poprosił o zapytanie, a nie o niejasne kroki w nieokreślonej konsoli.
Wranorn
1

Zależy to od dostawcy bazy danych. Przede wszystkim jest to „schemat informacyjny”, do którego należy Google (dotyczy MySQL, MSSQL i być może innych).

Karel Petranek
źródło
1

Serwer SQL

DECLARE @tableName nvarchar(100)
SET @tableName = N'members' -- change with table name
SELECT
    [column].*,
    COLUMNPROPERTY(object_id([column].[TABLE_NAME]), [column].[COLUMN_NAME], 'IsIdentity') AS [identity]
FROM 
    INFORMATION_SCHEMA.COLUMNS [column] 
WHERE
    [column].[Table_Name] = @tableName
Gabriele Petrioli
źródło
1

W przypadku języka SQL użyj słowa kluczowego „sp_help” wprowadź opis obrazu tutaj

grzywa
źródło
1

W DBTools for Sybase to jest sp_columns your_table_name.

Quan VO
źródło
1

W przypadku programu SQL Server użyj exec sp_help

USE db_name;
exec sp_help 'dbo.table_name'

W przypadku MySQL użyj opisać

DESCRIBE table_name;
Harry_pb
źródło