[SQL] MySQL의 쿼리은 "테이블"에서 데이터를 선택합니다
SQLMySQL의 쿼리은 "테이블"에서 데이터를 선택합니다
그것은 MySQL은 쇼 테이블에서 선택 할 수 있습니까?
SELECT * FROM (SHOW TABLES) AS `my_tables`
(적어도 5.0.51a에) 작업을하지 않는 이상하지만이 라인을 따라 뭔가.
해결법
-
==============================
1.난 당신이 INFORMATION_SCHEMA.TABLES SELECT * FROM을 원한다고 생각
난 당신이 INFORMATION_SCHEMA.TABLES SELECT * FROM을 원한다고 생각
http://dev.mysql.com/doc/refman/5.0/en/tables-table.html 참조
-
==============================
2.당신은 INFORMATION_SCHEMA에서 선택하지 않는 다른 언급이 나는, 알고하지 않는 것이.
당신은 INFORMATION_SCHEMA에서 선택하지 않는 다른 언급이 나는, 알고하지 않는 것이.
그러나, SHOW 명령은 매우 유연합니다, 예컨대 :
SHOW tables like '%s%'
-
==============================
3.계산하기:
계산하기:
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;
-
==============================
4.
SELECT * FROM INFORMATION_SCHEMA.TABLES
즉 좋은 시작해야한다. 자세한 내용은 INFORMATION_SCHEMA 테이블을 확인합니다.
-
==============================
5.당신은 INFORMATION_SCHEMA.TABLES 쿼리로 봤어? 마찬가지로
당신은 INFORMATION_SCHEMA.TABLES 쿼리로 봤어? 마찬가지로
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;
-
==============================
6.당신은 당신이 생각하는 것보다 가까이있을 수 있습니다 - 쇼 테이블 이미 많은 SELECT처럼 동작 :
당신은 당신이 생각하는 것보다 가까이있을 수 있습니다 - 쇼 테이블 이미 많은 SELECT처럼 동작 :
$pdo = new PDO("mysql:host=$host;dbname=$dbname",$user,$pass); foreach ($pdo->query("SHOW TABLES") as $row) { print "Table $row[Tables_in_$dbname]\n"; }
-
==============================
7.당신은 당신의 예에서와 같이 하위 쿼리 내부 SHOW 문을 넣을 수 없습니다. 하위 쿼리에 갈 수있는 유일한 문은 SELECT입니다.
당신은 당신의 예에서와 같이 하위 쿼리 내부 SHOW 문을 넣을 수 없습니다. 하위 쿼리에 갈 수있는 유일한 문은 SELECT입니다.
다른 답변이 언급 한 것처럼, 직접 SELECT와 INFORMATION_SCHEMA를 조회 방법 것이 더 많은 유연성을 얻을 수 있습니다.
MySQL의의 SHOW 문은 내부적으로 INFORMATION_SCHEMA 테이블에 대해 단지 쿼리입니다.
사용자 @physicalattraction는 대부분의 다른 답변에서이 댓글을 올렸습니다 :
반대로, 영업 이익의 질문은 모든 테이블에서 데이터를 선택하려는 말을하지 않습니다. 그들은 테이블 이름의 단지 목록입니다 쇼 테이블의 결과에서 선택하고 싶은 말은.
영업 이익은 모든 테이블에서 모든 데이터를 선택하려는 않는 경우, 대답은 당신이 하나 개의 쿼리와 함께 할 수없는, 아니 없다. 각 쿼리는 명시 적으로 테이블의 이름을 지정해야합니다. 당신은 테이블 이름 변수 또는 동일한 쿼리의 다른 부분의 결과가 될 수 없습니다. 또한, 주어진 질의 결과의 모든 행은 동일한 열이 있어야합니다.
유일한 방법은 모든 테이블에서 모든 데이터를 선택 그래서 쇼 테이블을 실행하고 그 결과에 이름이 각 테이블에 대해 다른 쿼리를 실행합니다.
-
==============================
8.나는 당신이 원하는 것은 MySQL의의 INFORMATION_SCHEMA보기 (들) 생각 : http://dev.mysql.com/doc/refman/5.0/en/tables-table.html
나는 당신이 원하는 것은 MySQL의의 INFORMATION_SCHEMA보기 (들) 생각 : http://dev.mysql.com/doc/refman/5.0/en/tables-table.html
-
==============================
9.
SELECT column_comment FROM information_schema.columns WHERE table_name = 'myTable' AND column_name = 'myColumnName'
이에 코멘트를 반환합니다 myTable.myColumnName를
-
==============================
10.당신은 저장 프로 시저를 생성하고 데이터를 표시하는 테이블의 이름을 통해 다음, 커서에서 루프를 테이블 이름을 넣을 수 있습니다.
당신은 저장 프로 시저를 생성하고 데이터를 표시하는 테이블의 이름을 통해 다음, 커서에서 루프를 테이블 이름을 넣을 수 있습니다.
저장 프로 시저 시작하기 : 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();
-
==============================
11.예, TABLE_SCHEMA에서 SELECT는 시스템 관리에 매우 유용 할 수 있습니다. 당신은 서버의 많은 경우, 데이터베이스는 테이블 ... 때때로 당신은 DROP 또는 요소의 UPDATE 무리 할 필요가있다. 예를 들어 DROP 접 두부 이름 "wp_old _..."모든 테이블에 대한 쿼리를 만들 수 있습니다 :
예, TABLE_SCHEMA에서 SELECT는 시스템 관리에 매우 유용 할 수 있습니다. 당신은 서버의 많은 경우, 데이터베이스는 테이블 ... 때때로 당신은 DROP 또는 요소의 UPDATE 무리 할 필요가있다. 예를 들어 DROP 접 두부 이름 "wp_old _..."모든 테이블에 대한 쿼리를 만들 수 있습니다 :
SELECT concat('DROP TABLE ', table_name, ';') FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = '*name_of_your_database*' AND table_name LIKE 'wp_old_%';
-
==============================
12.MySQL은 5.1 당신은 시도 할 수 있습니다
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)
-
==============================
13.당신은 명령문의 일부로로부터 SELECT *를 사용하려는 이유를 이해하지 않습니다.
당신은 명령문의 일부로로부터 SELECT *를 사용하려는 이유를 이해하지 않습니다.
12.5.5.30. 쇼 테이블 구문
from https://stackoverflow.com/questions/64894/select-data-from-show-tables-mysql-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL Server 2005 및 임시 테이블의 범위 (0) | 2020.05.21 |
---|---|
[SQL] 임의의 데이터와 SQL 채우기 테이블 (0) | 2020.05.21 |
[SQL] 거래 SQL은 다른 거래 SQL 스크립트를 실행합니다 (0) | 2020.05.21 |
[SQL] SQL 서버는 테이블과 피벗 가입 (0) | 2020.05.21 |
[SQL] 하나 개의 쿼리로 여러 행을 업데이트? (0) | 2020.05.21 |