A Linguagem de Consulta Estruturada é um dos blocos de construção fundamentais da arquitetura de banco de dados moderna. O SQL define os métodos usados para criar e manipular bancos de dados relacionais em todas as principais plataformas. À primeira vista, a linguagem pode parecer intimidante e complexa, mas não é tão difícil assim.
Sobre o SQL
A pronúncia correta do SQL é um problema contencioso dentro da comunidade de banco de dados. Em seu padrão SQL, o American National Standards Institute declarou que a pronúncia oficial é "es fila el". No entanto, muitos profissionais de banco de dados levaram para a pronúncia slang "sequela". A escolha é sua.
SQL vem em muitos sabores. Os bancos de dados Oracle usam seu PL / SQL proprietário. O Microsoft SQL Server faz uso do Transact-SQL. Todas as variações são baseadas no ANSI SQL padrão da indústria. Esta introdução usa comandos SQL compatíveis com ANSI que funcionam em qualquer sistema de banco de dados relacional moderno.
DDL e DML
Comandos SQL podem ser divididos em duas sub-linguagens principais. A Data Definition Language (DDL) contém os comandos usados para criar e destruir bancos de dados e objetos de banco de dados. Depois que a estrutura do banco de dados é definida com o DDL, os administradores e usuários do banco de dados podem usar o Data Manipulation Language (DML) para inserir, recuperar e modificar os dados contidos nele.
Comandos de linguagem de definição de dados
A Linguagem de Definição de Dados é usada para criar e destruir bancos de dados e objetos de banco de dados. Esses comandos são usados principalmente pelos administradores do banco de dados durante as fases de instalação e remoção de um projeto de banco de dados. Aqui está uma olhada na estrutura e uso de quatro comandos DDL básicos:
CRIO.A instalação de um sistema de gerenciamento de banco de dados em um computador permite criar e gerenciar muitos bancos de dados independentes. Por exemplo, você pode querer manter um banco de dados de contatos do cliente para o departamento de vendas e um banco de dados pessoal para o departamento de RH. O comando CREATE é usado para estabelecer cada um desses bancos de dados em sua plataforma. Por exemplo, o comando:
Funcionários da CREATE DATABASE
cria um banco de dados vazio chamado "funcionários" no seu DBMS. Depois de criar o banco de dados, a próxima etapa é criar tabelas que contenham dados. Outra variante do comando CREATE pode ser usada para essa finalidade. O comando: CREATE TABLE personal_info (first_name char (20) não nulo, last_name char (20) não nulo, employee_id int não nulo)
estabelece uma tabela intitulada "personal_info" no banco de dados atual. No exemplo, a tabela contém três atributos: first_name, last_name e employee_id, além de algumas informações adicionais. USAR.O comando USE permite que você especifique o banco de dados com o qual deseja trabalhar dentro do seu DBMS. Por exemplo, se você estiver trabalhando no banco de dados de vendas e quiser emitir alguns comandos que afetarão o banco de dados do funcionário, preencha-os com o seguinte comando SQL: USE funcionários
É importante estar sempre consciente do banco de dados em que você está trabalhando antes de emitir comandos SQL que manipulem dados. ALTERAR.Depois de criar uma tabela em um banco de dados, você pode modificar sua definição. O comando ALTER permite fazer alterações na estrutura de uma tabela sem excluí-la e recriá-la. Dê uma olhada no seguinte comando: ALTER TABLE personal_info ADICIONAR dinheiro salarial null
Este exemplo adiciona um novo atributo à tabela personal_info - o salário de um funcionário. O argumento "money" especifica que o salário de um empregado é armazenado usando um formato de dólares e centavos. Por fim, a palavra-chave "nula" informa ao banco de dados que não há nenhum valor para um determinado funcionário. SOLTA.O comando final da linguagem de definição de dados, DROP, nos permite remover objetos de banco de dados inteiros do nosso DBMS. Por exemplo, se quisermos remover permanentemente a tabela personal_info que criamos, usaremos o seguinte comando: DROP TABLE personal_info
Da mesma forma, o comando abaixo seria usado para remover todo o banco de dados de funcionários: Funcionários da DROP DATABASE
Use este comando com cuidado. O comando DROP remove estruturas inteiras de dados do seu banco de dados. Se você deseja remover registros individuais, use o comando DELETE do Data Manipulation Language. A Linguagem de Manipulação de Dados (DML) é usada para recuperar, inserir e modificar informações do banco de dados. Esses comandos são usados por todos os usuários do banco de dados durante a operação de rotina do banco de dados. INSERIR.O comando INSERT no SQL é usado para adicionar registros a uma tabela existente. Voltando ao exemplo personal_info da seção anterior, imagine que nosso departamento de RH precisa adicionar um novo funcionário ao banco de dados. Você poderia usar um comando semelhante a este: INSERT INTO personal_infovalores ('bart', 'simpson', 12345, $ 45000)
Observe que há quatro valores especificados para o registro. Eles correspondem aos atributos da tabela na ordem em que foram definidos: first_name, last_name, employee_id e salary. SELECIONARO comando SELECT é o comando mais usado no SQL. Ele permite que os usuários do banco de dados recuperem as informações específicas que desejam de um banco de dados operacional. Dê uma olhada em alguns exemplos, novamente usando a tabela personal_info do banco de dados do funcionário. O comando mostrado abaixo recupera todas as informações contidas na tabela personal_info. Observe que o asterisco é usado como curinga no SQL. Isso significa literalmente "Selecionar tudo da tabela personal_info". SELECIONAR *FROM personal_info
Como alternativa, os usuários podem querer limitar os atributos recuperados do banco de dados. Por exemplo, o departamento de Recursos Humanos pode exigir uma lista dos sobrenomes de todos os funcionários da empresa. O seguinte comando SQL recuperaria apenas essa informação: SELECT last_nameFROM personal_info
A cláusula WHERE pode ser usada para limitar os registros recuperados àqueles que atendem aos critérios especificados. O CEO pode estar interessado em revisar os registros de pessoal de todos os funcionários altamente remunerados. O comando a seguir recupera todos os dados contidos em personal_info para registros que possuem um valor de salário maior que $ 50.000: SELECIONAR *FROM personal_infoONDE salário> $ 50000
ATUALIZAR.O comando UPDATE pode ser usado para modificar as informações contidas em uma tabela, em massa ou individualmente. Suponha que a empresa conceda a todos os funcionários um aumento de 3% no custo de vida do salário anualmente. O seguinte comando SQL pode ser usado para aplicar isso rapidamente a todos os funcionários armazenados no banco de dados: ATUALIZAÇÃO personal_infoSalário SET = salário * 1,03
Quando o novo funcionário, Bart Simpson, demonstra desempenho acima e além do dever, a administração deseja reconhecer suas realizações estelares com um aumento de US $ 5.000. A cláusula WHERE poderia ser usada para destacar Bart para este aumento: ATUALIZAÇÃO personal_infoSalário SET = salário + $ 5000WHERE employee_id = 12345
EXCLUIR.Finalmente, vamos dar uma olhada no comando DELETE. Você verá que a sintaxe desse comando é semelhante à dos outros comandos DML. Infelizmente, nosso último relatório de ganhos corporativos não atendeu às expectativas e o pobre Bart foi demitido. O comando DELETE com uma cláusula WHERE pode ser usado para remover seu registro da tabela personal_info: DELETE FROM personal_infoWHERE employee_id = 12345 Agora que você aprendeu as noções básicas de SQL, é hora de seguir para um dos conceitos mais poderosos que a linguagem oferece: a instrução JOIN. Uma instrução JOIN permite combinar dados em várias tabelas para processar eficientemente grandes quantidades de dados. Estas declarações são onde reside o verdadeiro poder de um banco de dados. Para explorar o uso de uma operação JOIN básica para combinar dados de duas tabelas, continue com o exemplo usando a tabela PERSONAL_INFO e adicione uma tabela adicional à mistura. Suponha que você tenha uma tabela chamada DISCIPLINARY_ACTION que foi criada com a seguinte instrução: CREATE TABLE disciplinary_action (action_id int não nulo, employee_id int não nulo, comenta char (500))
Esta tabela contém os resultados de ações disciplinares sobre funcionários da empresa. Você notará que não contém informações sobre o funcionário além do número do funcionário. É fácil imaginar muitos cenários em que você pode combinar informações das tabelas DISCIPLINARY_ACTION e PERSONAL_INFO. Suponha que você tenha sido encarregado de criar um relatório que lista as ações disciplinares tomadas contra todos os funcionários com um salário superior a US $ 40.000. O uso de uma operação JOIN, neste caso, é simples. Podemos recuperar essa informação usando o seguinte comando: SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.commentsFROM personal_info, disciplinary_actionONDE personal_info.employee_id = disciplinary_action.employee_idAND personal_info.salary> 40000
O código especifica as duas tabelas que queremos unir na cláusula FROM e, em seguida, inclui uma instrução na cláusula WHERE para limitar os resultados a registros que tinham IDs de funcionários correspondentes e atendeu a nossos critérios de um salário maior que US $ 40.000. Comandos de Linguagem de Manipulação de Dados
JOIN