Fundamentos SQL

Máis información sobre DDL, DML e JOIN

O Language Structured Query é un dos bloques fundamentais da arquitectura moderna de bases de datos. SQL define os métodos empregados para crear e manipular bases de datos relacionales en todas as plataformas principais. A primeira vista, a linguaxe pode parecer intimidante e complexa, pero non é tan difícil.

Esta introdución aos fundamentos detrás de SQL leva unha breve ollada a algúns dos principais comandos utilizados para crear e modificar bases de datos.

Sobre SQL

A pronunciación correcta de SQL é un problema polémico dentro da comunidade de bases de datos. No seu estándar SQL, o American National Standards Institute declarou que a pronuncia oficial é "es queue el". Non obstante, moitos profesionais da base de datos tomaron a pronunciación "sequel". A elección é túa.

SQL vén en moitos sabores. As bases de datos Oracle usan o seu PL / SQL propietario. Microsoft SQL Server fai uso de transact-SQL. Todas as variacións están baseadas no estándar industrial ANSI SQL. Esta introdución usa comandos SQL compatibles con ANSI que funcionan en calquera sistema de base de datos relacional moderno.

DDL e DML

Os comandos SQL poden dividirse en dous sub-idiomas principais. O Idioma de definición de datos (DDL) contén os comandos utilizados para crear e destruír bases de datos e obxectos de base de datos. Despois de definir a estrutura da base de datos con DDL, os administradores de bases de datos e os usuarios poden usar o Idioma de Manipulación de Datos (DML) para inserir, recuperar e modificar os datos contidos nel.

Comandos de linguaxe de definición de datos

O linguaxe de definición de datos úsase para crear e destruír bases de datos e obxectos de base de datos. Estes comandos son usados ​​principalmente polos administradores da base de datos durante as fases de configuración e eliminación dun proxecto de base de datos. Aquí tes unha ollada á estrutura e ao uso de catro comandos DDL básicos:

CREAR. Instalar un sistema de xestión de bases de datos nunha computadora permítelle crear e xestionar moitas bases de datos independentes. Por exemplo, pode querer manter unha base de datos de contactos do cliente para o seu departamento de vendas e unha base de datos de persoal para o seu departamento de RRHH. O comando CREATE úsase para establecer cada unha destas bases de datos na súa plataforma. Por exemplo, o comando:

Funcionarios CREATE DATABASE

crea unha base de datos baleira chamada "empregados" no seu DBMS. Despois de crear a base de datos, o seguinte paso é crear táboas que conteñan datos. Outra variante do comando CREATE pode usarse para este fin. O comando:

CREATE TABLE personal_info (first_name char (20) non é nulo, last_name char (20) non é nulo, employee_id int non é nulo)

establece unha táboa titulada "persoal_info" na base de datos actual. No exemplo, a táboa contén tres atributos: first_name, last_name e employee_id xunto con algunha información adicional.

USO. O comando USE permítelle especificar a base de datos que quere traballar no seu DBMS. Por exemplo, se está a traballar na base de datos de vendas e desexa emitir algúns comandos que afectarán á base de datos dos empregados, introdúzaos co seguinte comando SQL:

Empregados da USE

É importante ter sempre en conta a base de datos que está a traballar antes de emitir comandos SQL que manipulan datos.

ALTER. Unha vez que creou unha táboa nunha base de datos, pode querer modificar a súa definición. O comando ALTER permítelle facer cambios na estrutura dunha táboa sen eliminarla e recreala. Bótalle un ollo ao seguinte comando:

ALTER TABLE personal_info Engada o diñeiro salarial nulo

Este exemplo engade un novo atributo á táboa persoal_info: o salario dun empregado. O argumento "diñeiro" especifica que o salario dun empregado almacénase utilizando un formato de dólares e centavos. Finalmente, a palabra "nula" di que a base de datos é correcto para que este campo non conteña ningún valor para ningún empregado dado.

DROP. O comando final do Idioma de definición de datos, DROP, permítenos eliminar obxectos da base de datos enteiros desde o noso DBMS. Por exemplo, se queremos eliminar permanentemente a táboa persoal_info que creamos, usaremos o seguinte comando:

DROP TABLE personal_info

Do mesmo xeito, o comando a seguir sería usado para eliminar toda a base de datos do empregado:

Funcionarios DROP DATABASE

Use este comando con coidado. O comando DROP elimina estruturas de datos enteiras da súa base de datos. Se queres eliminar rexistros individuais, usa o comando DELETE do Idioma de manipulación de datos.

Comandos de linguaxe de manipulación de datos

O Idioma de Manipulación de Datos (DML) úsase para recuperar, inserir e modificar información da base de datos. Estes comandos son utilizados por todos os usuarios da base de datos durante a operación de rutina da base de datos.

