SQL Pratico

Embed Size (px)

DESCRIPTION

Bom Manual para a prática de SQL.

Text of SQL Pratico

  • Embora se fale que a linguagem SQL uma linguagem de consulta, essa linguagem possui outras capacidades alm de realizar consultas em um banco de dados. A linguagem SQL possui recursos para definio da estrutura de dados, para modificar dados no banco de dados e recursos para especificar restries de segurana e integridade.

    Data Manipulation Language (DML) (Linguagem de Manipulao de Dados).A SQL DML inclui uma linguagem de consulta baseada na lgebra relacional eno clculo relacional. Compreende tambm comandos para inserir, remover emodificar informaes em um banco de dados. Os comandos bsicos da DMLso: INSERT, UPDATE, DELETE.

  • Data Definition Language (DDL) (Linguagem de Definio de Dados). ASQL DDL fornece comandos para definio e modificao de esquemas derelao, remoo de relaes e criao de ndices. Os principais comandos quefazem parte da DDL so: CREATE, ALTER, DROP.

    Data Control Language (DCL) (Linguagem de Controle de Dados). o conjunto de comandos que fazem o cadastramento de usurios e determina seu nvel de privilgio para os objetos do banco de dados. Os principais comandos so: GRANT, REVOKE.

  • DQL - Linguagem de Consulta de DadosEmbora tenha apenas um comando, a DQL a parte da SQL mais utilizada. O comando SELECT permite ao usurio especificar uma consulta ("query") como uma descrio do resultado desejado. Esse comando composto de vrias clusulas e opes, possibilitando elaborar consultas das mais simples s mais elaboradas.

    ClusulasAs clusulas so condies de modificao utilizadas para definir os dados que deseja selecionar ou modificar em uma consulta.

    FROM - Utilizada para especificar a tabela que se vai selecionar os registros.WHERE Utilizada para especificar as condies que devem reunir os registros que sero selecionados.GROUP BY Utilizada para separar os registros selecionados em grupos especficos.HAVING Utilizada para expressar a condio que deve satisfazer cada grupo.ORDER BY Utilizada para ordenar os registros selecionados com uma ordem especifica.

  • 1- Executar o comando:#mysql u root p

    Onde: mysql executvel do SGBD-u para especificar o nome do usurio-p para inserir a senha

  • Ex.:

  • 2- Utilizar o comando SHOW DATABASES; para listar as bases de dados existentes.

  • 3- Comeamos o sistema criando o banco de dados locadora por meio do comando CREATE DATABASE. Logo depois, passe a utilizar esse banco com o comando USE.

  • 4- Crie a tabela de clientes utilizando o comando CREATE TABLE. Repare nos tipos de dados: cdigo inteiro, nome do tipo caractere (varchar), idade inteiro e endereooutro varchar. Primary key indica o campo-chave.

  • 5- Para listar as tabelas de uma base de dados, fazemos uso do comando SHOW TABLES.

  • 6- Para inserir dados em uma tabela utilizamos o comando INSERT. Com o comando abaixo, inserimos alguns clientes em nosso banco de dados. Note que a idade o nico valor que no precisa de aspas. Observe tambm, que o campo codigo no foi colocado, pois ele auto incremental.

  • 7- Fazendo uma pesquisa na tabela utilizando o comando SELECT. Ao selecionarmos a tabela, note que o cdigo inseriu valores incrementados automaticamente. Isso se deve ao fato de o campo possuir auto_increment em sua criao.

  • 7.1- Fazendo uma pesquisa na tabela mostrando apenas os campos nome e idade.

  • 7.2- Fazendo uma pesquisa na tabela mostrando apenas os campos nome e idade, para os registros com os valores do campo idade menores ou iguais a 27. Para esse tipo de filtro utilizamos a clausula WHERE.

  • 8- Defini-se a ordem na qual o sistema retornar os valores por meio da propriedade ORDER BY [COLUNA]. Voc pode usar ASC para crescente e DESC para decrescente. ASC o valor padro.

  • 9- Criemos, a segunda tabela chamada filmes: teremos novamente o cod primary key auto_increment, titulovarchar, classificacao uma lista ENUM com algumas definies e a sinopse do tipo TEXT, para textos longos.

  • 10- Veja o que acontece quando tentamos inserir um campo diferente dos valores indicados em ENUM. A palavra desenho no foi definida como parte de classificao.

    Ex.:Execute um SELECT para ver como os dados foram inseridos.

  • 10- Inserindo dados corretamente, respeitando o ENUM.

    Ex.:Execute um SELECT para ver como os dados foram inseridos.

  • 11- Deletando o primeiro registro onde o campo classificacao ficou em branco:

    Ex.:Execute um SELECT para ver os dados aps a excluso.

    Sintaxe:DELETE FROM WHERE

  • 12- O comando ALTER TABLE usado para adicionar, excluir ou alterar atributos em uma relao existente. Para inserir um novo atributo em uma tabela usada a clusula add

    Sintaxe:ALTER TABLE ADD ( A1 D1, A2 D2, ... )

    Ex.: Faa um SELECT para ver as modificaes.

  • Para excluir colunas de uma tabela utiliza-se a clusula DROP.

    Sintaxe:ALTER TABLE DROP ( A1, A2, ... )

    Ex.: Faa um SELECT para ver as modificaes.

  • 11- Crie a tabela alugueis conforme campos abaixo: podemos observar que Cod_cliente e Cod_filme so do mesmo tipo do campo codigo na tabela clientes e cod na tabela filmes, respectivamente.

  • 11.1- Inserindo valores na tabela alugueis, conforme abaixo:

    mysql> INSERT INTO alugueis (Cod_filme, Cod_cliente, dataAluguel, valor) VALUES

    -> (3, 2, NOW(), 5.5),-> (1, 2, NOW(), 4.5),-> (5, 3, NOW(), 3);

    Query OK, 3 rows affected, 3 warnings (0.00 sec)Records: 3 Duplicates: 0 Warnings:3

  • 12- Fazendo SELECT em vrias tabelas ao mesmo tempo, utilizando a clausula JOIN:

  • 12.1- Fazendo o mesmo SELECT mas agora utilizando a clausula WHERE:

  • 13- Saberemos, atravs da clausula GROUP BY, quanto cada cliente deve pagar. Note que somente a tabela alugueis foi selecionada.

  • 14- Especifica um critrio de pesquisa para um. HAVING pode ser usado somente com a instruo SELECT. HAVING usado normalmente em uma clusula GROUP BY, quando isso no ocorre, o HAVING se comporta como uma clusula WHERE.

  • 1?- Fazendo SELECT nos usurios existentes no SGBD Mysql (s o root tem esta permisso):

  • GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES ] } ON [ TABLE ] nome_da_tabela [, ...] TO { nome_do_usurio | GROUP nome_do_grupo | PUBLIC } [, ...] [ WITH GRANT OPTION ]

    A palavra chave PUBLIC indica que os privilgios devem ser concedido para todos os usurios, inclusive aos que vierem a ser criados posteriormente.

    Se for especificado WITH GRANT OPTION quem receber o privilgio poder, por sua vez, conceder o privilgio a terceiros. Sem a opo de concesso, quem recebe no pode conceder o privilgio.

  • REVOKE [GRANT OPTION FOR ] { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES ] } ON [ TABLE ] nome_da_tabela [, ...] FROM { nome_do_usurio | GROUP nome_do_grupo | PUBLIC } [, ...] [ CASCADE | RESTRICT ]

    Se for especificado GRANT OPTION FOR somente a opo de concesso do privilgio revogada, e no o prprio privilgio. Caso contrrio, tanto o privilgio quanto a opo de concesso sero revogados.

    Se o usurio possui um privilgio com opo de concesso, e concedeu este privilgio para outros usurios, ento os privilgios que estes outros usurios possuem so chamados de privilgios dependentes. Se o privilgio ou a opo de concesso que o primeiro usurio possui for revogada, e existirem privilgios dependentes, estes privilgios dependentes tambm sero revogados se for especificado CASCADE, seno a ao de revogar falhar.

  • 1?- Criando um usurio para um DATABASE especfico atravs do comando GRANT:

    1?- Revogando permisses para um usurio especfico com o comando REVOKE:

    Slide Number 1Slide Number 2Slide Number 3Slide Number 4Slide Number 5Slide Number 6Slide Number 7Slide Number 8Slide Number 9Slide Number 10Slide Number 11Slide Number 12Slide Number 13Slide Number 14Slide Number 15Slide Number 16Slide Number 17Slide Number 18Slide Number 19Slide Number 20Slide Number 21Slide Number 22Slide Number 23Slide Number 24Slide Number 25Slide Number 26Slide Number 27Slide Number 28Slide Number 29Slide Number 30Slide Number 31