Mô tả cấu trúc bảng


84

Truy vấn nào sẽ cung cấp cấu trúc bảng với các định nghĩa cột trong SQL?


3
Bạn nên chỉ định nhà cung cấp cơ sở dữ liệu của mình vì (các) lệnh khác nhau.


2
Nó không phải là một bản sao vì có cơ sở dữ liệu được chỉ định.
schmijos

2
@schmijos: tốt nhất là nó ngụ ý. "sql" KHÔNG có nghĩa là "Máy chủ MS Sql" và thật khó chịu khi nhiều người nghĩ rằng có thể chấp nhận được việc sử dụng thuật ngữ chung để chỉ định một nhà cung cấp cụ thể. "sql" có nghĩa là Ngôn ngữ truy vấn có cấu trúc và Microsoft không phải là "sql" duy nhất.
Bane

2
@bane Tôi thực sự cũng nghĩ như vậy và cố gắng trả lời câu hỏi "SQL" chung chung. Nhưng OP đã xóa câu trả lời của tôi. Đó là lý do cho hàm ý. Và trong thời gian chờ đợi câu hỏi đã được sửa từ MSSQL sang SQL. Vì vậy, tôi không hiểu nó nữa.
schmijos

Câu trả lời:



57

Nó phụ thuộc vào cơ sở dữ liệu bạn sử dụng. Đây là danh sách chưa đầy đủ:

  • sqlite3: .schema table_name
  • Postgres (psql): \d table_name
  • SQL Server: sp_help table_name(hoặc sp_columns table_namechỉ cho các cột)
  • Oracle DB2: desc table_namehoặcdescribe table_name
  • MySQL: describe table_name(hoặc show columns from table_namechỉ cho các cột)

21

Trong MySQL, bạn có thể sử dụng DESCRIBE <table_name>


18
select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='<Table Name>'

Bạn có thể nhận được các chi tiết như kiểu dữ liệu cột và kích thước bằng truy vấn này


11
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'student'


5

Đối với Sybase hay còn gọi là SQL Anywhere, lệnh sau xuất ra cấu trúc của một bảng:

DESCRIBE 'TABLE_NAME';

4

Đánh dấu tên bảng trong bảng điều khiển và nhấn ALT+F1


9
OP đã yêu cầu truy vấn không phải cho các bước mơ hồ trong bảng điều khiển không xác định.
Wranorn

1

Điều này phụ thuộc vào nhà cung cấp cơ sở dữ liệu của bạn. Chủ yếu đó là "lược đồ thông tin" mà bạn nên sử dụng Google (áp dụng cho MySQL, MSSQL và có lẽ những thứ khác).


1

Đối với SQL, hãy sử dụng Từ khoá 'sp_help' nhập mô tả hình ảnh ở đây



0

Máy chủ 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

0

Đối với SQL Server, hãy sử dụng execute sp_help

USE db_name;
exec sp_help 'dbo.table_name'

Đối với MySQL, sử dụng mô tả

DESCRIBE table_name;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.