Trabalho de SQL
sqlite3
no terminal. A mensagem abaixo deve aparecer no seu terminal:
$ sqlite3 SQLite version 3.22.0 2018-01-22 18:45:57 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite>
$ mkdir GRR000000 $ cd GRR000000 $ touch q1_test.sql \ q2_tipo_pecas.sql \ q3_segmento_cliente.sql \ q4_tipo_encomendas.sql \ q5_qtd_encomendas.sql \ q6_qtd_itens.sql \ q7_qtd_itens_maior.sql \ q8_not_special.sql \ q9_not_ordem.sql \ q10_only_special_ordem.sql
$ wget http://www.inf.ufpr.br/eduardo/ensino/ci218/SQL/tpch.dbApos baixar o BD, opcionalmente voce podera verificar sua integridade com o seguinte commando (os valores devem ser iguais):
$ cksum tpch.db 536004849 12226560 tpch.dbO BD tem tamanho aproximado de 12M e deve ser acessado no SQLite de acordo com o comando abaixo:
$ sqlite3 tpch.dbVoce podera imprimir o esquema do BD com o commando abaixo:
sqlite> .tables CUSTOMER LINEITEM NATION ORDERS PART PARTSUPP REGION SUPPLIERO BD do TPC-H possui o seguinte esquema relacional:
Voce podera imprimir o esquema de cada tabela com o commando .schema. Por exemplo, listamos o esquema da tabela NATION abaixo:
sqlite> .schema NATION CREATE TABLE NATION ( N_NATIONKEY INTEGER PRIMARY KEY NOT NULL, N_NAME TEXT NOT NULL, N_REGIONKEY INTEGER NOT NULL, N_COMMENT TEXT, FOREIGN KEY (N_REGIONKEY) REFERENCES REGION(R_REGIONKEY) );A seguir vemos uma linha tabela NATION (note que os atributos são separado por "|"):
0|ALGERIA|0|final accounts wake quickly. special reques
sqlite> select distinct(r_name) from REGION; AFRICA AMERICA ASIA EUROPE MIDDLE EASTLEMBRETE: Voce deve colocar SOMENTE o comando SQL no arquivo "q1_test.sql" SEM os dados. Este arquivo devera ser colocado no subdiretorio com seu GRR (por ex., GRR000000). Nao esqueca que o ";" finaliza o comando SQL.
Detalhe: mostre somente o tipo distinto de peça sem ordenar os dados.
Arquivo: q2_tipo_pecas.sql
Detalhe: mostre o segmento de mercado e conte o numero de clientes para cada segmento. Por ex. uma linha da resposta:
AUTOMOBILE|302
Arquivo: q3_segmento_cliente.sql
Detalhe: mostre somente o tipo distinto de status da encomenda sem ordenar os dados
Arquivo: q4_tipo_encomendas.sql
Detalhe: mostre o nome do país e sua quantidade de encomendas ordenada de forma decrescente pela quantidade.
Arquivo: q5_qtd_encomendas.sql
Detalhe: mostre o nome do país e sua quantidade de itens encomendados ordenada de forma decrescente pela quantidade. Mostre somente os 10 países que mais possuem itens.
Arquivo: q6_qtd_itens.sql
Detalhe: mostre o nome do país e sua quantidade de itens encomendados ordenada de forma decrescente pela quantidade. Mostre somente os países que possuem mais de 62.000 de itens encomendados.
Arquivo: q7_qtd_itens_maior.sql
Detalhe: mostre somente a quantidade dos clientes
Arquivo: q8_not_special.sql
Detalhe: mostre somente a quantidade dos clientes.
Arquivo: q9_not_ordem.sql
Detalhe: mostre somente a quantidade dos clientes.
Arquivo: q10_only_special_ordem.sql