Creación de bases de datos e táboas en SQL

Creación da base de datos

Está preparado para comezar a crear bases de datos e táboas co linguaxe de consulta estruturada ? Neste artigo, exploramos o proceso de creación de táboas manualmente cos comandos CREATE DATABASE e CREATE TABLE. Se vostede é novo en SQL, pode que desexe revisar primeiro o noso artigo básico de SQL .

Requisitos comerciais

Antes de sentarnos no teclado, necesitamos asegurarnos de que comprenda ben os requisitos do cliente. Cal é a mellor forma de obter este coñecemento? Falando ao cliente, claro! Despois de sentarnos co Director de Recursos Humanos de XYZ, decatámosnos / decatámonos de que son unha empresa de vendas de widgets e están interesados ​​principalmente na información de seguimento do seu persoal de vendas.

XYZ Corporation divide a súa forza de vendas en rexións orientais e occidentais, cada unha das cales divídese en moitos territorios cubertos por representantes de vendas individuais. O departamento de RRHH quere seguir o territorio cuberto por cada empregado, así como a información sobre salarios e estrutura de supervisión de cada empregado. Para cumprir estes requisitos, deseñamos unha base de datos composta por tres táboas, que se amosan no diagrama de Entidade-Relación nesta páxina.

Elixir unha plataforma de base de datos

Decidimos utilizar un sistema de xestión de bases de datos (ou DBMS) que estea integrado co linguaxe de consulta estruturada (SQL). Polo tanto, todos os nosos comandos de creación de bases de datos e táboas deben estar escritos con patrón ANSI SQL en mente.

Como un beneficio adicional, o uso de SQL compatible con ANSI garantirá que estes comandos funcionarán en calquera SGBD que admita o estándar de SQL , incluíndo Oracle e Microsoft SQL Server. Se aínda non seleccionaches unha plataforma para a túa base de datos, a Opcións de software de base de datos diríxese ao proceso de selección.

Creación da base de datos

O noso primeiro paso é crear a propia base de datos. Moitos sistemas de xestión de bases de datos ofrecen unha serie de opcións para personalizar os parámetros da base de datos neste paso, pero a nosa base de datos só permite a creación sinxela dunha base de datos. Do mesmo xeito que con todos os nosos comandos, pode querer consultar a documentación do seu SGBD para determinar se os parámetros avanzados admitidos polo seu sistema específico satisfacen as súas necesidades. Usemos o comando CREATE DATABASE para configurar a nosa base de datos:

CREATE DATABASE persoal

Tome nota especial da capitalización usada no exemplo anterior. É práctica común entre os programadores de SQL utilizar todas as letras maiúsculas para palabras clave SQL como "CREATE" e "DATABASE" mentres se usan todas as minúsculas para nomes definidos polo usuario como o nome do "persoal". Estas convencións permiten unha fácil lectura.

Continúa lendo este tutorial ao crear táboas para a nosa base de datos.

Aprender máis

Se desexa obter máis información sobre o linguaxe de consulta estruturada , lea Introducción a SQL ou rexístrese para o noso curso gratuíto de correo electrónico de aprendizaxe de SQL.

Agora que deseñamos e creamos a nosa base de datos, estamos preparados para comezar a crear as tres táboas utilizadas para almacenar datos de persoal de XYZ Corporation. Implantaremos as táboas que deseñamos na parte anterior deste tutorial.

Creando a nosa primeira mesa

A nosa primeira mesa consiste nos datos persoais de cada empregado da nosa empresa. Necesitamos incluír o nome, salario, identidade e xestor de cada empregado. É unha boa práctica de deseño para separar os últimos e os primeiros nomes en campos separados para simplificar a busca e selección de datos no futuro. Ademais, faremos un seguimento do xestor de cada empregado mediante a inserción dunha referencia á ID do empregado do xestor en cada rexistro do empregado. Vexamos primeiro a táboa de empregados desexada.

O atributo ReportsTo almacena a ID de xestor de cada empregado. Dos rexistros de mostra mostrados, podemos determinar que Sue Scampi é o director de Tom Kendall e John Smith. Non obstante, non hai información na base de datos sobre o xestor de Sue, como indicou a entrada NULL na súa fila.

Agora podemos usar SQL para crear a táboa na nosa base de datos de persoal. Antes de facelo, asegúrese de que estamos na base de datos correcta emitindo un comando USE:

Persoal de USE;

Alternativamente, o "persoal DATABASE"; O comando faría a mesma función. Agora podemos consultar o comando SQL usado para crear a nosa mesa de empregados:

CREATE TABLE empregados (empregado INTEGER NOT NULL, apelido VARCHAR (25) NON NUL, nome VARCHAR (25) NON NULL, informe INTEGER NULL);

