Definició i Manipulació de Dades (DDL i DML)
Flashcards
- Com s'especifica una clau primària composta per dos atributs en crear una taula?
- Cal utilitzar una restricció a nivell de taula al final de la declaració: PRIMARY KEY (col1, col2).
- Què succeeix si s'executa DELETE FROM empleats; sense clàusula WHERE?
- S'esborren absolutament totes les files contingudes a la taula empleats, deixant-la buida.
Preguntes tipus test
- Quin tipus de restricció requereix avaluar diverses columnes conjuntament?
- a) Restricció DEFAULT
- b) Restricció de taula
- c) Restricció de columna
- d) Restricció NOT NULL
Resposta: b) Restricció de taula. Les restriccions a nivell de taula permeten relacionar o validar dues o més columnes simultàniament.
- Què succeeix en ometre les columnes a l'ordre INSERT INTO?
- a) Es produeix un error immediat
- b) Només s'omplen les claus primàries
- c) Cal passar valors en l'ordre original
- d) S'introdueixen valors nuls automàticament
Resposta: c) Cal passar valors en l'ordre original. Cal aportar exactament tots els valors en el mateix ordre en què es van definir a la taula.
- Quina clàusula d'UPDATE especifica les noves assignacions?
- a) VALUES
- b) MODIFY
- c) SET
- d) INTO
Resposta: c) SET. La clàusula SET indica quines columnes es modifiquen i quins nous valors o càlculs reben.
Consultes Bàsiques, Agregació i Agrupament sobre una Taula
Flashcards
- Per què no es pot escriure WHERE AVG(sou) > 200000?
- Perquè les funcions d'agregació operen sobre grups i WHERE només pot avaluar condicions sobre files individuals abans d'agrupar.
- Quina funció compta quants noms d'empleats diferents existeixen sense duplicats?
- La funció indicada és COUNT(DISTINCT nom\empl).
Preguntes tipus test
- Quina paraula clau elimina duplicats del resultat d'una consulta?
- a) DISTINCT
- b) GROUP
- c) ALL
- d) UNIQUE
Resposta: a) DISTINCT. La clàusula DISTINCT elimina files repetides de la resposta obtinguda.
- Com tracta COUNT(columna) els valors NULL?
- a) Els compta com a zero
- b) Els substitueix pel valor per defecte
- c) Genera un error d'execució
- d) Els ignora completament
Resposta: d) Els ignora completament. COUNT amb una columna concreta ignora i no comptabilitza els valors que són NULL.
- Quan s'ha d'utilitzar HAVING en comptes de WHERE?
- a) Per filtrar abans d'agrupar files
- b) Per filtrar grups amb funcions agregades
- c) Per ordenar columnes numèriques
- d) Per unir dues taules relacionades
Resposta: b) Per filtrar grups amb funcions agregades. HAVING està dissenyat per avaluar condicions sobre grups obtinguts i funcions d'agregació.
Consultes Multitaula, Operacions de Conjunts i Subconsultes
Flashcards
- En una sentència amb UNION, on s'ha d'ubicar la clàusula ORDER BY?
- S'ha d'escriure únicament al final de tot el bloc, després de la darrera sentència SELECT de la unió.
- Com s'utilitza una subconsulta per afegir files noves a una taula existent?
- Substituint la clàusula VALUES per la sentència de consulta directament: INSERT INTO taula (SELECT ...).
Preguntes tipus test
- Què genera consultar dues taules a FROM sense clàusula WHERE ni ON?
- a) Un error de sintaxi
- b) Una intersecció de registres
- c) Un producte cartesià
- d) Un NATURAL JOIN
Resposta: c) Un producte cartesià. Sense condició d'enllaç, cada fila de la primera taula es combina amb totes les de la segona.
- Quina condició comprova NOT EXISTS en una subconsulta?
- a) Que tots els valors siguin zero
- b) Que contingui valors nuls
- c) Que la subconsulta no retorni cap fila
- d) Que la subconsulta retorni un booleà fals
Resposta: c) Que la subconsulta no retorni cap fila. NOT EXISTS avalua com a cert quan la subconsulta interna no produeix cap registre com a resposta.
- Com troba les columnes d'unió la sentència NATURAL INNER JOIN?
- a) Comparant els tipus de dades únics
- b) Analitzant les claus foranes definides
- c) Preguntant a l'usuari el criteri
- d) Cercant columnes amb noms idèntics
Resposta: d) Cercant columnes amb noms idèntics. Un NATURAL JOIN enllaça automàticament a través de les columnes que presenten el mateix nom.
I 0 flashcards i 3 preguntes més al document.
Text del document
APUNTS BASES DE DADES Grau en Enginyeria Informàtica Universitat Politècnica de Catalunya AprenAI 2026-2027 Guia de SQL per a Bases de Dades a la FIB: CREATE TABLE, INSERT, UPDATE, DELETE, consultes SELECT, funcions d'agregació, GROUP BY, JOINs i subconsultes.
APREN.AI Índex 1 Definició i Manipulació de Dades (DDL i DML) Definició d'estructures: la instrucció CREATE TABLE Restriccions de columna i de taula Inserció de files: la instrucció INSERT Modificació i esborrat de dades: UPDATE i DELETE 2 Consultes Bàsiques, Agregació i Agrupament sobre una Taula Estructura bàsica de recuperació: SELECT, DISTINCT i ORDER BY Funcions d'agregació Agrupació de files: GROUP BY i condicions amb HAVING 3 Consultes Multitaula, Operacions de Conjunts i Subconsultes Combinació de taules: Producte Cartesià i INNER JOIN Operacions de conjunts: UNION i Diferència Subconsultes en sentències DML i clàusula HAVING 4 Formulari Definició i Manipulació de Dades (DDL i DML) Consultes sobre una Taula, Agregació i Agrupament Consultes Multitaula, Operacions de Conjunts i Subconsultes Errors típics Solucions de les preguntes de repàs Aquests apunts poden contenir errors o omissions.
Són un material de suport i no substitueixen el temari oficial ni el professorat: contrasta la informació important. Apunts de SQL: DDL, DML, Consultes i Subconsultes 1 1 Definició i Manipulació de Dades (DDL i DML) EN ACABAR SABRÀS Definir taules amb tipus de dades i restriccions d'integritat tant de columna com de taula. Inserir noves files utilitzant les diferents variants de la sentència INSERT. Modificar i suprimir registres concrets aplicant condicions restrictives amb WHERE. PENSA-HI ABANS DE LLEGIR 1 Com impedeix una base de dades que s'introdueixin sous inferiors al salari mínim de forma automàtica?
Definició d'estructures: la instrucció CREATE TABLE La creació de taules permet establir l'esquema relacional d'una base de dades, indicant el nom de les columnes, el seu tipus de dada i les regles d'integritat aplicables. La sintaxi general requereix especificar els atributs i, opcionalment, les restriccions corresponents. DEFINICIÓ Un tipus de dades determina el domini i la naturalesa dels valors admissibles en una columna, com ara enters (INTEGER, SMALLINT), números en coma flotant (FLOAT, REAL, DOUBLE PRECISION), valors exactes (NUMERIC, DECIMAL), cadenes de caràcters (CHAR, VARCHAR) o dates (DATE).
A més, és possible assignar un valor per defecte mitjançant la clàusula DEFAULT , el qual s'introdueix automàticament si no s'especifica cap valor en donar d'alta una nova fila. Restriccions de columna i de taula Les restriccions asseguren la correcció lògica de les dades emmagatzemades i es divideixen segons el seu àmbit: Tipus de restricció Àmbit de columna ( restriccions_col ) Àmbit de taula ( restriccions_taula ) PRIMARY KEY Estableix la columna individual com a clau primària identificadora de la fila. Defineix una combinació de columnes que actua conjuntament com a clau primària. UNIQUE Impedeix la repetició de valors en aquesta columna concreta.
Exigeix unicitat en el conjunt combinat de les columnes especificades. NOT NULL Prohibeix que la columna contingui valors nuls (NULL). No s'aplica directament a nivell global de taula. Apunts de SQL: DDL, DML, Consultes i Subconsultes 2 Tipus de restricció Àmbit de columna ( restriccions_col ) Àmbit de taula ( restriccions_taula ) CHECK Condició booleana que només pot avaluar la mateixa columna. Condició lògica que pot involucrar i comparar diverses columnes de la mateixa taula. REFERENCES / FOREIGN KEY Identifica la columna com a clau forana que referencia una taula externa. Declara explícitament FOREIGN KEY (cols) REFERENCES taula(cols) per a una o més columnes.
EXEMPLE CREATE TABLE empleats ( num_empl INTEGER, nom_empl CHAR(30) NOT NULL, sou INTEGER DEFAULT 100000 CHECK (sou > 80000), ciutat_empl CHAR(30), num_dpt INTEGER, num_proj INTEGER, PRIMARY KEY (num_empl), FOREIGN KEY (num_dpt) REFERENCES departaments(num_dpt), FOREIGN KEY (num_proj) REFERENCES projectes(num_proj) ); COMPROVA-HO 2 Quina és la diferència fonamental entre una restricció CHECK declarada a la columna i una a la taula? Inserció de files: la instrucció INSERT La càrrega de dades en una relació s'efectua mitjançant la sentència INSERT INTO .
Existeixen dues modalitats principals d'ús segons si s'enumeren o no els camps destí: Sense llista de columnes: Els valors declarats a VALUES han de coincidir exactament en nombre, posició i tipus de dades amb l'ordre definit originàriament a la sentència CREATE TABLE . Amb llista explícita de columnes: Els valors han de correspondre fidelment a l'ordre i als atributs indicats dins del parèntesi inicial, permetent ometre aquells camps que admetin valors per defecte o nuls. Alternativament, la font de dades pot provenir del resultat d'una sentència de consulta. Apunts de SQL: DDL, DML, Consultes i Subconsultes 3 Taula d'empleats resultant després d'inserir noves files.
COMPROVA-HO 3 Què passa si a una sentència INSERT s'ometen columnes que no tenen definit un valor per defecte ni admeten NULL? Modificació i esborrat de dades: UPDATE i DELETE Les sentències DELETE i UPDATE operen sobre les files que verifiquen les condicions de la clàusula WHERE : DELETE FROM <taula> WHERE <condicions>; : Suprimeix totes aquelles tuples que fan certa la condició. Si no s'especifica la clàusula WHERE , s'esborren totes les files existents a la taula. UPDATE <taula> SET col = expressió/NULL WHERE <condicions>; : Assigna nous valors o expressions calculades a les columnes indicades per a aquelles files que verifiquin el filtre.
Esborrat de files d'empleats que verifiquen les condicions. Modificació de dades a la taula mitjançant UPDATE. Apunts de SQL: DDL, DML, Consultes i Subconsultes 4 ERROR FREQÜENT Oblidar afegir la clàusula WHERE en una sentència DELETE o UPDATE . Sense aquest filtre, l'operació afectarà indiscriminadament la totalitat de les files de la taula, provocant canvis o pèrdues de dades irreversibles. ESQUEMA Classificació de restriccions SQL IDEES CLAU Les restriccions poden declarar-se a nivell de columna (si afecten un sol atribut) o a nivell de taula (si relacionen diverses columnes). La clàusula DEFAULT injecta un valor predefinit quan la sentència d'inserció omet el camp.
A l'ordre INSERT, ometre la llista de columnes exigeix proporcionar tots els valors en l'ordre original del CREATE TABLE. Tant a UPDATE com a DELETE, ometre la condició WHERE modifica o buida completament la taula. COMPROVA EL QUE HAS APRÈS 4. Com s'especifica una clau primària composta per dos atributs en crear una taula? 5. Què succeeix si s'executa DELETE FROM empleats; sense clàusula WHERE?
Restriccions de columna Afecten un atribut individual PRIMARY KEY / UNIQUE Garanteix valors únics NOT NULL / DEFAULT Control de presència de dada CHECK de columna Condició interna del camp Restriccions de taula Afecten una o diverses columnes PRIMARY KEY composta Clau formada per múltiples camps FOREIGN KEY composta Referència externa múltiple CHECK de taula Validació entre diversos camps Apunts de SQL: DDL, DML, Consultes i Subconsultes 5 Test Encercla la resposta correcta. Les solucions són al final. 6. Quin tipus de restricció requereix avaluar diverses columnes conjuntament? 7. Què succeeix en ometre les columnes a l'ordre INSERT INTO? 8.
Quina clàusula d'UPDATE especifica les noves assignacions? 9. La restricció NOT NULL es pot declarar a nivell de: 2 Consultes Bàsiques, Agregació i Agrupament sobre una Taula EN ACABAR SABRÀS Filtrar i ordenar resultats aplicant clàusules WHERE, DISTINCT i ORDER BY. Calcular resums numèrics emprant funcions d'agregació com COUNT, SUM, AVG, MIN i MAX. Agrupar tuples per atributs comuns i aplicar condicions sobre els grups resultants amb HAVING. PENSA-HI ABANS DE LLEGIR 10 Per què cal una comanda diferent a WHERE per filtrar valors calculats com la mitjana o el total?
Estructura bàsica de recuperació: SELECT, DISTINCT i ORDER BY La sentència SELECT permet consultar i recuperar columnes específiques d'una taula. Quan s'utilitza el comodí * , es recuperen totes les columnes existents a l'esquema. Si s'omet la clàusula WHERE , s'obtenen totes les files emmagatzemades.
Restricció DEFAULT a) Restricció de taula b) Restricció de columna c) Restricció NOT NULL d) Es produeix un error immediat a) Només s'omplen les claus primàries b) Cal passar valors en l'ordre original c) S'introdueixen valors nuls automàticament d) VALUES a) MODIFY b) SET c) INTO d) Només taula a) Taula i columna b) Bases de dades externes c) Només columna d) Apunts de SQL: DDL, DML, Consultes i Subconsultes 6 Per defecte, una consulta SQL pot retornar files amb dades idèntiques (equivalent a l'opció ALL ). Per forçar un resultat format exclusivament per tuples úniques cal emprar la paraula clau DISTINCT.
EXEMPLE SELECT DISTINCT nom_empl, sou FROM empleats WHERE num_dpt IN (1, 3); Taula de resultats sense duplicats després d'aplicar DISTINCT. Per ordenar el conjunt de sortida s'utilitza la clàusula ORDER BY , la qual accepta múltiples criteris de prioritat d'esquerra a dreta. El sentit predeterminat és ascendent ( ASC ), mentre que per a l'ordre descendent s'indica explícitament DESC . COMPROVA-HO 11 Quina clàusula s'aplica per defecte si no s'especifica ni ASC ni DESC a la clàusula ORDER BY?
Funcions d'agregació Les funcions d'agregació realitzen càlculs matemàtics o estadístics sobre un conjunt de valors procedents de les files filtrades: Funció Comportament i gestió de valors nuls COUNT(*) Retorna el nombre total de files que compleixen la condició del WHERE . COUNT(columna) Retorna el total de valors presents a la columna, sense comptar valors NULL. COUNT(DISTINCT col) Compta el nombre de valors diferents i únics d'aquella columna, ignorant els nuls. SUM(expressió) Retorna la suma acumulada dels valors o expressions avaluades per fila. MIN(expressió) Obté el valor mínim de la columna o expressió avaluada. MAX(expressió) Obté el valor màxim obtingut.
AVG(expressió) Calcula el valor mitjà aritmètic de les expressions resultants. Apunts de SQL: DDL, DML, Consultes i Subconsultes 7 Resultat numèric derivat de funcions d'agregació. COMPROVA-HO 12 En què es diferencien COUNT(*) i COUNT(nom_columna)? Agrupació de files: GROUP BY i condicions amb HAVING L'organització per conjunts es realitza mitjançant la clàusula GROUP BY . Aquesta clàusula col·lapsa en una única fila de sortida totes les tuples que comparteixen el mateix valor per a les columnes d'agrupament especificades.
Les columnes presents a la clàusula SELECT han de complir una regla estricta: o bé figuren explícitament a la clàusula GROUP BY , o bé es troben contingudes dins d'una funció d'agregació. Diagrama d'agrupament de files mitjançant la clàusula GROUP BY. Per establir condicions de filtratge sobre els grups resultants s'utilitza la clàusula HAVING. Les condicions de grups comparen: Valors constants. Columnes que tenen un únic valor homogeni per grup (les indicades a GROUP BY ). Resultats derivats de funcions d'agregació (com COUNT(*) o SUM(sou) ). Apunts de SQL: DDL, DML, Consultes i Subconsultes 8 Diagrama de selecció de grups utilitzant la clàusula HAVING.
ERROR FREQÜENT Confondre l'ús de WHERE i HAVING . La clàusula WHERE filtra files individuals abans que es creïn els grups i no admet mai funcions d'agregació. En canvi, HAVING s'aplica després de l'agrupament per filtrar els grups consolidats. PROCÉS Ordre d'execució lògica de la consulta FROM Identificació de les taules d'origen 1 WHERE Filtre sobre les files individuals 2 GROUP BY Classificació en grups de files 3 HAVING Filtre sobre els grups consolidats 4 SELECT Projecció de columnes i funcions 5 ORDER BY Ordenació final del conjunt de resultats 6 Apunts de SQL: DDL, DML, Consultes i Subconsultes 9 IDEES CLAU L'ús de DISTINCT suprimeix les files redundants del conjunt retornat.
ORDER BY ordena les dades de manera ascendent per defecte (ASC). COUNT(*) compta files totals, mentre que COUNT(columna) ignora els valors NULL. WHERE filtra registres abans de l'agrupament, mentre que HAVING filtra grups resultants utilitzant funcions d'agregació. COMPROVA EL QUE HAS APRÈS 13. Per què no es pot escriure WHERE AVG(sou) > 200000? 14. Quina funció compta quants noms d'empleats diferents existeixen sense duplicats? Test Encercla la resposta correcta. Les solucions són al final. 15. Quina paraula clau elimina duplicats del resultat d'una consulta? 16. Com tracta COUNT(columna) els valors NULL? 17. Quan s'ha d'utilitzar HAVING en comptes de WHERE? 18.
Quin és el criteri d'ordenació per defecte a ORDER BY? DISTINCT a) GROUP b) ALL c) UNIQUE d) Els compta com a zero a) Els substitueix pel valor per defecte b) Genera un error d'execució c) Els ignora completament d) Per filtrar abans d'agrupar files a) Per filtrar grups amb funcions agregades b) Per ordenar columnes numèriques c) Per unir dues taules relacionades d) DESC a) RANDOM b) ASC c) INDEX d) Apunts de SQL: DDL, DML, Consultes i Subconsultes 10 3 Consultes Multitaula, Operacions de Conjunts i Subconsultes EN ACABAR SABRÀS Formular consultes que combinin múltiples taules mitjançant INNER JOIN o NATURAL INNER JOIN.
Implementar unions i diferències de dades emprant UNION, NOT IN i NOT EXISTS. Integrar subconsultes en filtres de sentències de modificació de dades (UPDATE, DELETE) i a la clàusula HAVING. PENSA-HI ABANS DE LLEGIR 19 Com podem trobar quins projectes no tenen cap empleat assignat sense fer servir operadors inexistents? Combinació de taules: Producte Cartesià i INNER JOIN Quan s'indiquen múltiples taules a la clàusula FROM sense cap condició de nexe, s'obté el producte cartesià, combinant cada fila de la primera relació amb totes les files de la segona. Esquema de combinació de files entre taules d'empleats i projectes.
Per associar les tuples que comparteixen correspondència lògica, s'apliquen tècniques de combinació explícita: Combinació amb WHERE: S'expressa la igualtat de les columnes comunes al filtre: WHERE empleats.num_proj = projectes.num_proj . INNER JOIN amb ON: Especifica de forma clara la relació d'enllaç entre taules: FROM empleats e INNER JOIN projectes p ON e.num_proj = p.num_proj . NATURAL INNER JOIN: Realitza automàticament la combinació comparant totes les columnes que presenten el mateix nom a ambdues taules, prescindint de la clàusula ON . COMPROVA-HO 20 Quina condició és imprescindible perquè la sintaxi NATURAL INNER JOIN funcioni correctament?
Apunts de SQL: DDL, DML, Consultes i Subconsultes 11 Operacions de conjunts: UNION i Diferència La sentència UNION combina verticalment les files de dues o més consultes independents en un únic resultat. Per poder aplicar-se, les consultes han de ser compatibles: han de tenir el mateix nombre de columnes i tipus de dades comparables en la mateixa posició. Si es vol ordenar el conjunt combinat, la clàusula ORDER BY s'ubica exclusivament al final de la darrera sentència. Resultat d'una unió de consultes ordenada per ciutat. La diferència de conjunts permet obtenir registres d'una taula que no tenen correspondència a l'altra.
SQL implementa aquesta operació mitjançant dues estratègies de subconsultes: Mètode Funcionament Sintaxi representativa NOT IN Verifica si el valor d'una columna no apareix en la llista de valors retornats per la subconsulta. WHERE columna NOT IN (SELECT col FROM taula) NOT EXISTS Retorna cert si la subconsulta correlacionada dóna com a resultat un conjunt buit. WHERE NOT EXISTS (SELECT * FROM taula WHERE condició_enllaç) Resultat obtingut en calcular la diferència amb subconsultes. COMPROVA-HO 21 Quan s'avalua com a certa una condició formulada amb WHERE NOT EXISTS?
Subconsultes en sentències DML i clàusula HAVING Les subconsultes poden niar-se dins de la clàusula WHERE de sentències de modificació de dades: DELETE amb subconsultes per eliminar registres que compleixen o no una condició externa (com ara projectes sense empleats assignats via NOT EXISTS ). Apunts de SQL: DDL, DML, Consultes i Subconsultes 12 UPDATE amb subconsultes avaluades com a condició de comparació (per exemple, actualitzar pressupostos segons el recompte obtingut amb COUNT(*) ). SELECT comparant una columna individual contra un valor agregat d'una subconsulta escalar (com ara sou > (SELECT AVG(sou) FROM empleats) ). INSERT INTO ...
(SELECT ...) per generar noves files directament a partir del resultat filtrat d'altres taules. Diagrama de transferència de dades d'empleats a clients mitjançant INSERT. Finalment, la clàusula HAVING admet també subconsultes per filtrar grups generats comparant el seu valor agregat contra el resultat d'una altra consulta independent. Resultat final de la consulta agregada amb condició a HAVING. Enllaços entre empleats i departaments utilitzats a la consulta amb subconsulta. ERROR FREQÜENT Oblidar correlacionar la subconsulta en utilitzar NOT EXISTS .
Si la consulta interna no connecta els camps de la taula externa amb la interna, el resultat serà estàtic per a totes les files, donant un resultat erroni a tot el conjunt. Apunts de SQL: DDL, DML, Consultes i Subconsultes 13 ESQUEMA Mètodes de combinació i operacions de conjunts IDEES CLAU Unir taules sense condicions a la clàusula FROM produeix un producte cartesià complet. NATURAL INNER JOIN realitza la combinació implícita basant-se en atributs amb noms idèntics. UNION fusiona resultats de consultes compatibles, i el seu ORDER BY s'escriu sempre al final. La diferència s'expressa mitjançant subconsultes amb les clàusules NOT IN o NOT EXISTS.
Les subconsultes poden alimentar sentències INSERT o determinar les files filtrades a UPDATE, DELETE i HAVING. COMPROVA EL QUE HAS APRÈS 22. En una sentència amb UNION, on s'ha d'ubicar la clàusula ORDER BY? 23. Com s'utilitza una subconsulta per afegir files noves a una taula existent? Test Encercla la resposta correcta. Les solucions són al final. 24. Què genera consultar dues taules a FROM sense clàusula WHERE ni ON?
Tècniques de combinació Connectar múltiples taules Producte cartesià Manca de filtre o nexe INNER JOIN explícit Clàusula ON definida NATURAL JOIN Per igualtat de noms Operacions de conjunts Fusionar o sostreure relacions UNION Fusió vertical de consultes Diferència NOT IN Absència en llista de valors Diferència NOT EXISTS Comprovació de conjunt buit Un error de sintaxi a) Una intersecció de registres b) Un producte cartesià c) Un NATURAL JOIN d) Apunts de SQL: DDL, DML, Consultes i Subconsultes 14 25. Quina condició comprova NOT EXISTS en una subconsulta? 26. Com troba les columnes d'unió la sentència NATURAL INNER JOIN? 27.
En quina posició s'admeten subconsultes a sentències UPDATE i DELETE? 4 Formulari Definició i Manipulació de Dades (DDL i DML) Sintaxi o procediment Paràmetres i components Quan s'utilitza CREATE TABLE nom (col tipus [restr_col] [DEFAULT v], ..., [restr_tbl]); Tipus: INTEGER , CHAR(n) , VARCHAR(n) , etc. Restriccions: PRIMARY KEY , UNIQUE , NOT NULL , CHECK , FOREIGN KEY ... REFERENCES . Creació de noves taules amb les seves columnes i restriccions d'integritat. INSERT INTO nom [(cols)] VALUES (valors) " consulta; Llista explícita de columnes o ordre idèntic al CREATE TABLE . Admet NULL o subconsultes. Inserció de noves files a una taula. UPDATE nom SET col = expr/NULL, ...
WHERE condicions; Assignació de nous valors a SET per a les tuples que compleixen el filtre WHERE . Modificació de dades de files existents. DELETE FROM nom WHERE condicions; Filtre de tuples a suprimir mitjançant la clàusula WHERE . Esborrat de registres d'una taula. Consultes sobre una Taula, Agregació i Agrupament Sintaxi o procediment Paràmetres i components Quan s'utilitza SELECT [DISTINCT"ALL] cols FROM taula [WHERE cond]; * per a totes les columnes; DISTINCT per suprimir duplicats (per defecte ALL ). Recuperació i filtratge bàsic de dades.
Que tots els valors siguin zero a) Que contingui valors nuls b) Que la subconsulta no retorni cap fila c) Que la subconsulta retorni un booleà fals d) Comparant els tipus de dades únics a) Analitzant les claus foranes definides b) Preguntant a l'usuari el criteri c) Cercant columnes amb noms idèntics d) Només a la clàusula ORDER BY a) A la clàusula WHERE b) Abans del nom de la taula c) Dins de la clàusula SET d) Apunts de SQL: DDL, DML, Consultes i Subconsultes 15 Sintaxi o procediment Paràmetres i components Quan s'utilitza ORDER BY col [ASC"DESC], ... Criteris d'ordenació d'esquerra a dreta. Per defecte és ascendent ( ASC ). Ordenació final de les files del resultat.
COUNT(*) / COUNT([DISTINCT] col) COUNT(*) compta files totals; COUNT(col) ignora valors NULL . Càlcul del nombre de registres o valors únics. SUM(expr) , AVG(expr) , MIN(expr) , MAX(expr) Operacions aritmètiques sobre el conjunt de files o valors no nuls. Càlcul d'agregats (suma, mitjana, mínim, màxim). GROUP BY cols [HAVING cond_grups] Agrupament per columnes comunes; HAVING avalua constants i funcions d'agregació sobre grups. Consolidació de dades en grups i filtratge posterior d'aquests grups.
Consultes Multitaula, Operacions de Conjunts i Subconsultes Sintaxi o procediment Paràmetres i components Quan s'utilitza FROM t1 INNER JOIN t2 ON cond_enllaç Especificació explícita de condició de combinació entre claus. Enllaç precís entre dues taules relacionades. FROM t1 NATURAL INNER JOIN t2 Emparella automàticament per columnes amb el mateix nom. Combinació natural sense clàusula ON . consulta1 UNION consulta2 [ORDER BY ...] Consultes compatibles en nombre i tipus de columnes. ORDER BY només al final. Fusió vertical dels resultats de dues consultes. WHERE col NOT IN (SELECT col FROM ...) Subconsulta que retorna una llista de valors per verificar no pertinença.
Operació de diferència de conjunts. WHERE NOT EXISTS (SELECT * FROM ... WHERE enllaç) Subconsulta correlacionada que avalua si el resultat és buit. Diferència comprovant l'absència de registres relacionats. WHERE col >= (SELECT funció(...) FROM ...) Subconsulta escalar utilitzada com a operand a WHERE , UPDATE , DELETE o HAVING . Filtratge basat en valors agregats calculats dinàmicament. Errors típics Ometre la clàusula WHERE a DELETE o UPDATE , provocant la modificació o l'esborrat de la totalitat de les files de la taula. Intentar utilitzar funcions d'agregació a la clàusula WHERE en lloc d'emprar HAVING .
Projectar a SELECT columnes individuals que no formen part de GROUP BY ni estan incloses dins d'una funció d'agregació. Ometre la condició d'enllaç entre taules al FROM , provocant un producte cartesià no desitjat. Apunts de SQL: DDL, DML, Consultes i Subconsultes 16 Solucions de les preguntes de repàs 1. Mitjançant una restricció de tipus CHECK que valida que el valor assignat a la columna compleixi una condició lògica determinada. 2. La restricció CHECK de columna només pot avaluar el valor del seu propi camp, mentre que la restricció CHECK de taula pot comparar múltiples columnes entre si. 3.
El gestor de base de dades rebutjarà la inserció retornant un error de violació de restricció d'integritat. 4. Cal utilitzar una restricció a nivell de taula al final de la declaració: PRIMARY KEY (col1, col2). 5. S'esborren absolutament totes les files contingudes a la taula empleats, deixant-la buida. 6. b) Restricció de taula. Les restriccions a nivell de taula permeten relacionar o validar dues o més columnes simultàniament. 7. c) Cal passar valors en l'ordre original. Cal aportar exactament tots els valors en el mateix ordre en què es van definir a la taula. 8. c) SET. La clàusula SET indica quines columnes es modifiquen i quins nous valors o càlculs reben. 9. d) Només columna.
NOT NULL és una restricció purament aplicable a columnes individuals en la seva definició. 10. Perquè WHERE analitza cada fila individual abans de processar cap càlcul conjunt, mentre que els totals requereixen haver format els grups prèviament. 11. S'aplica per defecte el criteri d'ordenació ascendent (ASC). 12. COUNT(*) computa totes les files del resultat incloent les que tenen valors nuls, mentre que COUNT(columna) descarta qualsevol fila on el camp sigui NULL. 13. Perquè les funcions d'agregació operen sobre grups i WHERE només pot avaluar condicions sobre files individuals abans d'agrupar. 14. La funció indicada és . 15. a) DISTINCT.
La clàusula DISTINCT elimina files repetides de la resposta obtinguda. 16. d) Els ignora completament. COUNT amb una columna concreta ignora i no comptabilitza els valors que són NULL. 17. b) Per filtrar grups amb funcions agregades. HAVING està dissenyat per avaluar condicions sobre grups obtinguts i funcions d'agregació. 18. c) ASC. Quan no s'especifica sentit, SQL ordena els resultats de menor a major (ASC). 19. Seleccionant els projectes la clau primària dels quals no es troba present a la taula d'empleats mitjançant les clàusules NOT IN o NOT EXISTS. 20. Les taules implicades han de contenir columnes amb exactament el mateix nom sobre les quals establir la correspondència automàtica. 21.
S'avalua com a certa exclusivament quan la subconsulta interna no retorna cap fila (el conjunt resultat és buit). 22. S'ha d'escriure únicament al final de tot el bloc, després de la darrera sentència SELECT de la unió. 23. Substituint la clàusula VALUES per la sentència de consulta directament: INSERT INTO taula (SELECT ...). COUNT(DISTINCT nom_empl) Apunts de SQL: DDL, DML, Consultes i Subconsultes 17 24. c) Un producte cartesià. Sense condició d'enllaç, cada fila de la primera taula es combina amb totes les de la segona. 25. c) Que la subconsulta no retorni cap fila. NOT EXISTS avalua com a cert quan la subconsulta interna no produeix cap registre com a resposta. 26.
d) Cercant columnes amb noms idèntics. Un NATURAL JOIN enllaça automàticament a través de les columnes que presenten el mateix nom. 27. b) A la clàusula WHERE. Les subconsultes permeten establir condicions de filtratge complexes a la clàusula WHERE de DELETE i UPDATE. Apunts de SQL: DDL, DML, Consultes i Subconsultes 18