Creació de bases de dades i taules en SQL

Creació de la base de dades

Estàs preparat per començar a crear bases de dades i taules amb el llenguatge de consulta estructurada ? En aquest article, explorem el procés de creació de taules manualment amb les ordres CREATE DATABASE i CREATE TABLE. Si sou nou en SQL, potser voldreu consultar primer el nostre article bàsic de SQL .

Requisits comercials

Abans d'asseure's al teclat, hem d'assegurar-nos que tenim una comprensió sòlida dels requisits del client. Quina és la millor manera d'obtenir aquesta visió? Parlem amb el client, és clar! Després d'estar assegut amb el Director de Recursos Humans de XYZ, hem après que són una empresa de vendes de widgets i que estan interessats principalment en el seguiment de la informació del seu personal de vendes.

XYZ Corporation divideix la seva força de vendes en regions orientals i occidentals, cadascuna de les quals es divideix en molts territoris coberts per representants de vendes individuals. El departament de Recursos Humans vol fer un seguiment del territori cobert per cada empleat, així com la informació sobre salaris i l'estructura de supervisió de cada empleat. Per complir aquests requisits, hem dissenyat una base de dades que consta de tres taules, que es mostren al diagrama Entitat-relació en aquesta pàgina.

Elecció d'una plataforma de base de dades

Hem decidit utilitzar un sistema de gestió de bases de dades (o DBMS) que estigui basat en el llenguatge de consulta estructurada (SQL). Per tant, totes les nostres ordres de creació de bases de dades i taula s'han d'escriure amb la norma ANSI SQL en ment.

Com a benefici addicional, l'ús de SQL compatible amb ANSI garantirà que aquestes comandes funcionaran en qualsevol SGBD que admeti l'estàndard SQL , inclòs Oracle i Microsoft SQL Server. Si encara no heu seleccionat una plataforma per a la vostra base de dades, l'article " Opcions de programari de base de dades" us guiarà pel procés de selecció.

Creació de la base de dades

El nostre primer pas és crear la pròpia base de dades. Molts sistemes de gestió de bases de dades ofereixen una sèrie d'opcions per personalitzar paràmetres de base de dades en aquest pas, però la nostra base de dades només permet crear simplement una base de dades. Igual que amb tots els nostres comandaments, és possible que vulgueu consultar la documentació del vostre SGBD per determinar si els paràmetres avançats admesos pel vostre sistema específic satisfan les vostres necessitats. Anem a utilitzar la comanda CREATE DATABASE per configurar la nostra base de dades:

Crea el personal de BASE DE DADES

Tingueu en compte la capitalització utilitzada a l'exemple anterior. Es tracta d'una pràctica habitual entre els programadors SQL per utilitzar totes les lletres majúscules per a paraules clau SQL com ara "CREATE" i "DATABASE" mentre s'utilitzen totes les lletres minúscules per a noms definits per l'usuari, com ara el nom de la base de dades del "personal". Aquestes convencions permeten una fàcil lectura.

Continueu llegint aquest tutorial a mesura que creem taules per a la nostra base de dades.

Aprenent més

Si voleu obtenir més informació sobre l' idioma de consulta estructurada , llegiu Introducció a SQL o inscrigui's al nostre curs gratuït de correu electrònic d'Aprenentatge SQL.

Ara que hem dissenyat i creat la nostra base de dades, estem preparats per començar a crear les tres taules utilitzades per emmagatzemar dades de personal de XYZ Corporation. Implementarem les taules que vam dissenyar a la part anterior d'aquest tutorial.

Creant la nostra primera taula

La nostra primera taula consisteix en les dades personals per a cada empleat de la nostra empresa. Hem d'incloure el nom, salari, identitat i administrador de cada empleat. Es tracta d'una bona pràctica de disseny per separar els noms d'últim i primer en camps separats per simplificar la cerca i ordenació de dades en el futur. A més, seguirem un seguiment del gestor de cada empleat inserint una referència a l'ID del treballador del gestor en cada registre d'empleat. Anem a fer una ullada a la taula de treballadors desitjada.

L'atribut ReportsTo emmagatzema l'identificador del gestor per a cada empleat. A partir dels registres d'exemple mostrats, podem determinar que Sue Scampi és el director de Tom Kendall i John Smith. Tanmateix, no hi ha cap informació a la base de dades sobre el gestor de Sue, tal com indica l'entrada NULL a la fila.

Ara podem utilitzar SQL per crear la taula a la nostra base de dades de personal. Abans de fer-ho, assegurem que estiguem en la base de dades correcta mitjançant l'emissió d'un comandament USE:

Personal d'USE;

Alternativament, el "personal de BASE DE DADES"; comanda realitzarà la mateixa funció. Ara podem analitzar l'ordre SQL utilitzada per crear la taula dels nostres empleats:

