Bir şekilde MySQL veritabanının yapısını elde etmek mümkün mü, yoksa basit sorgu içeren bir tablo mu?
Yoksa başka bir yol var mı, nasıl yapabilirim?
Bir şekilde MySQL veritabanının yapısını elde etmek mümkün mü, yoksa basit sorgu içeren bir tablo mu?
Yoksa başka bir yol var mı, nasıl yapabilirim?
Yanıtlar:
Bence peşinde olduğun şey DESCRIBE
DESCRIBE table;
Ayrıca kullanabilirsiniz SHOW TABLES
SHOW TABLES;
veritabanınızdaki tabloların bir listesini almak için.
Veritabanı yapısının tamamını CREATE TABLE ifadeleri kümesi olarak almak için mysqldump kullanın :
mysqldump database_name --compact --no-data
Tek tablolar için, mysqldump içinde db adından sonra tablo adını ekleyin. SQL ve SHOW CREATE TABLE ile aynı sonuçları elde edersiniz :
SHOW CREATE TABLE table;
Veya bir sütun listesini tercih ediyorsanız DESCRIBE :
DESCRIBE table;
show create table
tam olarak aradığım şeydi. Teşekkürler!
Bir göz atın INFORMATION_SCHEMA
. TABLES
tablo. Tüm tablolarınızla ilgili meta veriler içerir.
Misal:
SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'
Bunun diğer yöntemlere göre avantajı, yukarıdaki gibi sorguları diğer sorgularınızda alt sorgu olarak kolayca kullanabilmenizdir.
information_schema
? columns
( columns
bunun yerine tablo kullanılıyor tables
mu? Çünkü tables
tablo sütunlarının hangi türlerde olduğu hakkında bilgi içermiyor
bunu kullanarak:
SHOW CREATE TABLE `users`;
size bu tablo için DDL verecek
DESCRIBE `users`
bu tablodaki sütunları listeler
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products';
Table_schema
veritabanı adı nerede
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_db_name' AND TABLE_NAME ='users';
Bu tabloyu oluştur sorgusu. SCHEMA TABLES'i de sorgulayabilirsiniz .
SHOW CREATE TABLE YourTableName;
SEÇ COLUMN_NAME
DAN INFORMATION_SCHEMA
. COLUMNS
NEREDE TABLE_SCHEMA
= 'bodb' AND TABLE_NAME
= 'abc';
tüm sütun adlarını almak için çalışır
Aşağıdaki örnekte,
playground
veritabanı adı veequipment
tablo adıdır
Başka bir yol da SHOW-COLUMNS: 5.5 (için de kullanılabilir 5.5>
) kullanmaktır
$ mysql -uroot -p<password> -h<host> -P<port> -e \
"SHOW COLUMNS FROM playground.equipment"
Ve çıktı:
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| type | varchar(50) | YES | | NULL | |
| quant | int(11) | YES | | NULL | |
| color | varchar(25) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
Bir de aşağıdaki gibi mysqlshow-client (için de kullanılabilir 5.5>
) kullanabilirsiniz:
$ mysqlshow -uroot -p<password> -h<host> -P<port> \
playground equipment
Ve çıktı:
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: playground Table: equipment
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| id | int(11) | | NO | PRI | | auto_increment | select,insert,update,references | |
| type | varchar(50) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
| quant | int(11) | | YES | | | | select,insert,update,references | |
| color | varchar(25) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
SHOW TABLES FROM database_name