Banco de Dados - Linguagem SQL DDL - Linguagem de Definição de Dados: Comandos Básicos

15.47k views3518 WordsCopy TextShare
UNIVESP
univesp.br Eixo de Computação - COM300 Univesp - Universidade Virtual do Estado de São Paulo Profes...
Video Transcript:
E aí [Música] um vaso com seu Eduardo Santarém da continuidade Nossa disciplina de banco de dados agora a gente conversa a caminhar para atividades um pouco mais práticas dessa disciplina aí a primeira coisa que a gente vai falar sobre a linguagem essa que é a gente vai falar especificamente né uma parte da linguagem SQL que a DDR que a linguagem de definição de dados ou seja hoje a gente vai construir Nossa estrutura de banco de dados oi pra nossa compreensão né eu vou usar um exemplo aqui sempre que eu precisar né que essa estrutura empresa
não tem algumas tabelas aqui funcionário dependente de tratamento localizações projeto e trabalha em é um conjunto de tabelas que compõem né um modelo relacional de uma empresa fictícia né para que a gente possa pela nossa exemplo que vocês vão se acostumando com essa estrutura para que possam fazer exercícios fazer atividades relativas às ele para que a gente possa explicar os mais variados exemplos que a gente vai ter de implementação E aí que é Guiné que eu estou hectare longe é uma linguagem de banco de dados com recursos para definição de dados que o que tiver
tratar especificamente nessa aula e também com recursos para manipulação de dados que a gente vai tratar em aulas futuras permite a gente especificar restrições que devem ser impostas aos dados possibilitando a implementação da integridade e segurança da informação armazenada então a gente constrói a estrutura com todas as restrições que a gente definiu a nas nossas dependências funcionais nossas na transição do nosso modelo de relacionamento para o nosso modelo relacional o futebol então o SQL é uma linguagem padrão que a sistemas gerenciadores de bancos de dados comerciais e ao padrão estabelecido pela acic e pela ISO
que são duas organizações internacionais a definição de sua linguagem é muito importante que vocês sabe o pessoal que as implementações de todos os comerciais nos perder a hora composto que mais quer entre outros produtos que a gente tem no mercado né Pode ser que você tenha especificidades que são relativas a cada um dos produtos a gente vai tratar aqui na disciplina de um modo geral né o modelo padrão do SQL o SQL ansi SQL padrão mas em algum momento eu vou mostrar detalhes específicos como que eu aplico isso por exemplo mais que é que é
o produto que a gente escolheu para trabalhar aqui nas disciplinas Mas então vou tentar fazer tudo do modo mais padronizado que serve para qualquer banco de dados e quando eu tiver falando especificamente do mais relevante aqui é especificamente do mais que é a ficar claro para você escolher o tipo de abordagem Ok bom que a gente vai estudar nessa aula né então a gente vai estudar os comandos de definição de dados são os comandos ddl e a gente vai ter também os comandos de manipulação de dados que são os comandos dml o insert update e
o The Wild e o de leite então esse três cômodos são para ele trabalhar com manipulação de dados é bom o comando cliente é para gente criar estruturas então vocês vão ver especificamente por exemplo no mais quer eu criei esquema que é para você criar uma estrutura de banco e a gente vai tratar agora especificamente aqui o cliente tem igual que quando você vai criar uma tabela com aquela tabela que você definiu lá no modelo relacional a gente vai criar aqui com o cliente te ligo então como que funciona né o comando cliente temos como
que escreve é usado para especificar as tabelas bancos de dados atribuindo-lhes um nome e estando seus atributos e as restrições iniciais então quando a gente olha para escrever editable aqui a gente vai ver que a gente tem o comando Create table aqui em cima na sequência a gente tem o nome da tabela que a gente vai criar e na sequência ele vai ter a relação dos atributos e das restrições eu consegue deixar claro para vocês uma coisa muito importante né algumas eu só sempre, é muito comum saúde perguntaram funcionário pode ter acento e assim tu
vai depender da implementação de batizado você tiver usando Então mas você tem que testar e saber se aquele implementação permite né você criar esses tipos de objetos com acento ou sem acento usando esse tipo de domingo criatura porta Vamos dar um exemplo para vocês do Create table como que funciona né aqui eu tenho comando Create table certo e eu específico o nome da tabela que a funcionário né e eu vou encontrar os campos que eu quero criar de acordo com o que eu tinha lá no meu modelo né Vou definir os campos que eu quero
criar no caso aqui cada Campo vai estar acompanhado pelo seu tipo eu especifiquei para o campo evidente que ele vai ser do tipo inteiro você já vou cadastrar Identificação do funcionário como um número inteiro o índio pessoal eu só quero explicar para vocês que é um valor inteiro mais dependendo do sistema gerenciador de banco de dados que você for usar você pode escolher um tipo diferente para representar o índio alguns sistemas gerenciadores de banco de dados ele pode apresentar três quatro tipos diferentes para você gravar números inteiros e vai depender um pouco de como que
ele Guarda ele guardou inteiro de dois bares ele guarda inteira de quatro bases então cê vai ter que olhar dentro do sistema gerenciador escolhido para ver os tipos que oferecem para guardar um número inteiro e assim que você faz essa escolha é que eu tô só representando que vai ser um tipo inteiro e em baixo aqui no campo nome é um tipo varchar The King aonde é um texto de eu consigo guardar até 50 caracteres e eu faço uma restrição aqui onde eu defini um not null Isso quer dizer o quê que eu não consigo
armazenar não consigo criar um registro novo de funcionário deixando esse campo em branco e Anote no e não pode ser branco então é uma restrição que eu crie um banco de dados e se eu for cadastrar o funcionário estiver vazio esse campo vamos lá tem dizer ó é uma restrição não posso permitir você cadastrar esse campo vazio então a gente define sua restrição aqui o sobrenome a mesma coisa é um campo do tipo texto segunda caracterize o note no depois a gente tem o endereço né aqui ó a baixar x + 30 de 200 o
campo de data de nascimento do tipo date um campo salário do tipo numérico né aqui um tipo numérico que é um número fonte E aí eu tenho um campo onde consigo colocar 10 números mais 2 decimais E aí vai depender também muito dos tipos oferecidos por cada sistema gerenciador eu tenho sexo O que é um Campinho é de um carácter é só por isso eu escolhi puxar e eu tenho aqui né quem é o supervisor e qual é o número do departamento que são Campos do tipo inteiro de novo confirmando aqui ó para o meu
número departamento que eu não posso cadastrar isso aqui vazio do departamento é obrigatório tem que colocar não posso deixá-lo e finalizando eu vou escrever aqui uma restrição que é o primarykey prima e que e o identità identificando o que que o meu campo e dente esse campo e dente aqui é o meu campo casa e primário Então essa é a maneira que eu construo a tabela funcionária que é demonstrando Quais são os campos e dizendo que o meu campo e dente ao meu campo chave primária é o meu pecar é chave primária e bom então
aqui eu tenho o nome do objeto tipo do atributo as restrições EA restrição de chave aqui especificada Ball é importante saber que esses campinhos aqui né tanto a a identificação do meu supervisor quanto o número de apartamentos são Campos que vão servir como chave estrangeira depois então com esses campos são chave estrangeira a gente vai definir e posteriormente por enquanto a gente só sabe que eles são chave estrangeira Mas isso não faz nada antigo isso para criar essa restrição e já vai criar na sempre ver como é que cria essa restrição na sequência Ball aqui
então para criar essa restrição que que eu faço logo depois do primeiro aqui né da chave primária eu venho aqui vou escrever essas outras duas restrições de chave estrangeira tanto para o campo a identificação supervisor quanto para o campo de número nesse caso aqui meu forte aqui né então vou dizer se o meu foro em que que é o sup dente aqui né que é o super que é o o superior ele se refere a uma relação com a própria tabela de funcionária ela se relacionando com ela mesmo com o campo identity então a gente
lembrar a nossa poder Nacional do nosso que era exatamente assim que funcionava esse campo faz uma relação tem um relacionamento recursivo dentro da mesma tabela e aqui o meu de número e também faz uma referência ao a tabela departamento e lá na tabela departamento ao campo número é assim que eu crio a restrição de chave estrangeira pessoal porque eu não coloquei aqui o not null né porque eu deixei isso aqui vazio pelo seguinte pode até ser que todo todo o usuário tem Obrigatoriamente que tem cadastrado o seu supervisor só que seu não não permito cadastrar
no começo como é que eu vou fazer para cadastrar o primeiro funcionário né hora que eu vou cadastrar o primeiro código uma hora que eu for terminar de falar quem que é o superior dele eu não consigo gravar essa informação que eu não tenho outro para ser o supervisor dele não tem ninguém cadastrado no banco já sabe que tomar cuidado para não criar não cair numa cilada aí né Do uma integridade recursiva que depois eu não consegue escapar por isso que eu deixei ali vazio o notebook então tem que tomar cuidado na hora de implementar
essas pessoas para não acontecer essa cilada né de um depende do outro e eu não consigo cadastrar uma porque eu preciso do outro ainda e essa algumas algumas regrinhas que a gente tem a escapar desta cilada aí aqui eu preciso saber que a tabela departamento nesse caso aqui já tirei estar criada né Eu só consigo fazer essa referência aqui né a tabela departamento ela já existindo na hora de criar o fórum aqui pra tela de fusão tem que eu faria creio pela tabela de departamento para depois que a tabela de funcionário bom outro comando é
o alter table alter table é usado para quando a definir a minha tabela se eu quero fazer algum tipo de alteração nela aí eu posso usar o vários objetos o autor pode usar para vários objetos e aquilo especificamente vou mostrar como é que agente faz para fazer alter table Então eu tenho aqui né o cliente tempo o funcionário eu tenho creditable departamento criei as duas tabelas e posteriormente eu quero adicionar uma restrição que eu não criei nas tabelas Então é só eu vou fazer aqui um alter table funcionário adicionando essa constante Então esse é o
comando separado dos Comandos superiores é que independente dos cômodos superiores aonde eu sempre mentiu adicionar ou alterar a tabela a funcionar adicionando um a construir de uma restrição eu vou dar um nome para essa restrição posso fazer isso daí o nome para a inscrição dela vai chamar funk débito e aí eu voltei aqui ó o meu forem que ou seja o tipo de restrição que eu tô criando é para o campo de número na tabela funcionário certo e esse referencia a tabela departamento ao campo número então eu criei o primeiro as tabelas e depois eu
crio a restrição pode ser feito assim eu tinha mostrado antes da fazer direto né tabela funcionar se coloca os dois campinhos você coloca as duas opções de restrição onde você pode criar cadela básicas em criar a inscrição e posteriormente a tabela criados você cria a restrição particularmente gosto muito de fazer assim mas não é uma regra a regra como você acha melhor fazer na sua implementação há outros exemplos aqui por exemplo nem eu tô fazendo um alter table funcionário e Eu Tô excluindo um drop endereço do excluindo esse campo endereço e eu tô usando aqui
uma causa as Cage e aqui eu faço algo muito parecido alter table funcionários também vou lá na tabela funcionário também vou excluir esse campinho endereço só que eu tô usando uma cláusula restrict Qual que é a diferença kaskade e vai pegar esse excesso esse campo por um campo relacionado com outro tiver qualquer tipo de restrição ele já pagar de qualquer forma o casquete faz isso o restrict não se você tiver alguma restrição de integridade e que depende desse campo e não vai te deixar excluir aí vai esse fala não você não pode excluir-se Campo que
está relacionado com outra tabela eu tenho uma restrição para poder fazer essa exclusão de campo então se você quiser eliminar tudo que ele faça tudo sem se o rahkeid se não se conhece triste aqui é um outro tipo de alteração né eu tô simplesmente Verde adicionar o campo o garoto alterando a então eu tô pegando e alterando aqui na tabela funcionário alter table funcionário eu tô alterando esse campo que eu subi dente que tô colocando aí como de furar um 1163 que que a 7D for eu podia ter definido isso não pela criação da minha
tabela que eu coloco o de fofo né eu defino que sempre a hora que eu criar a minha hora que eu quem seria o registro Vai automaticamente esse valor para esse campo né então se você sabe que esse valor vai ser sempre usado você pode colocar uma definição de de Ferro É isso que eu tô fazendo eu tô alterando posteriormente Estou criando um campo de fu o valor de fundo o campo é surpreendente e aqui em baixo tá usando um alter table né de alterada na tabela de funcionário porque eu tô adicionando um campo endereço
de varchar 200 eu me exclui antes drop agora eu tô adicionando então um ano de novo uma um campo endereço lembrando você tiver dados excluiu tá descobrir embora adicionei o campinho de novo Campo vem vazio para todos os registros tá bom e eu tenho também o top que faz o comando drop drop realmente é usado para alterações nas definições dos objetos de ar criado o top table funcionário por exemplo né eu vou apagar a tabela funcionário e vou usar o casqueid que que é o casqueid é aquela questão como a tabela funcionário pode estar relacionada
com outras se eu aplicar o casqueid lá e apaga a tabela a funcionária e vai apagando todas as relações que existiam de restrição de chave chave estrangeira ele apaga tudo tá então ele não vai se preocupar então Normalmente quando você usa um drop table funcionários sozinho ele vai ter se você tiver projeção e não vai te apagar aqui com casca ele vai pagar tudo o comando drop pode ser usado também com outros objetos tem objeto que apagar um índios que usavam a tabela quer pagar ao vivo navio a sempre o comando Drop a e agora
pessoa a gente tem o comando para inserir dados manipulação então parece ser idades o comando insert permite inserir um registro na tabela então no caso aqui ó como que funciona esse comando insert into funcionário que eu tô inserindo dados na tabela a funcionária e aí eu específico os valores a aqui são os valores relativos a cada um dos Campos da tabela Campos numéricos colocados como no Maps Campos texto colocado com o aposto que para definir que é uma informação de texto e o campo de data definida dessa forma que que a estrutura formal de data
nesse caso aqui eu tô me baseando no mais que ele é com outros bancos tem outras maneiras de fazer vai assim que eu vou inserir um dado aqui tá mesma perceber que o numérico eu tô usando um pontinho para separar mas que aí vai exigir que você coloca esse pontinho para separar um decimal aqui embaixo outra maneira de inserir aqui eu tô inserido somente os campos que eu quero se na Primeira opção eu insiro o completo aqui embaixo eu tô dando certinho eu vou seria um funcionário E aí na ordem seria se funcionar eu vou
escolher os campos onde eu quero colocar valores coloquei aqui somente quatro Campos e aqui somente os valores relativos a esses quatro cantos e o que que vai acontecer com os outros carvão ficados lembra que ele pode ser no Eu só coloquei aqui por favor nos campos que eu disse que não podiam se no seu preenche esses campos e deixa os outros vazio é uma prática depende Depende da situação Seu banco de dados mas é assim que a gente insere os valores e eu posso inserir dados baseado num select né que é uma consulta feita em
outra tabela então aqui eu faço uma inserção de dados eu peguei aqui os campos E aí eu tenho que fazer um select uma consulta em outra tabela e trazer os dados quando eu trago os dados ele vai ser tem que ter eu tenho que fazer uma consulta que traga uma estrutura exatamente igual tem que fazer uma uma uma consulta né que tenha esses três Campos aqui e aí vai ser inserido automaticamente após consultar o tabela e fazer uma seleção de Vários valores dentro da tabela que eu tô histeria 17 by select e aqui a gente
tem a opção do update q&a como que eu atualizo dados do banco de dados para atualizar é assim que eu uso update o nome da tabela que eu vou usar mudar os dados da tabela projeto e eu vou citar que que vai isso aqui que vai ser alterado o que que a minha causa o assédio Olha só o meu campo localização vai passar teu valor Minas Gerais, e o meu campo de número vai passar T5 tanto alterando dois Campos nessa tabela tanto localização quanto de número e aqui eu tenho uma condição Então quem que vai
ser mudado quem tiver o número igual a um então eu vou mudar o campo de número vou dar o campo localização para todos os registros entre o número foram essa minha condição de alteração é muito importante pessoal é um comando de atualização você pode alterar os dados de uma tabela inteira né preste muita I hope that e o que que você tá colocando aqui no air né Eu sempre evito de fazer um comando update sem teu olhar no final não se acostume e sempre como colocar Where mesmo que sejam mulher que vale de tudo mais
coloque o seu filtro lá para ter certeza que você tá fazendo e aqui eu tô fazendo um update mas aqui no meu campo de condição né eu tô fazendo um de número dentro do resultado de um comando select que eu peguei um fiz um comando select uma tabela Consultei dados verão conjunto de valores e aí eu vou fazer uma alteração você tá aqui ó o salário com 10 por cento a mais é o salário vezes dei mesmo vezes um ponto um E aí eu tenho aqui esse valor do de número tem que estar dentro né
dessa lista de valores então o valor tentar dentro de uma está contatos fazer a condição de atualização e aqui o meu comando delete que o comando para excluir remover registros aqui o deleto todos os registros da tabela cuidado com isso também aqui eu faço uma eu excluir registros baseados numa condição Eu só vou excluir quando o identificou igual 1167 também é muito interessante fazer o dele é um é ter certeza que você quer fazer e aqui embaixo Undelete aonde o meu campo nome vai ser igual a caixa eu quero excluir o registro aonde o nome
seja caro pó é aqui eu também tenho uma opção de fazer Undelete né baseado pronto deletar o atraso da dela funcionário e aqui a minha condição do de número é que o valor teja numa uma consulta feita uma outra tabela aqui a minha condição é que esse valor Esteja dentro de uma linha aqui dentro de um conjunto de informações como eu faço um de LED baseado numa consulta Ball é esse essa primeira aula mais de implementação falando então de como que a gente constrói as tabelas com as restrições e dos comandos básicos aí de inserir
e excluir e alterar dados no banco de dados se vê na próxima aula só um E aí
Copyright © 2024. Made with ♥ in London by YTScribe.com