CREATE TABLE employees (Employed INTEGER NOT NULL, cognom VARCHAR (25) NOT NULL, firstname VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

Com en l'exemple anterior, tingueu en compte que la convenció de programació estableix que utilitzem totes les lletres majúscules per a paraules clau SQL i minúscules per columnes i taules amb nom d'usuari. L'ordre anterior pot semblar confús al principi, però en realitat hi ha una estructura senzilla darrere d'ella. Aquí teniu una vista generalitzada que podria aclarir una mica les coses:

CREATE TABLE table_name (attribute_name opcions de tipus de dades, ..., attribute_name opcions de tipus de dades);

Atributs i tipus de dades

En l'exemple anterior, el nom de la taula és empleat i incloem quatre atributs: employeeid, cognom, nom i resum. El tipus de dades indica el tipus d'informació que volem emmagatzemar a cada camp. L'identificador de l'empleat és un número sencer simple, de manera que utilitzarem el tipus de dades INTEGER tant per al camp personal com per al camp d'informe. Els noms dels empleats seran cadenes de caràcters de longitud variable i no esperem que cap empleat tingui un nom o cognom superior a 25 caràcters. Per tant, utilitzarem el tipus VARCHAR (25) per a aquests camps.

Valors NULLs

També podem especificar NULL o NO NULL al camp d'opcions de la instrucció CREATE. Això simplement indica a la base de dades si es permeten valors NULL (o buits) per a aquest atribut quan s'afegeixen files a la base de dades. En el nostre exemple, el departament de Recursos Humans requereix que una identificació d'empleat i un nom complet s'emmagatzemin per a cada empleat. No obstant això, no tots els empleats tenen un gerent: el CEO informa a ningú! - Així que permetem entrades NULL en aquest camp. Tingueu en compte que NULL és el valor per defecte i ometre aquesta opció permetrà implícitament valors NULL per a un atribut.

Construcció de les taules restants

Ara fem una ullada a la taula dels territoris. Des d'un cop d'ull a aquestes dades, sembla que hem d'emmagatzemar un enter i dues cadenes de longitud variable. Igual que amb el nostre exemple anterior, no esperem que la ID de la regió consumeixi més de 25 caràcters. Tanmateix, alguns dels nostres territoris tenen noms més llargs, de manera que ampliarem la longitud permesa d'aquest atribut a 40 caràcters. Vegem el SQL corresponent:

CREATE TABLE territoris (territoryid INTEGER NOT NULL, territory Descripció VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

Finalment, utilitzarem la taula EmployeeTerritories per emmagatzemar les relacions entre empleats i territoris. La informació detallada sobre cada empleat i territori s'emmagatzema a les nostres dues taules anteriors. Per tant, només hem d'emmagatzemar els dos números d'identificació d'enters en aquesta taula. Si necessitem ampliar aquesta informació, podem utilitzar un JOIN en els nostres ordres de selecció de dades per obtenir informació de diverses taules. Aquest mètode d'emmagatzematge de dades redueix la redundància a la nostra base de dades i garanteix un ús òptim de l'espai en les nostres unitats d'emmagatzematge. Anem a cobrir la comanda JOIN a fons en un futur tutorial. Aquí teniu el codi SQL per implementar la nostra taula final:

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

El mecanisme SQL proporciona una alteració de l'estructura d'una base de dades després de la creació

Si sou particularment astut avui, és possible que hàgiu notat que "ometeu" "accidentalment" un dels requisits de disseny quan implementem les nostres taules de base de dades. El director de recursos humans de XYZ Corporation va demanar que la base de dades seguís la informació del salari dels empleats i no ens hagués aconsellat proporcionar-ho en les taules de base de dades que vàrem crear.

No obstant això, no tot està perdut. Podem utilitzar la comanda ALTER TABLE per afegir aquest atribut a la nostra base de dades existent. Volem emmagatzemar el sou com un valor enter. La sintaxi és bastant similar a la de la comanda CREATE TABLE, aquí està:

Els empleats de ALTER TABLE assumeixen el sou INTEGER NULL;

Tingueu en compte que hem especificat que es permeten valors NULL per a aquest atribut. En la majoria dels casos, no hi ha cap opció quan s'afegeix una columna a una taula existent. Això es deu al fet que la taula ja conté files sense entrada per a aquest atribut. Per tant, el SGBD insereix automàticament un valor NULL per omplir el buit.

I això ens envolta la nostra base de dades SQL i el procés de creació de taula. Torneu a comprovar sovint per a nous lliuraments a la nostra sèrie de tutorials de SQL. Si voleu rebre un recordatori de correu electrònic quan s'afegeixin nous articles al lloc de Bases de dades, assegureu-vos de subscriure's al nostre butlletí de notícies.