Do mesmo xeito que no exemplo anterior, observe que a convención de programación indica que usamos todas as letras maiúsculas para palabras clave SQL e minúsculas para columnas e táboas nomeadas polo usuario. O comando anterior pode parecer confuso ao principio, pero hai unha estrutura simple por detrás. Aquí hai unha visión xeneralizada que pode aclarar un pouco:

CREATE TABLE name_ table_ (options_name of attribute_type, ..., name_name of attribute_type options);

Atributos e tipos de datos

No exemplo anterior, o nome da táboa é empregado e incluimos catro atributos: employeeid, lastname, firstname e reportsto. O tipo de datos indica o tipo de información que desexamos almacenar en cada campo. A ID de empregado é un número enteiro simple, polo que imos usar o tipo de datos INTEGER tanto para o campo empregado como para o campo informe. Os nomes dos empregados serán cadros de caracteres de lonxitude variable e non esperamos que ningún empregado teña un nome ou un nome superior a 25 caracteres. Polo tanto, usaremos o tipo de VARCHAR (25) para estes campos.

Valores nulos

Tamén podemos especificar NULL ou NOT NULL no campo de opcións da instrución CREATE. Isto simplemente di a base de datos se se permiten valores NULL (ou baleiros) para ese atributo ao engadir filas á base de datos. No noso exemplo, o departamento de RRHH esixe que se garde un ID de empregado e un nome completo para cada empregado. Non obstante, non todos os empregados teñen un xestor: o CEO informa a ninguén. - Entón permitimos entradas de NULL nese campo. Teña en conta que NULL é o valor por defecto e omitindo esta opción permitirá implícitamente os valores NULL dun atributo.

Construíndo as táboas restantes

Vexamos a táboa dos territorios. Desde unha ollada rápida a estes datos, parece que debemos almacenar un número enteiro e dúas cadeas de lonxitude variable. Do mesmo xeito que co noso exemplo anterior, non esperamos que a ID rexional consuma máis de 25 caracteres. Non obstante, algúns dos nosos territorios teñen nomes máis longos, polo que expandiremos a lonxitude permitida dese atributo a 40 caracteres. Vexamos o SQL correspondente:

CREATE TABLE territorios (territoryid INTEGER NOT NULL, territorio Descrición VARCHAR (40) NOT NULL, regionid VARCHAR (25) NON NULL);

Finalmente, usaremos a táboa EmployeeTerritories para almacenar as relacións entre empregados e territorios. A información detallada sobre cada empregado e territorio almacénase nas nosas dúas táboas anteriores. Polo tanto, só necesitamos almacenar os dous números de identificación enteiros nesta táboa. Se necesitamos ampliar esta información, podemos usar un UNE nos nosos comandos de selección de datos para obter información de varias táboas. Este método de almacenamento de datos reduce a redundancia na nosa base de datos e garante o uso óptimo do espazo nos nosos discos de almacenamento. Cubrimos o comando JOIN en profundidade nun tutorial futuro. Aquí está o código SQL para implementar a nosa táboa final:

CREATE TABLE employeeterritories (employee INTEGER NOT NULL, territoryid INTEGER NOT NULL);

O mecanismo SQL fornece alterar a estrutura dunha base de datos despois da creación

Se é particularmente astuto hoxe, é posible que teña notado que "accidentalmente" omitimos un dos requisitos de deseño ao implementar as nosas táboas de bases de datos. O director de RRHH de XYZ Corporation solicitou que a base de datos rastrease a información do salario dos traballadores e que nos descoidamos de proporcionar isto nas táboas de base de datos que creamos.

Con todo, non todo está perdido. Podemos usar o comando ALTER TABLE para engadir este atributo á nosa base de datos existente. Queremos almacenar o salario como un valor enteiro. A sintaxe é bastante similar á do comando CREATE TABLE, aquí está:

ALTER TABLE empregados ADD salario INTEGER NULL;

Teña en conta que especificamos que os valores NULL están permitidos para este atributo. Na maioría dos casos, non hai opción ao engadir unha columna a unha táboa existente. Isto débese ao feito de que a táboa xa contén filas sen entrada para este atributo. Polo tanto, o DBMS insire automaticamente un valor NULL para cubrir o baleiro.

E iso envolve a nosa mirada na base de datos SQL e proceso de creación de táboas. Volva consultar con frecuencia para novas entregas na nosa serie de tutoria SQL. Se desexa recibir un recordatorio de correo electrónico cando se engadan novos artigos no sitio de Bases de datos, asegúrese de subscribirse ao noso boletín informativo.