"표 표시" MySQL 쿼리에서 데이터 선택
선택 가능합니까?show tables
MySQL에서요?
SELECT * FROM (SHOW TABLES) AS `my_tables`
위의 것은 동작하지 않지만, 이러한 라인상의 무엇인가가 있습니다(적어도 5.0.51a에서는).
네가 원하는 것 같아SELECT * FROM INFORMATION_SCHEMA.TABLES
http://dev.mysql.com/doc/refman/5.0/en/tables-table.html 를 참조해 주세요.
내가 아는 바로는, 당신이 선택해주지 않는 한INFORMATION_SCHEMA
다른 사람들이 언급했듯이.
하지만, 그SHOW
명령어는 매우 유연합니다.예:
SHOW tables like '%s%'
계산 방법:
SELECT COUNT(*) as total FROM (SELECT TABLE_NAME as tab, TABLES.* FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='database_name' GROUP BY tab) tables;
목록 작성 방법:
SELECT TABLE_NAME as table, TABLES.* FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='database_name' GROUP BY table;
넣을 수 없습니다.SHOW
예시와 같이 서브쿼리 내에 있는 문.서브쿼리에서 사용할 수 있는 유일한 문장은SELECT
.
기타 답변에서 설명한 바와 같이 INFORMATION_SCHEMA에 직접 문의할 수 있습니다.SELECT
더 많은 유연성을 얻을 수 있습니다.
MySQL의SHOW
문은 내부적으로 INFORMATION_SCHEMA 테이블에 대한 쿼리일 뿐입니다.
사용자 @physicalattraction은 다른 대부분의 답변에 대해 다음과 같은 의견을 게시했습니다.
그러면 OP가 의도한 대로 테이블의 내용이 아닌 테이블에 대한 정보가 제공됩니다.– 물리적인 매력
반대로, OP의 질문에는 모든 표의 데이터를 선택하려는 것이 아닙니다.그 결과에서 뽑고 싶다고 합니다.SHOW TABLES
테이블 이름 목록입니다.
OP가 모든 테이블에서 모든 데이터를 선택하려는 경우 "아니오"라고 대답합니다. 하나의 쿼리로는 할 수 없습니다.각 쿼리는 테이블 이름을 명시적으로 지정해야 합니다.테이블 이름을 변수 또는 동일한 쿼리의 다른 부분으로 지정할 수 없습니다.또한 지정된 쿼리 결과의 모든 행에 동일한 열이 있어야 합니다.
따라서 모든 테이블에서 모든 데이터를 선택하려면SHOW TABLES
그런 다음 해당 결과에 명명된 각 테이블에 대해 다른 쿼리를 실행합니다.
생각보다 가까운 것 같습니다.SHOW TABles는 이미 SELECT 문과 같은 동작을 하고 있습니다.다음은 해당 "행"을 가져오는 방법에 대한 PHP 예입니다.
$pdo = new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);
foreach ($pdo->query("SHOW TABLES") as $row) {
print "Table $row[Tables_in_$dbname]\n";
}
SHOW TABLES는 1열 테이블에서 SELECT와 같이 동작합니다.그 컬럼명은Tables_in_
데이터베이스 이름을 추가합니다.
SELECT * FROM INFORMATION_SCHEMA.TABLES
좋은 출발이 될 거야자세한 내용은 INFORMATION_SCHEMA Tables를 참조하십시오.
INFORMATION_SCHEMA에 대한 쿼리를 검토해 보셨습니까?테이블이요?
SELECT ic.Table_Name,
ic.Column_Name,
ic.data_Type,
IFNULL(Character_Maximum_Length,'') AS `Max`,
ic.Numeric_precision as `Precision`,
ic.numeric_scale as Scale,
ic.Character_Maximum_Length as VarCharSize,
ic.is_nullable as Nulls,
ic.ordinal_position as OrdinalPos,
ic.column_default as ColDefault,
ku.ordinal_position as PK,
kcu.constraint_name,
kcu.ordinal_position,
tc.constraint_type
FROM INFORMATION_SCHEMA.COLUMNS ic
left outer join INFORMATION_SCHEMA.key_column_usage ku
on ku.table_name = ic.table_name
and ku.column_name = ic.column_name
left outer join information_schema.key_column_usage kcu
on kcu.column_name = ic.column_name
and kcu.table_name = ic.table_name
left outer join information_schema.table_constraints tc
on kcu.constraint_name = tc.constraint_name
order by ic.table_name, ic.ordinal_position;
당신이 원하는 것은 MySQL의 information_displays: http://dev.mysql.com/doc/refman/5.0/en/tables-table.html 입니다.
SELECT column_comment FROM information_schema.columns WHERE table_name = 'myTable' AND column_name = 'myColumnName'
myTable.myColumnName에 대한 코멘트가 반환됩니다.
네, table_schema에서 SELECT를 사용하면 시스템 관리에 매우 유용할 수 있습니다.서버, 데이터베이스, 테이블이 많으면...여러 요소를 폐기하거나 업데이트해야 할 경우가 있습니다.예를 들어 접두사 이름이 "wp_old_..."인 모든 테이블을 DROP에 대한 쿼리를 만들려면 다음과 같이 하십시오.":
SELECT concat('DROP TABLE ', table_name, ';') FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = '*name_of_your_database*'
AND table_name LIKE 'wp_old_%';
MySql 5.1에서는
show tables like 'user%';
출력:
mysql> show tables like 'user%';
+----------------------------+
| Tables_in_test (user%) |
+----------------------------+
| user |
| user_password |
+----------------------------+
2 rows in set (0.00 sec)
저장 프로시저를 만들고 테이블 이름을 커서에 넣은 다음 테이블 이름을 반복하여 데이터를 표시할 수 있습니다.
스토어드 프로시저 시작:http://www.mysqltutorial.org/getting-started-with-mysql-stored-procedures.aspx
커서 작성 : http://www.mysqltutorial.org/mysql-cursor/
예를들면,
CREATE PROCEDURE `ShowFromTables`()
BEGIN
DECLARE v_finished INTEGER DEFAULT 0;
DECLARE c_table varchar(100) DEFAULT "";
DECLARE table_cursor CURSOR FOR
SELECT table_name FROM information_schema.tables WHERE table_name like 'wp_1%';
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET v_finished = 1;
OPEN table_cursor;
get_data: LOOP
FETCH table_cursor INTO c_table;
IF v_finished = 1 THEN
LEAVE get_data;
END IF;
SET @s=CONCAT("SELECT * FROM ",c_table,";");
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP get_data;
CLOSE table_cursor;
END
그런 다음 저장 프로시저를 호출합니다.
CALL ShowFromTables();
쓰려고 안 돼요.SELECT * FROM
성명의 일부로서
언급URL : https://stackoverflow.com/questions/64894/select-data-from-show-tables-mysql-query
'programing' 카테고리의 다른 글
Matlab에서 Mariadb 데이터베이스에 액세스하기 위한 JDBC 드라이버 설치 (0) | 2022.11.07 |
---|---|
stdout을 Python의 파일로 리디렉션하시겠습니까? (0) | 2022.11.06 |
.readlines() 사용 시 \n 삭제 (0) | 2022.11.06 |
MySQL 데이터베이스로 여러 SQL 파일을 쉽게 가져오는 방법 (0) | 2022.11.06 |
Python용 pip, virtualenv 및 배포 방법은 무엇입니까? (0) | 2022.11.06 |