Base de Datos
Base de Datos
Base de Datos
TAREA 1:
MYSQL:
SELECT 'mysql'
dbms,t.TABLE_SCHEMA,t.TABLE_NAME,c.COLUMN_NAME,c.ORDINAL_POSITION,c.DATA_
TYPE,c.CHARACTER_MAXIMUM_LENGTH,n.CONSTRAINT_TYPE,k.REFERENCED_TABLE_S
CHEMA,k.REFERENCED_TABLE_NAME,k.REFERENCED_COLUMN_NAME FROM
INFORMATION_SCHEMA.TABLES t LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON
t.TABLE_SCHEMA=c.TABLE_SCHEMA AND t.TABLE_NAME=c.TABLE_NAME LEFT JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE k ON
c.TABLE_SCHEMA=k.TABLE_SCHEMA AND c.TABLE_NAME=k.TABLE_NAME AND
c.COLUMN_NAME=k.COLUMN_NAME LEFT JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS n ON
k.CONSTRAINT_SCHEMA=n.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=n.CONSTRAINT_NAME AND k.TABLE_SCHEMA=n.TABLE_SCHEMA
AND k.TABLE_NAME=n.TABLE_NAME WHERE t.TABLE_TYPE='BASE TABLE' AND
t.TABLE_SCHEMA NOT IN('INFORMATION_SCHEMA','mysql','performance_schema');
ORACLE:
SELECT 'oracle'
dbms,ORA_DATABASE_NAME,t.OWNER,t.TABLE_NAME,c.COLUMN_NAME,c.COLUMN_ID,
c.DATA_TYPE,c.DATA_LENGTH,n.CONSTRAINT_TYPE,r.OWNER,r.TABLE_NAME,r.COLUMN_
NAME FROM ALL_TABLES t LEFT JOIN ALL_TAB_COLS c ON t.OWNER=c.OWNER AND
t.TABLE_NAME=c.TABLE_NAME LEFT JOIN ALL_CONS_COLUMNS nc ON
c.OWNER=nc.OWNER AND c.TABLE_NAME=nc.TABLE_NAME AND
c.COLUMN_NAME=nc.COLUMN_NAME LEFT JOIN ALL_CONSTRAINTS n ON
nc.OWNER=n.OWNER AND nc.CONSTRAINT_NAME=n.CONSTRAINT_NAME AND
n.CONSTRAINT_TYPE IN('P','U','R')LEFT JOIN ALL_CONS_COLUMNS r ON
n.R_OWNER=r.OWNER AND n.R_CONSTRAINT_NAME=r.CONSTRAINT_NAME AND
nc.POSITION=r.POSITION WHERE c.COLUMN_NAME IS NOT NULL;
POSTGREESQL:
SERVIDORSQL:
SELECT 'sqlserver'
dbms,t.TABLE_CATALOG,t.TABLE_SCHEMA,t.TABLE_NAME,c.COLUMN_NAME,c.ORDINAL_
POSITION,c.DATA_TYPE,c.CHARACTER_MAXIMUM_LENGTH,n.CONSTRAINT_TYPE,k2.TAB
LE_SCHEMA,k2.TABLE_NAME,k2.COLUMN_NAME FROM
INFORMATION_SCHEMA.TABLES t LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON
t.TABLE_CATALOG=c.TABLE_CATALOG AND t.TABLE_SCHEMA=c.TABLE_SCHEMA AND
t.TABLE_NAME=c.TABLE_NAME LEFT
JOIN(INFORMATION_SCHEMA.KEY_COLUMN_USAGE k JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS n ON
k.CONSTRAINT_CATALOG=n.CONSTRAINT_CATALOG AND
k.CONSTRAINT_SCHEMA=n.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=n.CONSTRAINT_NAME LEFT JOIN
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS r ON
k.CONSTRAINT_CATALOG=r.CONSTRAINT_CATALOG AND
k.CONSTRAINT_SCHEMA=r.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=r.CONSTRAINT_NAME)ON c.TABLE_CATALOG=k.TABLE_CATALOG
AND c.TABLE_SCHEMA=k.TABLE_SCHEMA AND c.TABLE_NAME=k.TABLE_NAME AND
c.COLUMN_NAME=k.COLUMN_NAME LEFT JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE k2 ON
k.ORDINAL_POSITION=k2.ORDINAL_POSITION AND
r.UNIQUE_CONSTRAINT_CATALOG=k2.CONSTRAINT_CATALOG AND
r.UNIQUE_CONSTRAINT_SCHEMA=k2.CONSTRAINT_SCHEMA AND
r.UNIQUE_CONSTRAINT_NAME=k2.CONSTRAINT_NAME WHERE t.TABLE_TYPE='BASE
TABLE';
TAREA 2:
MYSQL:
SELECT 'mysql'
dbms,t.TABLE_SCHEMA,t.TABLE_NAME,c.COLUMN_NAME,c.ORDINAL_POSITION,c.DATA_
TYPE,c.CHARACTER_MAXIMUM_LENGTH,n.CONSTRAINT_TYPE,k.REFERENCED_TABLE_S
CHEMA,k.REFERENCED_TABLE_NAME,k.REFERENCED_COLUMN_NAME FROM
INFORMATION_SCHEMA.TABLES t LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON
t.TABLE_SCHEMA=c.TABLE_SCHEMA AND t.TABLE_NAME=c.TABLE_NAME LEFT JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE k ON
c.TABLE_SCHEMA=k.TABLE_SCHEMA AND c.TABLE_NAME=k.TABLE_NAME AND
c.COLUMN_NAME=k.COLUMN_NAME LEFT JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS n ON
k.CONSTRAINT_SCHEMA=n.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=n.CONSTRAINT_NAME AND k.TABLE_SCHEMA=n.TABLE_SCHEMA
AND k.TABLE_NAME=n.TABLE_NAME WHERE t.TABLE_TYPE='BASE TABLE' AND
t.TABLE_SCHEMA NOT IN('INFORMATION_SCHEMA','mysql','performance_schema');
ORACLE:
SELECT 'oracle'
dbms,ORA_DATABASE_NAME,t.OWNER,t.TABLE_NAME,c.COLUMN_NAME,c.COLUMN_ID,
c.DATA_TYPE,c.DATA_LENGTH,n.CONSTRAINT_TYPE,r.OWNER,r.TABLE_NAME,r.COLUMN_
NAME FROM ALL_TABLES t LEFT JOIN ALL_TAB_COLS c ON t.OWNER=c.OWNER AND
t.TABLE_NAME=c.TABLE_NAME LEFT JOIN ALL_CONS_COLUMNS nc ON
c.OWNER=nc.OWNER AND c.TABLE_NAME=nc.TABLE_NAME AND
c.COLUMN_NAME=nc.COLUMN_NAME LEFT JOIN ALL_CONSTRAINTS n ON
nc.OWNER=n.OWNER AND nc.CONSTRAINT_NAME=n.CONSTRAINT_NAME AND
n.CONSTRAINT_TYPE IN('P','U','R')LEFT JOIN ALL_CONS_COLUMNS r ON
n.R_OWNER=r.OWNER AND n.R_CONSTRAINT_NAME=r.CONSTRAINT_NAME AND
nc.POSITION=r.POSITION WHERE c.COLUMN_NAME IS NOT NULL;
POSTGREESQL:
SERVIDOR SQL:
SELECT 'sqlserver'
dbms,t.TABLE_CATALOG,t.TABLE_SCHEMA,t.TABLE_NAME,c.COLUMN_NAME,c.ORDINAL_
POSITION,c.DATA_TYPE,c.CHARACTER_MAXIMUM_LENGTH,n.CONSTRAINT_TYPE,k2.TAB
LE_SCHEMA,k2.TABLE_NAME,k2.COLUMN_NAME FROM
INFORMATION_SCHEMA.TABLES t LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON
t.TABLE_CATALOG=c.TABLE_CATALOG AND t.TABLE_SCHEMA=c.TABLE_SCHEMA AND
t.TABLE_NAME=c.TABLE_NAME LEFT
JOIN(INFORMATION_SCHEMA.KEY_COLUMN_USAGE k JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS n ON
k.CONSTRAINT_CATALOG=n.CONSTRAINT_CATALOG AND
k.CONSTRAINT_SCHEMA=n.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=n.CONSTRAINT_NAME LEFT JOIN
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS r ON
k.CONSTRAINT_CATALOG=r.CONSTRAINT_CATALOG AND
k.CONSTRAINT_SCHEMA=r.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=r.CONSTRAINT_NAME)ON c.TABLE_CATALOG=k.TABLE_CATALOG
AND c.TABLE_SCHEMA=k.TABLE_SCHEMA AND c.TABLE_NAME=k.TABLE_NAME AND
c.COLUMN_NAME=k.COLUMN_NAME LEFT JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE k2 ON
k.ORDINAL_POSITION=k2.ORDINAL_POSITION AND
r.UNIQUE_CONSTRAINT_CATALOG=k2.CONSTRAINT_CATALOG AND
r.UNIQUE_CONSTRAINT_SCHEMA=k2.CONSTRAINT_SCHEMA AND
r.UNIQUE_CONSTRAINT_NAME=k2.CONSTRAINT_NAME WHERE t.TABLE_TYPE='BASE
TABLE';
TAREA 3:
MYSQL:
SELECT 'mysql'
dbms,t.TABLE_SCHEMA,t.TABLE_NAME,c.COLUMN_NAME,c.ORDINAL_POSITION,c.DATA_
TYPE,c.CHARACTER_MAXIMUM_LENGTH,n.CONSTRAINT_TYPE,k.REFERENCED_TABLE_S
CHEMA,k.REFERENCED_TABLE_NAME,k.REFERENCED_COLUMN_NAME FROM
INFORMATION_SCHEMA.TABLES t LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON
t.TABLE_SCHEMA=c.TABLE_SCHEMA AND t.TABLE_NAME=c.TABLE_NAME LEFT JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE k ON
c.TABLE_SCHEMA=k.TABLE_SCHEMA AND c.TABLE_NAME=k.TABLE_NAME AND
c.COLUMN_NAME=k.COLUMN_NAME LEFT JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS n ON
k.CONSTRAINT_SCHEMA=n.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=n.CONSTRAINT_NAME AND k.TABLE_SCHEMA=n.TABLE_SCHEMA
AND k.TABLE_NAME=n.TABLE_NAME WHERE t.TABLE_TYPE='BASE TABLE' AND
t.TABLE_SCHEMA NOT IN('INFORMATION_SCHEMA','mysql','performance_schema');
ORACLE:
SELECT 'oracle'
dbms,ORA_DATABASE_NAME,t.OWNER,t.TABLE_NAME,c.COLUMN_NAME,c.COLUMN_ID,
c.DATA_TYPE,c.DATA_LENGTH,n.CONSTRAINT_TYPE,r.OWNER,r.TABLE_NAME,r.COLUMN_
NAME FROM ALL_TABLES t LEFT JOIN ALL_TAB_COLS c ON t.OWNER=c.OWNER AND
t.TABLE_NAME=c.TABLE_NAME LEFT JOIN ALL_CONS_COLUMNS nc ON
c.OWNER=nc.OWNER AND c.TABLE_NAME=nc.TABLE_NAME AND
c.COLUMN_NAME=nc.COLUMN_NAME LEFT JOIN ALL_CONSTRAINTS n ON
nc.OWNER=n.OWNER AND nc.CONSTRAINT_NAME=n.CONSTRAINT_NAME AND
n.CONSTRAINT_TYPE IN('P','U','R')LEFT JOIN ALL_CONS_COLUMNS r ON
n.R_OWNER=r.OWNER AND n.R_CONSTRAINT_NAME=r.CONSTRAINT_NAME AND
nc.POSITION=r.POSITION WHERE c.COLUMN_NAME IS NOT NULL;
POSTGREE:
SERVIDOR SQL:
SELECT 'sqlserver'
dbms,t.TABLE_CATALOG,t.TABLE_SCHEMA,t.TABLE_NAME,c.COLUMN_NAME,c.ORDINAL_
POSITION,c.DATA_TYPE,c.CHARACTER_MAXIMUM_LENGTH,n.CONSTRAINT_TYPE,k2.TAB
LE_SCHEMA,k2.TABLE_NAME,k2.COLUMN_NAME FROM
INFORMATION_SCHEMA.TABLES t LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON
t.TABLE_CATALOG=c.TABLE_CATALOG AND t.TABLE_SCHEMA=c.TABLE_SCHEMA AND
t.TABLE_NAME=c.TABLE_NAME LEFT
JOIN(INFORMATION_SCHEMA.KEY_COLUMN_USAGE k JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS n ON
k.CONSTRAINT_CATALOG=n.CONSTRAINT_CATALOG AND
k.CONSTRAINT_SCHEMA=n.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=n.CONSTRAINT_NAME LEFT JOIN
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS r ON
k.CONSTRAINT_CATALOG=r.CONSTRAINT_CATALOG AND
k.CONSTRAINT_SCHEMA=r.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=r.CONSTRAINT_NAME)ON c.TABLE_CATALOG=k.TABLE_CATALOG
AND c.TABLE_SCHEMA=k.TABLE_SCHEMA AND c.TABLE_NAME=k.TABLE_NAME AND
c.COLUMN_NAME=k.COLUMN_NAME LEFT JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE k2 ON
k.ORDINAL_POSITION=k2.ORDINAL_POSITION AND
r.UNIQUE_CONSTRAINT_CATALOG=k2.CONSTRAINT_CATALOG AND
r.UNIQUE_CONSTRAINT_SCHEMA=k2.CONSTRAINT_SCHEMA AND
r.UNIQUE_CONSTRAINT_NAME=k2.CONSTRAINT_NAME WHERE t.TABLE_TYPE='BASE
TABLE';
TAREA 4:
MYSQL
SELECT 'mysql'
dbms,t.TABLE_SCHEMA,t.TABLE_NAME,c.COLUMN_NAME,c.ORDINAL_POSITION,c.DATA_
TYPE,c.CHARACTER_MAXIMUM_LENGTH,n.CONSTRAINT_TYPE,k.REFERENCED_TABLE_S
CHEMA,k.REFERENCED_TABLE_NAME,k.REFERENCED_COLUMN_NAME FROM
INFORMATION_SCHEMA.TABLES t LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON
t.TABLE_SCHEMA=c.TABLE_SCHEMA AND t.TABLE_NAME=c.TABLE_NAME LEFT JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE k ON
c.TABLE_SCHEMA=k.TABLE_SCHEMA AND c.TABLE_NAME=k.TABLE_NAME AND
c.COLUMN_NAME=k.COLUMN_NAME LEFT JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS n ON
k.CONSTRAINT_SCHEMA=n.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=n.CONSTRAINT_NAME AND k.TABLE_SCHEMA=n.TABLE_SCHEMA
AND k.TABLE_NAME=n.TABLE_NAME WHERE t.TABLE_TYPE='BASE TABLE' AND
t.TABLE_SCHEMA NOT IN('INFORMATION_SCHEMA','mysql','performance_schema');
ORACLE:
SELECT 'oracle'
dbms,ORA_DATABASE_NAME,t.OWNER,t.TABLE_NAME,c.COLUMN_NAME,c.COLUMN_ID,
c.DATA_TYPE,c.DATA_LENGTH,n.CONSTRAINT_TYPE,r.OWNER,r.TABLE_NAME,r.COLUMN_
NAME FROM ALL_TABLES t LEFT JOIN ALL_TAB_COLS c ON t.OWNER=c.OWNER AND
t.TABLE_NAME=c.TABLE_NAME LEFT JOIN ALL_CONS_COLUMNS nc ON
c.OWNER=nc.OWNER AND c.TABLE_NAME=nc.TABLE_NAME AND
c.COLUMN_NAME=nc.COLUMN_NAME LEFT JOIN ALL_CONSTRAINTS n ON
nc.OWNER=n.OWNER AND nc.CONSTRAINT_NAME=n.CONSTRAINT_NAME AND
n.CONSTRAINT_TYPE IN('P','U','R')LEFT JOIN ALL_CONS_COLUMNS r ON
n.R_OWNER=r.OWNER AND n.R_CONSTRAINT_NAME=r.CONSTRAINT_NAME AND
nc.POSITION=r.POSITION WHERE c.COLUMN_NAME IS NOT NULL;
POSTGRESQL:
SERVIDORSQL:
SELECT 'sqlserver'
dbms,t.TABLE_CATALOG,t.TABLE_SCHEMA,t.TABLE_NAME,c.COLUMN_NAME,c.ORDINAL_
POSITION,c.DATA_TYPE,c.CHARACTER_MAXIMUM_LENGTH,n.CONSTRAINT_TYPE,k2.TAB
LE_SCHEMA,k2.TABLE_NAME,k2.COLUMN_NAME FROM
INFORMATION_SCHEMA.TABLES t LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON
t.TABLE_CATALOG=c.TABLE_CATALOG AND t.TABLE_SCHEMA=c.TABLE_SCHEMA AND
t.TABLE_NAME=c.TABLE_NAME LEFT
JOIN(INFORMATION_SCHEMA.KEY_COLUMN_USAGE k JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS n ON
k.CONSTRAINT_CATALOG=n.CONSTRAINT_CATALOG AND
k.CONSTRAINT_SCHEMA=n.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=n.CONSTRAINT_NAME LEFT JOIN
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS r ON
k.CONSTRAINT_CATALOG=r.CONSTRAINT_CATALOG AND
k.CONSTRAINT_SCHEMA=r.CONSTRAINT_SCHEMA AND
k.CONSTRAINT_NAME=r.CONSTRAINT_NAME)ON c.TABLE_CATALOG=k.TABLE_CATALOG
AND c.TABLE_SCHEMA=k.TABLE_SCHEMA AND c.TABLE_NAME=k.TABLE_NAME AND
c.COLUMN_NAME=k.COLUMN_NAME LEFT JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE k2 ON
k.ORDINAL_POSITION=k2.ORDINAL_POSITION AND
r.UNIQUE_CONSTRAINT_CATALOG=k2.CONSTRAINT_CATALOG AND
r.UNIQUE_CONSTRAINT_SCHEMA=k2.CONSTRAINT_SCHEMA AND
r.UNIQUE_CONSTRAINT_NAME=k2.CONSTRAINT_NAME WHERE t.TABLE_TYPE='BASE
TABLE';