INSERTAR. O comando INSERT en SQL úsase para engadir rexistros a unha táboa existente. Volvendo ao exemplo persoal_info da sección anterior, imaxina que o noso departamento de recursos humanos necesita engadir un novo empregado á súa base de datos. Podería usar un comando similar a este:

INSERTA EN valores persoais ('bart', 'simpson', 12345, $ 45000)

Teña en conta que hai catro valores especificados para o rexistro. Estes corresponden aos atributos da táboa na orde en que foron definidos: first_name, last_name, employee_id e salary.

SELECCIONAR. O comando SELECT é o comando máis usado en SQL. Permite aos usuarios da base de datos recuperar a información específica que desexan a partir dunha base de datos operativa. Bótalle un ollo a algúns exemplos, de novo empregando a táboa persoal_info da base de datos de empregados.

O comando mostrado a continuación recupera toda a información contida na táboa persoal_info. Teña en conta que o asterisco úsase como comodín en SQL. Isto literalmente significa "Seleccionar todo dende a táboa persoal_info".

SELECCIONAR * FROM personal_info

Alternativamente, os usuarios poden querer limitar os atributos que se recuperan da base de datos. Por exemplo, o departamento de recursos humanos pode esixir unha lista dos apelidos de todos os empregados da empresa. O seguinte comando SQL recuperaría só esa información:

SELECCIONA último nome de persoal_info

A cláusula WHERE pode usarse para limitar os rexistros que se recuperan para aqueles que cumpren criterios específicos. O CEO podería estar interesado en revisar os rexistros de persoal de todos os empregados altamente remunerados. O seguinte comando recupera todos os datos contidos en persoal_info para rexistros que teñan un valor salarial superior a $ 50,000:

SELECCIONAR * FROM personal_info DONDE o salario> $ 50000

ACTUALIZACIÓN. O comando UPDATE pode usarse para modificar a información contida nunha táboa, a granel ou individualmente. Asume que a compañía dá a todos os empregados un aumento do custo de vida do 3 por cento no seu salario anualmente. O seguinte comando SQL podería usarse para aplicar rapidamente a todos os empregados almacenados na base de datos:

ACTUALIZACIÓN persoal_info SET salario = salario * 1.03

Cando o novo funcionario Bart Simpson demostra un rendemento por encima do chamado de deber, a dirección desexa recoñecer as súas realizacións estelares cun aumento de $ 5,000. A cláusula WHERE podería usarse para destacar Bart para este aumento:

ACTUALIZACIÓN persoal_info SET salario = salario + $ 5000 ONDE employee_id = 12345

Eliminar. Finalmente, repasemos o comando DELETE. Verá que a sintaxe deste comando é similar á dos outros comandos DML. Desafortunadamente, o noso último informe de ganancias corporativas non cumpriu as expectativas e a pobre Bart foi despedida. O comando DELETE con unha cláusula WHERE pode usarse para eliminar o seu rexistro da táboa persoal_info:

DELETE FROM persoal_info DONDE employee_id = 12345

Unirse

Agora que xa aprendeu o básico de SQL, é hora de pasar a un dos conceptos máis potentes que a linguaxe ten para ofrecer: a declaración JOIN. Unha declaración JOIN permítelle combinar datos en varias táboas para procesar de forma eficiente grandes cantidades de datos. Estas declaracións son onde reside o verdadeiro poder dunha base de datos.

Para explorar o uso dunha operación JOIN básica para combinar datos de dúas táboas, continúa co exemplo usando a táboa PERSONAL_INFO e engade unha táboa adicional á mestura. Supoña que ten unha táboa denominada DISCIPLINARY_ACTION que foi creada coa seguinte declaración:

CREATE TABLE disciplinary_action (action_id int non null, employee_id int non null, comments char (500))

Esta táboa contén os resultados das accións disciplinarias dos empregados da empresa. Notarás que non contén información sobre o empregado que non sexa o número de empregado. É fácil imaxinar moitos escenarios nos que podes querer combinar información das tabelas DISCIPLINARY_ACTION e PERSONAL_INFO.

Asume que foi encargado de crear un informe que enumere as accións disciplinarias tomadas contra todos os empregados cun salario superior a 40.000 dólares. O uso dunha operación JOIN, neste caso, é sinxela. Podemos recuperar esta información empregando o seguinte comando:

SELECCIONAR persoal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinary_action DONDE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

O código especifica as dúas táboas que queremos unir á cláusula FROM e, a continuación, inclúe unha declaración na cláusula WHERE para limitar os resultados a rexistros que coincidían cos ID dos empregados e cumpriron os nosos criterios cun salario superior a 40.000 dólares.